Search in sources :

Example 1 with Exclude

use of org.jaffa.security.securityrolesdomain.Exclude in project jaffa-framework by jaffa-projects.

the class UserMaintenanceTx method performUserRoleValidations.

private void performUserRoleValidations(String[] userRole, User domain) throws ApplicationExceptions {
    ApplicationExceptions appExps = null;
    boolean foundExcludedRole = false;
    Roles root = PolicyCache.getRoles();
    if (root != null) {
        List roleObjects = root.getRole();
        if (roleObjects != null) {
            for (Iterator it = roleObjects.iterator(); it.hasNext(); ) {
                Role role = (Role) it.next();
                if (Arrays.binarySearch(userRole, role.getName()) >= 0) {
                    List includes = role.getInclude();
                    if (includes != null) {
                        for (Iterator it2 = includes.iterator(); it2.hasNext(); ) {
                            Include includedObject = (Include) it2.next();
                            String includeName = includedObject.getName();
                            if (Arrays.binarySearch(userRole, includeName) < 0) {
                                if (appExps == null)
                                    appExps = new ApplicationExceptions();
                                appExps.add(new UserMaintenanceException(UserMaintenanceException.PROP_INCLUDED_ROLE_MISSING, role.getName(), includeName));
                            }
                        }
                    }
                    List excludes = role.getExclude();
                    if (excludes != null && !foundExcludedRole) {
                        for (Iterator it2 = excludes.iterator(); it2.hasNext(); ) {
                            Exclude excludedObject = (Exclude) it2.next();
                            String excludeName = excludedObject.getName();
                            if (Arrays.binarySearch(userRole, excludeName) >= 0) {
                                if (appExps == null)
                                    appExps = new ApplicationExceptions();
                                appExps.add(new UserMaintenanceException(UserMaintenanceException.PROP_EXCLUDED_ROLE_PRESENT, role.getName(), excludeName));
                                foundExcludedRole = true;
                            }
                        }
                    }
                }
            }
        }
    }
    if (appExps != null && appExps.size() > 0)
        throw appExps;
}
Also used : Role(org.jaffa.security.securityrolesdomain.Role) UserRole(org.jaffa.applications.jaffa.modules.admin.domain.UserRole) ApplicationExceptions(org.jaffa.exceptions.ApplicationExceptions) Exclude(org.jaffa.security.securityrolesdomain.Exclude) Include(org.jaffa.security.securityrolesdomain.Include) Roles(org.jaffa.security.securityrolesdomain.Roles) UserMaintenanceException(org.jaffa.applications.jaffa.modules.admin.components.usermaintenance.tx.exceptions.UserMaintenanceException)

Example 2 with Exclude

use of org.jaffa.security.securityrolesdomain.Exclude in project jaffa-framework by jaffa-projects.

the class UserMaintenanceForm method processExcludes.

private boolean processExcludes(HttpServletRequest request, Collection userRole) {
    boolean valid = true;
    boolean foundExcludedRole = false;
    Roles root = PolicyCache.getRoles();
    if (root != null) {
        List roleObjects = root.getRole();
        if (roleObjects != null) {
            for (Iterator it = roleObjects.iterator(); it.hasNext(); ) {
                Role role = (Role) it.next();
                if (userRole.contains(role.getName())) {
                    List excludes = role.getExclude();
                    if ((excludes != null) && (!foundExcludedRole)) {
                        StringBuffer excludedRoles = new StringBuffer();
                        for (Iterator it2 = excludes.iterator(); it2.hasNext(); ) {
                            Exclude excludedObject = (Exclude) it2.next();
                            String excludeName = excludedObject.getName();
                            if (userRole.contains(excludeName)) {
                                foundExcludedRole = true;
                                valid = false;
                            }
                            if (excludedRoles.length() == 0)
                                excludedRoles.append(excludeName);
                            else
                                excludedRoles.append("," + excludeName);
                        }
                        if (foundExcludedRole)
                            raiseError(request, "roles", new ActionMessage("error.Jaffa.Admin.UserMaintenance.ExcludedRolesSelection", "" + role.getName(), "" + excludedRoles));
                    }
                }
            }
        }
    }
    return valid;
}
Also used : Role(org.jaffa.security.securityrolesdomain.Role) Exclude(org.jaffa.security.securityrolesdomain.Exclude) ActionMessage(org.apache.struts.action.ActionMessage) Roles(org.jaffa.security.securityrolesdomain.Roles)

Aggregations

Exclude (org.jaffa.security.securityrolesdomain.Exclude)2 Role (org.jaffa.security.securityrolesdomain.Role)2 Roles (org.jaffa.security.securityrolesdomain.Roles)2 ActionMessage (org.apache.struts.action.ActionMessage)1 UserMaintenanceException (org.jaffa.applications.jaffa.modules.admin.components.usermaintenance.tx.exceptions.UserMaintenanceException)1 UserRole (org.jaffa.applications.jaffa.modules.admin.domain.UserRole)1 ApplicationExceptions (org.jaffa.exceptions.ApplicationExceptions)1 Include (org.jaffa.security.securityrolesdomain.Include)1