@Override public String get(Object key) { // if we have this key exactly, use it String value = m_wrapper.get(key); if (value != null) return value; // otherwise break up key as a compound id and find what values we have for these // the values are roles, and we prefer "maintain" to "access" String rv = null; String[] ids = m_provider.unpackId((String)key); for (int i = 0; i < ids.length; i++) { // try this one value = m_wrapper.get(ids[i]); // if we found one already, ask the provider which to keep if (value != null) { rv = m_provider.preferredRole(value, rv); } } return rv; }
GroupProvider groupProvider = (GroupProvider) ComponentManager.get( org.sakaiproject.authz.api.GroupProvider.class); String[] courseRosters = groupProvider.unpackId(courseRoster); List<String> rosterList = new ArrayList<>(); String userEid = user.getEid(); for (int i = 0; i < courseRosters.length; i++) { String providerId = courseRosters[i]; Map userRole = groupProvider.getUserRolesForGroup(providerId); if (userRole.containsKey(userEid)) { rosterList.add(providerId); String[] sArray = new String[rosterList.size()]; sArray = (String[]) rosterList.toArray(sArray); String providedGroups = groupProvider.packId(sArray); setProperty(props, "ext_sakai_section", providedGroups);
/** * getProviderCourseList a course site/realm id in one of three formats, for * a single section, for multiple sections of the same course, or for a * cross-listing having multiple courses. getProviderCourseList parses a * realm id into year, term, campus_code, catalog_nbr, section components. * * @param id * is a String representation of the course realm id (external * id). */ public static List<String> getProviderCourseList(String siteId) { String id = getExternalRealmId(siteId); Vector<String> rv = new Vector<String>(); if (id == null || NULL_STRING.equals(id) ) { return rv; } // Break Provider Id into course id parts String[] courseIds = groupProvider.unpackId(id); // Iterate through course ids for (int i=0; i<courseIds.length; i++) { String courseId = (String) courseIds[i]; rv.add(courseId); } return rv; } // getProviderCourseList
preferedRole = groupProvider.preferredRole(preferedRole, exisiting.getRole().getId());
Map<String,String> target = m_provider.getUserRolesForGroup(realm.getProviderGroupId());
Map providerGrants = new ProviderMap(m_provider, m_provider.getGroupRolesForUser(eid));
String[] courseRosters = groupProvider.unpackId(courseRoster); List<String> rosterList = new ArrayList<String>(); String userEid = user.getEid(); for(int i=0; i<courseRosters.length;i++) { String providerId = courseRosters[i]; Map userRole = groupProvider.getUserRolesForGroup(providerId); if (userRole.containsKey(userEid)) { rosterList.add(providerId); String[] sArray = new String[rosterList.size()]; sArray = (String[]) rosterList.toArray(sArray); String providedGroups = groupProvider.packId(sArray); setProperty(props,"ext_sakai_section",providedGroups);
String[] ids = m_provider.unpackId(azg.getProviderGroupId()); if (ids != null)