Search in sources :

Example 1 with Role

use of org.onebusaway.admin.model.role.Role in project onebusaway-application-modules by camsys.

the class AccessControlServiceImpl method init.

@PostConstruct
private void init() throws Exception {
    roleByName = new ConcurrentHashMap<String, Role>();
    List<Map<String, String>> settings = _configurationServiceClient.getItems("config", "list");
    if (settings == null)
        throw new Exception("No configuration supplied");
    for (Map<String, String> setting : settings) {
        if ((setting.containsKey("component") && privilegeComponent.equals(setting.get("component"))) && setting.containsKey("key")) {
            String roleName = setting.get("key");
            String privListString = setting.get("value");
            if (privListString.equals("*")) {
                Role role = new Role(roleName, null);
                roleByName.put(roleName, role);
                continue;
            }
            Set<Privilege> privileges = new HashSet<Privilege>();
            for (String privName : privListString.split(",")) {
                Privilege priv = new Privilege(privName);
                privileges.add(priv);
            }
            Role role = new Role(roleName, privileges);
            roleByName.put(roleName, role);
        }
    }
}
Also used : Role(org.onebusaway.admin.model.role.Role) UserRole(org.onebusaway.users.model.UserRole) Privilege(org.onebusaway.admin.model.role.Privilege) ConcurrentHashMap(java.util.concurrent.ConcurrentHashMap) Map(java.util.Map) HashSet(java.util.HashSet) PostConstruct(javax.annotation.PostConstruct)

Example 2 with Role

use of org.onebusaway.admin.model.role.Role in project onebusaway-application-modules by camsys.

the class AccessControlServiceImpl method userHasPrivilege.

@Override
public boolean userHasPrivilege(User user, Privilege privilege) {
    if (user == null) {
        // anonymous user
        Role role = roleByName.get(StandardAuthoritiesService.ANONYMOUS);
        return roleHasPrivilege(role, privilege);
    }
    Set<UserRole> roles = user.getRoles();
    for (UserRole userRole : roles) {
        Role role = roleByName.get(userRole.getName());
        if (role == null)
            _log.info("No privileges found for role " + userRole.getName());
        else if (role.hasAllPrivileges() || (privilege != null && roleHasPrivilege(role, privilege))) {
            _log.debug(userRole.getName() + " has privileges for " + privilege.getName());
            return true;
        }
    }
    _log.warn("Auth failed for " + user + ", " + privilege);
    return false;
}
Also used : Role(org.onebusaway.admin.model.role.Role) UserRole(org.onebusaway.users.model.UserRole) UserRole(org.onebusaway.users.model.UserRole)

Aggregations

Role (org.onebusaway.admin.model.role.Role)2 UserRole (org.onebusaway.users.model.UserRole)2 HashSet (java.util.HashSet)1 Map (java.util.Map)1 ConcurrentHashMap (java.util.concurrent.ConcurrentHashMap)1 PostConstruct (javax.annotation.PostConstruct)1 Privilege (org.onebusaway.admin.model.role.Privilege)1