/** * @see org.olat.search.service.indexer.Indexer#checkAccess(org.olat.core.id.context.ContextEntry, * org.olat.core.id.context.BusinessControl, org.olat.core.id.Identity, * org.olat.core.id.Roles) */ @Override public boolean checkAccess( final ContextEntry contextEntry, final BusinessControl businessControl, final Identity identity, final Roles roles) { // TODO:chg: check with collabTools if forum is enabled final ContextEntry ce = businessControl.popLauncherContextEntry(); final Long resourceableId = ce.getOLATResourceable().getResourceableId(); final Message message = ForumManager.getInstance().loadMessage(resourceableId); Message threadtop = message.getThreadtop(); if (threadtop == null) { threadtop = message; } final boolean isMessageHidden = Status.getStatus(threadtop.getStatusCode()).isHidden(); // assumes that if is owner then is moderator so it is allowed to see the hidden forum threads // TODO: (LD) fix this!!! // here it is checked if the identity is owner of the forum tool but it has no way to find out // whether is owner of the group that owns the forum tool final boolean isOwner = BaseSecurityManager.getInstance() .isIdentityPermittedOnResourceable( identity, Constants.PERMISSION_ACCESS, contextEntry.getOLATResourceable()); if (isMessageHidden && !isOwner) { return false; } return true; }
public IdentityAssessmentEditController( WindowControl wControl, UserRequest ureq, StackedController stackPanel, Identity assessedIdentity, ICourse course, boolean mayEdit, boolean headers) { super(ureq, wControl); this.stackPanel = stackPanel; this.mayEdit = mayEdit; main = new Panel("main"); assessedUserCourseEnvironment = AssessmentHelper.createAndInitUserCourseEnvironment(assessedIdentity, course); this.ores = OresHelper.clone(course); this.headers = headers; doIdentityAssessmentOverview(ureq, true); putInitialPanel(main); BusinessControl bc = getWindowControl().getBusinessControl(); ContextEntry ce = bc.popLauncherContextEntry(); if (ce != null) { OLATResourceable oresNode = ce.getOLATResourceable(); if (OresHelper.isOfType(oresNode, CourseNode.class)) { Long courseNodeId = oresNode.getResourceableId(); Structure runStructure = assessedUserCourseEnvironment.getCourseEnvironment().getRunStructure(); CourseNode courseNode = runStructure.getNode(courseNodeId.toString()); if (courseNode instanceof AssessableCourseNode) { doEditNodeAssessment(ureq, (AssessableCourseNode) courseNode); } } } }
@Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { if (entries == null || entries.isEmpty()) return; ContextEntry ce = entries.remove(0); if ("test".equals(ce.getOLATResourceable().getResourceableTypeName())) { Long resourceId = ce.getOLATResourceable().getResourceableId(); if (resourceId != null && resourceId.longValue() >= 0) { // event(ureq, startButton, Event.CHANGED_EVENT); } } }
@Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { if (entries == null || entries.isEmpty()) return; ContextEntry currentEntry = entries.get(0); String cmd = currentEntry.getOLATResourceable().getResourceableTypeName(); Controller selectedCtrl = selectMenuItem(ureq, cmd); if (selectedCtrl instanceof Activateable2) { List<ContextEntry> subEntries = entries.subList(1, entries.size()); ((Activateable2) selectedCtrl).activate(ureq, subEntries, currentEntry.getTransientState()); } }
@Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { if (entries == null || entries.isEmpty()) return; ContextEntry entry = entries.get(0); String type = entry.getOLATResourceable().getResourceableTypeName(); if ("changepw".equals(type)) { String email = null; if (entries.size() > 1) { email = entries.get(1).getOLATResourceable().getResourceableTypeName(); } openChangePassword(ureq, email); } else if ("registration".equals(type)) { if (registrationModule.isSelfRegistrationEnabled() && registrationModule.isSelfRegistrationLinkEnabled()) { List<ContextEntry> subEntries = entries.subList(1, entries.size()); openRegistration(ureq).activate(ureq, subEntries, entry.getTransientState()); } } }
@Override public void activate(UserRequest ureq, List<ContextEntry> entries, StateEntry state) { if (entries == null || entries.isEmpty()) { if (currentCtrl == null) { if (isGuestonly) { doOpenMyEntries(ureq); segmentView.select(myEntriesLink); } else { boolean markEmpty = doOpenMark(ureq).isEmpty(); if (markEmpty) { doOpenMyEntries(ureq); segmentView.select(myEntriesLink); } else { segmentView.select(favoriteLink); } } } addToHistory(ureq, currentCtrl); } else { ContextEntry entry = entries.get(0); String segment = entry.getOLATResourceable().getResourceableTypeName(); List<ContextEntry> subEntries = entries.subList(1, entries.size()); if ("Favorits".equals(segment)) { if (isGuestonly) { doOpenMyEntries(ureq).activate(ureq, subEntries, entry.getTransientState()); segmentView.select(myEntriesLink); } else { doOpenMark(ureq).activate(ureq, subEntries, entry.getTransientState()); segmentView.select(favoriteLink); } } else if ("My".equals(segment)) { doOpenMyEntries(ureq).activate(ureq, subEntries, entry.getTransientState()); segmentView.select(myEntriesLink); } else if ("Search".equals(segment)) { doSearchEntries(ureq).activate(ureq, subEntries, entry.getTransientState()); segmentView.select(searchLink); } else { doOpenMyEntries(ureq).activate(ureq, subEntries, entry.getTransientState()); segmentView.select(myEntriesLink); } } }