001/**
002 * Copyright 2005-2016 The Kuali Foundation
003 *
004 * Licensed under the Educational Community License, Version 2.0 (the "License");
005 * you may not use this file except in compliance with the License.
006 * You may obtain a copy of the License at
007 *
008 * http://www.opensource.org/licenses/ecl2.php
009 *
010 * Unless required by applicable law or agreed to in writing, software
011 * distributed under the License is distributed on an "AS IS" BASIS,
012 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
013 * See the License for the specific language governing permissions and
014 * limitations under the License.
015 */
016package org.kuali.rice.kim.impl.permission;
017
018
019
020import java.util.List;
021
022import org.apache.commons.lang.StringUtils;
023import org.kuali.rice.kim.api.KimConstants;
024import org.kuali.rice.kim.api.identity.Person;
025import org.kuali.rice.kim.api.permission.Permission;
026import org.kuali.rice.kim.impl.group.GroupBo;
027import org.kuali.rice.kim.impl.identity.PersonImpl;
028import org.kuali.rice.kim.impl.role.RoleBo;
029import org.kuali.rice.krad.bo.BusinessObject;
030import org.springframework.util.AutoPopulatingList;
031
032//strange - hacky non-PBO
033public class UberPermissionBo extends PermissionBo implements BusinessObject {
034
035    private static final long serialVersionUID = 1L;
036
037    private List<RoleBo> assignedToRoles = new AutoPopulatingList(RoleBo.class);
038    private String assignedToRoleNamespaceForLookup;
039    private String assignedToRoleNameForLookup;
040    private RoleBo assignedToRole = new RoleBo();
041    private String assignedToPrincipalNameForLookup;
042    private Person assignedToPrincipal = new PersonImpl();
043    private String assignedToGroupNamespaceForLookup;
044    private String assignedToGroupNameForLookup;
045    private GroupBo assignedToGroup = new GroupBo();
046    private String attributeName;
047    private String attributeValue;
048    private String detailCriteria;
049
050    public static UberPermissionBo from(PermissionBo bo) {
051        if (bo == null) {
052            return null;
053        }
054        Permission.Builder builder =  Permission.Builder.create(bo);
055        return (UberPermissionBo) PermissionBo.from(builder.build());
056
057    }
058    public String getAssignedToRolesToDisplay() {
059        StringBuffer assignedToRolesText = new StringBuffer();
060        for (RoleBo roleImpl: assignedToRoles) {
061            assignedToRolesText.append(roleImpl.getNamespaceCode().trim())
062                    .append(" ")
063                    .append(roleImpl.getName().trim())
064                    .append(KimConstants.KimUIConstants.COMMA_SEPARATOR);
065        }
066        return StringUtils.chomp(assignedToRolesText.toString(), KimConstants.KimUIConstants.COMMA_SEPARATOR);
067    }
068
069    public List<RoleBo> getAssignedToRoles() {
070        return assignedToRoles;
071    }
072
073    public void setAssignedToRoles(List<RoleBo> assignedToRoles) {
074        this.assignedToRoles = assignedToRoles;
075    }
076
077    public String getAssignedToRoleNamespaceForLookup() {
078        return assignedToRoleNamespaceForLookup;
079    }
080
081    public void setAssignedToRoleNamespaceForLookup(String assignedToRoleNamespaceForLookup) {
082        this.assignedToRoleNamespaceForLookup = assignedToRoleNamespaceForLookup;
083    }
084
085    public String getAssignedToRoleNameForLookup() {
086        return assignedToRoleNameForLookup;
087    }
088
089    public void setAssignedToRoleNameForLookup(String assignedToRoleNameForLookup) {
090        this.assignedToRoleNameForLookup = assignedToRoleNameForLookup;
091    }
092
093    public RoleBo getAssignedToRole() {
094        return assignedToRole;
095    }
096
097    public void setAssignedToRole(RoleBo assignedToRole) {
098        this.assignedToRole = assignedToRole;
099    }
100
101    public String getAssignedToPrincipalNameForLookup() {
102        return assignedToPrincipalNameForLookup;
103    }
104
105    public void setAssignedToPrincipalNameForLookup(String assignedToPrincipalNameForLookup) {
106        this.assignedToPrincipalNameForLookup = assignedToPrincipalNameForLookup;
107    }
108
109    public Person getAssignedToPrincipal() {
110        return assignedToPrincipal;
111    }
112
113    public void setAssignedToPrincipal(Person assignedToPrincipal) {
114        this.assignedToPrincipal = assignedToPrincipal;
115    }
116
117    public String getAssignedToGroupNamespaceForLookup() {
118        return assignedToGroupNamespaceForLookup;
119    }
120
121    public void setAssignedToGroupNamespaceForLookup(String assignedToGroupNamespaceForLookup) {
122        this.assignedToGroupNamespaceForLookup = assignedToGroupNamespaceForLookup;
123    }
124
125    public String getAssignedToGroupNameForLookup() {
126        return assignedToGroupNameForLookup;
127    }
128
129    public void setAssignedToGroupNameForLookup(String assignedToGroupNameForLookup) {
130        this.assignedToGroupNameForLookup = assignedToGroupNameForLookup;
131    }
132
133    public GroupBo getAssignedToGroup() {
134        return assignedToGroup;
135    }
136
137    public void setAssignedToGroup(GroupBo assignedToGroup) {
138        this.assignedToGroup = assignedToGroup;
139    }
140
141    public String getAttributeName() {
142        return attributeName;
143    }
144
145    public void setAttributeName(String attributeName) {
146        this.attributeName = attributeName;
147    }
148
149    public String getAttributeValue() {
150        return attributeValue;
151    }
152
153    public void setAttributeValue(String attributeValue) {
154        this.attributeValue = attributeValue;
155    }
156
157    public String getDetailCriteria() {
158        return detailCriteria;
159    }
160
161    public void setDetailCriteria(String detailCriteria) {
162        this.detailCriteria = detailCriteria;
163    }
164
165    @Override
166    public void refresh() {
167    }
168}
169