Search in sources :

Example 16 with UserFilter

use of net.sourceforge.processdash.team.group.UserFilter in project processdash by dtuma.

the class EVReport method getEVModel.

private void getEVModel() throws TinyCGIException {
    taskListName = settings.getTaskListName();
    if (taskListName == null)
        throw new TinyCGIException(400, "schedule name missing");
    else if (FAKE_MODEL_NAME.equals(taskListName)) {
        evModel = null;
        return;
    }
    long now = System.currentTimeMillis();
    synchronized (EVReport.class) {
        if (drawingChart && (now - lastRecalcTime < MAX_DELAY) && taskListName.equals(lastTaskListName)) {
            evModel = lastEVModel.get();
            if (evModel != null)
                return;
        }
    }
    evModel = EVTaskList.openExisting(taskListName, getDataRepository(), getPSPProperties(), getObjectCache(), // change notification not required
    false);
    if (evModel == null)
        throw new TinyCGIException(404, "Not Found", "No such task/schedule");
    UserFilter f = settings.getUserGroupFilter();
    if (f != null && !UserGroup.isEveryone(f) && evModel instanceof EVTaskListRollup) {
        EVTaskListRollup rollup = (EVTaskListRollup) evModel;
        rollup.applyTaskListFilter(new EVTaskListGroupFilter(f));
        String permID = (parameters.containsKey(CHARTS_PARAM) ? EVPermissions.PERSONAL_CHARTS : EVPermissions.PERSONAL_REPORT);
        settings.checkPersonalDataPermission(rollup, permID);
    }
    EVDependencyCalculator depCalc = new EVDependencyCalculator(getDataRepository(), getPSPProperties(), getObjectCache());
    evModel.setDependencyCalculator(depCalc);
    evModel.setTaskLabeler(new DefaultTaskLabeler(getDashboardContext()));
    if (settings.getBool(CUSTOMIZE_HIDE_BASELINE))
        evModel.disableBaselineData();
    evModel.recalc();
    synchronized (EVReport.class) {
        lastTaskListName = taskListName;
        lastRecalcTime = now;
        lastEVModel = new WeakReference<EVTaskList>(evModel);
    }
}
Also used : EVTaskListGroupFilter(net.sourceforge.processdash.ev.EVTaskListGroupFilter) EVDependencyCalculator(net.sourceforge.processdash.ev.EVDependencyCalculator) EVTaskListRollup(net.sourceforge.processdash.ev.EVTaskListRollup) UserFilter(net.sourceforge.processdash.team.group.UserFilter) EVTaskList(net.sourceforge.processdash.ev.EVTaskList) DefaultTaskLabeler(net.sourceforge.processdash.ev.DefaultTaskLabeler) TinyCGIException(net.sourceforge.processdash.net.http.TinyCGIException)

Example 17 with UserFilter

use of net.sourceforge.processdash.team.group.UserFilter in project processdash by dtuma.

the class EVReportSettings method getUserGroupFilter.

/**
     * Get the user group filter that should be used to display the report.
     */
public UserFilter getUserGroupFilter() {
    if (!UserGroupManager.getInstance().isFilteringAvailable() || Boolean.FALSE.equals(isRollup))
        return null;
    if (userGroupFilter != null)
        return userGroupFilter;
    String filterID = getParameter(GROUP_FILTER_PARAM);
    UserFilter f = UserGroupManager.getInstance().getFilterById(filterID);
    if (f == null)
        f = UserGroup.EVERYONE;
    else if (UserGroupManagerDash.getInstance().isPrivacyViolation(prefix))
        f = new UserGroupPrivacyBlock(f);
    userGroupFilter = f;
    return f;
}
Also used : UserFilter(net.sourceforge.processdash.team.group.UserFilter) UserGroupPrivacyBlock(net.sourceforge.processdash.team.group.UserGroupPrivacyBlock)

Aggregations

UserFilter (net.sourceforge.processdash.team.group.UserFilter)17 EVTaskListGroupFilter (net.sourceforge.processdash.ev.EVTaskListGroupFilter)9 EVTaskList (net.sourceforge.processdash.ev.EVTaskList)7 EVTaskListFilter (net.sourceforge.processdash.ev.EVTaskListFilter)6 EVSchedule (net.sourceforge.processdash.ev.EVSchedule)4 UserGroupPrivacyBlock (net.sourceforge.processdash.team.group.UserGroupPrivacyBlock)4 ArrayList (java.util.ArrayList)2 Date (java.util.Date)2 DefaultTaskLabeler (net.sourceforge.processdash.ev.DefaultTaskLabeler)2 EVDependencyCalculator (net.sourceforge.processdash.ev.EVDependencyCalculator)2 EVTaskListRollup (net.sourceforge.processdash.ev.EVTaskListRollup)2 TinyCGIException (net.sourceforge.processdash.net.http.TinyCGIException)2 UserGroupMember (net.sourceforge.processdash.team.group.UserGroupMember)2 Rectangle (java.awt.Rectangle)1 ActionEvent (java.awt.event.ActionEvent)1 ActionListener (java.awt.event.ActionListener)1 IOException (java.io.IOException)1 List (java.util.List)1 JCheckBoxMenuItem (javax.swing.JCheckBoxMenuItem)1 JMenu (javax.swing.JMenu)1