/** * Start a new root session if necessary, otherwise reuse existing threadlocal session. * * @return the root grouper session */ public GrouperSession getGrouperSession() { GrouperSession grouperSession = GrouperSession.staticGrouperSession(false); if (grouperSession == null) { grouperSession = GrouperSession.startRootSession(true); } return grouperSession; }
/** * Start a new root session if necessary, otherwise reuse existing threadlocal session. * * @return the root grouper session */ public GrouperSession getGrouperSession() { GrouperSession grouperSession = GrouperSession.staticGrouperSession(false); if (grouperSession == null) { grouperSession = GrouperSession.startRootSession(true); LOG.debug("Grouper data connector '{}' - Started grouper session '{}'", getId(), grouperSession); } return grouperSession; }
/** * calculate based on request object, and return list, unless it is already calculated * @return the list */ public List<GuiMember> privilegeAdditionalGuiMembers() { if (this.privilegeAdditionalGuiMembers == null) { this.privilegeAdditionalGuiMembers = new ArrayList<GuiMember>(); HttpServletRequest httpServletRequest = GrouperUiFilter.retrieveHttpServletRequest(); //max of 200, no endless loops for (int i=0;i<200;i++) { String memberId = httpServletRequest.getParameter("additionalMemberId_" + i); if (StringUtils.isBlank(memberId)) { break; } Member member = MemberFinder.findByUuid(GrouperSession.staticGrouperSession(), memberId, true); this.privilegeAdditionalGuiMembers.add(new GuiMember(member)); } } return this.privilegeAdditionalGuiMembers; }
/** * if the logged in user has admin * @return true */ public boolean isHasAdmin() { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); return (Boolean)GrouperSession.callbackGrouperSession(GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return GuiAttributeDef.this.attributeDef.getPrivilegeDelegate().hasAttrAdmin(loggedInSubject); } }); }
/** * if the logged in user can read attributes, lazy loaded * @return if can read attributes */ public boolean isCanReadAttributes() { if (this.canReadAttributes == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canReadAttributes = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return StemContainer.this.getGuiStem().getStem().canHavePrivilege(loggedInSubject, NamingPrivilege.STEM_ATTR_READ.getName(), false); } }); } return this.canReadAttributes; }
/** * if the logged in user can optin * @return is can optin */ public boolean isCanOptin() { if (this.canOptin == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canOptin = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return GroupContainer.this.getGuiGroup().getGroup().canHavePrivilege(loggedInSubject, AccessPrivilege.OPTIN.getName(), false); } }); } return this.canOptin; }
/** * if the logged in user can admin, lazy loaded * @return if can admin */ public boolean isCanAdmin() { if (this.canAdmin == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canAdmin = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return GroupContainer.this.getGuiGroup().getGroup().canHavePrivilege(loggedInSubject, AccessPrivilege.ADMIN.getName(), false); } }); } return this.canAdmin; }
/** * if the logged in user can read, lazy loaded * @return if can read */ public boolean isCanRead() { if (this.canRead == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canRead = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return AttributeDefContainer.this.getGuiAttributeDef().getAttributeDef().getPrivilegeDelegate().canHavePrivilege(loggedInSubject, AttributeDefPrivilege.ATTR_READ.getName(), false); } }); } return this.canRead; }
/** * get the member id of the subject or null if not there * @return the member id if exists or null if not */ public String getMemberId() { if (this.subject != null) { GrouperSession grouperSession = GrouperSession.staticGrouperSession(false); //when converting json this is null, so dont do a query if just doing json beans if (grouperSession != null) { Member member = MemberFinder.findBySubject(grouperSession, this.getSubject(), false); if (member != null) { return member.getId(); } } } return null; }
/** * if the logged in user can read, lazy loaded * @return if can read */ public boolean isCanRead() { if (this.canRead == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canRead = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return GroupContainer.this.getGuiGroup().getGroup().canHavePrivilege(loggedInSubject, AccessPrivilege.READ.getName(), false); } }); } return this.canRead; }
/** * if the logged in user can create groups, lazy loaded * @return if can admin create groups */ public boolean isCanCreateGroups() { if (this.canCreateGroups == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canCreateGroups = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return StemContainer.this.getGuiStem().getStem().canHavePrivilege(loggedInSubject, NamingPrivilege.CREATE.getName(), false); } }); } return this.canCreateGroups; }
/** * if the logged in user can create stems, lazy loaded * @return if can create folders */ public boolean isCanCreateStems() { if (this.canCreateStems == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canCreateStems = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return StemContainer.this.getGuiStem().getStem().canHavePrivilege(loggedInSubject, NamingPrivilege.CREATE.getName(), false); } }); } return this.canCreateStems; }
/** * if the logged in user can optout * @return is can optout */ public boolean isCanOptout() { if (this.canOptout == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canOptout = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return GroupContainer.this.getGuiGroup().getGroup().canHavePrivilege(loggedInSubject, AccessPrivilege.OPTOUT.getName(), false); } }); } return this.canOptout; }
/** * if the logged in user can read attributes, lazy loaded * @return if can update */ public boolean isCanReadAttributes() { if (this.canReadAttributes == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canReadAttributes = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return GroupContainer.this.getGuiGroup().getGroup().canHavePrivilege(loggedInSubject, AccessPrivilege.GROUP_ATTR_READ.getName(), false); } }); } return this.canReadAttributes; }
/** * if the logged in user can update attributes, lazy loaded * @return if can update */ public boolean isCanUpdateAttributes() { if (this.canUpdateAttributes == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canUpdateAttributes = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return GroupContainer.this.getGuiGroup().getGroup().canHavePrivilege(loggedInSubject, AccessPrivilege.GROUP_ATTR_UPDATE.getName(), false); } }); } return this.canUpdateAttributes; }
/** * if the logged in user can admin, lazy loaded * @return if can admin */ public boolean isCanAdmin() { if (this.canAdmin == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canAdmin = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return AttributeDefContainer.this.getGuiAttributeDef().getAttributeDef().getPrivilegeDelegate().canHavePrivilege(loggedInSubject, AttributeDefPrivilege.ATTR_ADMIN.getName(), false); } }); } return this.canAdmin; }
/** * if the logged in user can update, lazy loaded * @return if can update */ public boolean isCanUpdate() { if (this.canUpdate == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canUpdate = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return AttributeDefContainer.this.getGuiAttributeDef().getAttributeDef().getPrivilegeDelegate().canHavePrivilege(loggedInSubject, AttributeDefPrivilege.ATTR_UPDATE.getName(), false); } }); } return this.canUpdate; }
/** * if the logged in user can admin privileges, lazy loaded * @return if can admin privileges */ public boolean isCanAdminPrivileges() { if (this.canAdminPrivileges == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canAdminPrivileges = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return StemContainer.this.getGuiStem().getStem().canHavePrivilege(loggedInSubject, NamingPrivilege.STEM_ADMIN.getName(), false); } }); } return this.canAdminPrivileges; }
/** * if the logged in user can view, lazy loaded * @return if can view */ public boolean isCanView() { if (this.canView == null) { final Subject loggedInSubject = GrouperUiFilter.retrieveSubjectLoggedIn(); this.canView = (Boolean)GrouperSession.callbackGrouperSession( GrouperSession.staticGrouperSession().internal_getRootSession(), new GrouperSessionHandler() { @Override public Object callback(GrouperSession grouperSession) throws GrouperSessionException { return AttributeDefContainer.this.getGuiAttributeDef().getAttributeDef().getPrivilegeDelegate().canHavePrivilege(loggedInSubject, AttributeDefPrivilege.ATTR_VIEW.getName(), false); } }); } return this.canView; }
@Override public Void callLogic() { { int millisToSleepForTest = GrouperUiConfig.retrieveConfig().propertyValueInt("uiV2.index.test.sleepIn.stemsImanage.widgetMillis", -1); if (millisToSleepForTest > 0) { GrouperUtil.sleep(millisToSleepForTest); } } Set<Stem> stems = new StemFinder().assignSubject(GrouperSession.staticGrouperSession().getSubject()) .assignPrivileges(NamingPrivilege.CREATE_PRIVILEGES) .assignQueryOptions(new QueryOptions().paging( GrouperUiConfig.retrieveConfig().propertyValueInt("uiV2.index.numberOfObjectsInSectionDefault", 10), 1, false)).findStems(); indexContainer.setGuiStemsUserManagesAbbreviated(GuiStem.convertFromStems(stems)); indexContainer.setStemsImanageRetrieved(true); return null; } };