1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16 package org.kuali.rice.kim.web.struts.form;
17
18 import java.util.List;
19
20 import org.apache.commons.lang.StringUtils;
21 import org.kuali.rice.kim.bo.impl.GroupImpl;
22 import org.kuali.rice.kim.bo.impl.PersonImpl;
23 import org.kuali.rice.kim.bo.impl.RoleImpl;
24 import org.kuali.rice.kim.bo.types.dto.KimTypeInfo;
25 import org.kuali.rice.kim.bo.ui.KimDocumentRoleMember;
26 import org.kuali.rice.kim.bo.ui.KimDocumentRolePermission;
27 import org.kuali.rice.kim.bo.ui.KimDocumentRoleQualifier;
28 import org.kuali.rice.kim.bo.ui.KimDocumentRoleResponsibility;
29 import org.kuali.rice.kim.bo.ui.RoleDocumentDelegationMember;
30 import org.kuali.rice.kim.bo.ui.RoleDocumentDelegationMemberQualifier;
31 import org.kuali.rice.kim.document.IdentityManagementRoleDocument;
32 import org.kuali.rice.kim.util.KimConstants;
33 import org.kuali.rice.kns.util.TableRenderUtil;
34 import org.kuali.rice.kns.web.format.DateDisplayTimestampObjectFormatter;
35
36
37
38
39
40
41
42 public class IdentityManagementRoleDocumentForm extends IdentityManagementDocumentFormBase {
43 protected static final long serialVersionUID = 7099079353241080483L;
44 {
45 requiredNonEditableProperties.add("methodToCall");
46 requiredNonEditableProperties.add("roleCommand");
47 }
48
49 protected String delegationMemberRoleMemberId;
50 protected String dmrmi;
51 protected boolean canAssignRole = true;
52 protected boolean canModifyAssignees = true;
53 protected KimTypeInfo kimType;
54 protected KimDocumentRoleMember member;
55 {
56 member = new KimDocumentRoleMember();
57 member.getQualifiers().add(new KimDocumentRoleQualifier());
58 }
59 protected KimDocumentRolePermission permission;
60 protected KimDocumentRoleResponsibility responsibility;
61 protected RoleDocumentDelegationMember delegationMember;
62 {
63 delegationMember = new RoleDocumentDelegationMember();
64 delegationMember.getQualifiers().add(new RoleDocumentDelegationMemberQualifier());
65 }
66 protected String roleId;
67
68
69 public IdentityManagementRoleDocumentForm() {
70 super();
71 setFormatterType("document.members.activeFromDate", DateDisplayTimestampObjectFormatter.class);
72 setFormatterType("document.delegationMembers.activeFromDate", DateDisplayTimestampObjectFormatter.class);
73 setFormatterType("document.members.activeToDate", DateDisplayTimestampObjectFormatter.class);
74 setFormatterType("document.delegationMembers.activeToDate", DateDisplayTimestampObjectFormatter.class);
75 }
76
77
78
79
80 public RoleDocumentDelegationMember getDelegationMember() {
81 return this.delegationMember;
82 }
83
84
85
86
87 public void setDelegationMember(RoleDocumentDelegationMember delegationMember) {
88 this.delegationMember = delegationMember;
89 }
90
91 @Override
92 public String getDefaultDocumentTypeName(){
93 return "IdentityManagementRoleDocument";
94 }
95
96 public IdentityManagementRoleDocument getRoleDocument() {
97 return (IdentityManagementRoleDocument) this.getDocument();
98 }
99
100
101
102
103 public KimDocumentRoleMember getMember() {
104 return this.member;
105 }
106
107
108
109
110 public void setMember(KimDocumentRoleMember member) {
111 this.member = member;
112 }
113
114
115
116
117 public KimDocumentRolePermission getPermission() {
118 return this.permission;
119 }
120
121
122
123
124 public void setPermission(KimDocumentRolePermission permission) {
125 this.permission = permission;
126 }
127
128
129
130
131 public KimDocumentRoleResponsibility getResponsibility() {
132 return this.responsibility;
133 }
134
135
136
137
138 public void setResponsibility(KimDocumentRoleResponsibility responsibility) {
139 this.responsibility = responsibility;
140 }
141
142 public String getMemberFieldConversions(){
143 if(member==null)
144 return "";
145 return getMemberFieldConversions(member.getMemberTypeCode());
146 }
147
148 public String getMemberBusinessObjectName(){
149 if(member==null)
150 return "";
151 return getMemberBusinessObjectName(member.getMemberTypeCode());
152 }
153
154 public String getDelegationMemberFieldConversions(){
155 if(getDelegationMember()==null)
156 return "";
157 String memberTypeCode = getDelegationMember().getMemberTypeCode();
158 if(KimConstants.KimUIConstants.MEMBER_TYPE_PRINCIPAL_CODE.equals(memberTypeCode))
159 return "principalId:delegationMember.memberId,principalName:delegationMember.memberName";
160 else if(KimConstants.KimUIConstants.MEMBER_TYPE_ROLE_CODE.equals(memberTypeCode))
161 return "roleId:delegationMember.memberId,roleName:delegationMember.memberName,namespaceCode:delegationMember.memberNamespaceCode";
162 else if(KimConstants.KimUIConstants.MEMBER_TYPE_GROUP_CODE.equals(memberTypeCode))
163 return "groupId:delegationMember.memberId,groupName:delegationMember.memberName,namespaceCode:delegationMember.memberNamespaceCode";
164 return "";
165 }
166
167 public String getDelegationMemberBusinessObjectName(){
168 if(getDelegationMember()==null)
169 return "";
170 return getMemberBusinessObjectName(getDelegationMember().getMemberTypeCode());
171 }
172
173 protected String getMemberFieldConversions(String memberTypeCode){
174 if(KimConstants.KimUIConstants.MEMBER_TYPE_PRINCIPAL_CODE.equals(memberTypeCode))
175 return "principalId:member.memberId,principalName:member.memberName";
176 else if(KimConstants.KimUIConstants.MEMBER_TYPE_ROLE_CODE.equals(memberTypeCode))
177 return "roleId:member.memberId,roleName:member.memberName,namespaceCode:member.memberNamespaceCode";
178 else if(KimConstants.KimUIConstants.MEMBER_TYPE_GROUP_CODE.equals(memberTypeCode))
179 return "groupId:member.memberId,groupName:member.memberName,namespaceCode:member.memberNamespaceCode";
180 return "";
181 }
182
183 protected String getMemberBusinessObjectName(String memberTypeCode){
184 if(KimConstants.KimUIConstants.MEMBER_TYPE_PRINCIPAL_CODE.equals(memberTypeCode))
185 return PersonImpl.class.getName();
186 else if(KimConstants.KimUIConstants.MEMBER_TYPE_ROLE_CODE.equals(memberTypeCode))
187 return RoleImpl.class.getName();
188 else if(KimConstants.KimUIConstants.MEMBER_TYPE_GROUP_CODE.equals(memberTypeCode))
189 return GroupImpl.class.getName();
190 return "";
191 }
192
193
194
195
196 public KimTypeInfo getKimType() {
197 return this.kimType;
198 }
199
200
201
202
203 public void setKimType(KimTypeInfo kimType) {
204 this.kimType = kimType;
205 if ( kimType != null && getRoleDocument() != null ) {
206 getRoleDocument().setKimType(kimType);
207 }
208 }
209
210
211
212
213 public boolean isCanAssignRole() {
214 return this.canAssignRole;
215 }
216
217
218
219
220 public void setCanAssignRole(boolean canAssignRole) {
221 this.canAssignRole = canAssignRole;
222 }
223
224
225
226
227 public boolean isCanModifyAssignees() {
228 return this.canModifyAssignees;
229 }
230
231
232
233
234 public void setCanModifyAssignees(boolean canModifyAssignees) {
235 this.canModifyAssignees = canModifyAssignees;
236 }
237
238 public List<KimDocumentRoleMember> getMemberRows() {
239 return getRoleDocument().getMembers();
240 }
241
242 public int getIndexOfRoleMemberFromMemberRows(String roleMemberId){
243 int index = 0;
244 for(KimDocumentRoleMember roleMember: getMemberRows()){
245 if(StringUtils.equals(roleMember.getRoleMemberId(), roleMemberId)){
246 break;
247 }
248 index++;
249 }
250 return index;
251 }
252
253 public int getPageNumberOfRoleMemberId(String roleMemberId){
254 if(StringUtils.isEmpty(roleMemberId)) return 1;
255 int index = getIndexOfRoleMemberFromMemberRows(roleMemberId);
256 return TableRenderUtil.computeTotalNumberOfPages(index+1, getRecordsPerPage())-1;
257 }
258
259
260
261
262 public String getRoleId() {
263 return this.roleId;
264 }
265
266
267
268
269 public void setRoleId(String roleId) {
270 this.roleId = roleId;
271 }
272
273
274
275
276 public String getDelegationMemberRoleMemberId() {
277 return this.delegationMemberRoleMemberId;
278 }
279
280
281
282
283 public void setDelegationMemberRoleMemberId(String delegationMemberRoleMemberId) {
284 this.delegationMemberRoleMemberId = delegationMemberRoleMemberId;
285 getDelegationMember().setRoleMemberId(delegationMemberRoleMemberId);
286 KimDocumentRoleMember roleMember = getRoleDocument().getMember(delegationMemberRoleMemberId);
287 if(roleMember!=null){
288 delegationMember.setRoleMemberId(roleMember.getRoleMemberId());
289 delegationMember.setRoleMemberName(roleMember.getMemberName());
290 delegationMember.setRoleMemberNamespaceCode(roleMember.getMemberNamespaceCode());
291 RoleDocumentDelegationMemberQualifier delegationMemberQualifier;
292 for(KimDocumentRoleQualifier roleQualifier: roleMember.getQualifiers()){
293 delegationMemberQualifier = getDelegationMember().getQualifier(roleQualifier.getKimAttrDefnId());
294 delegationMemberQualifier.setAttrVal(roleQualifier.getAttrVal());
295 }
296 }
297 }
298
299
300
301
302 public String getDmrmi() {
303 return this.dmrmi;
304 }
305
306
307
308
309 public void setDmrmi(String dmrmi) {
310 this.dmrmi = dmrmi;
311 }
312
313 }