001 /*
002 * Copyright 2011 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 */
016 package org.kuali.kfs.sec.businessobject;
017
018 import java.util.ArrayList;
019 import java.util.LinkedHashMap;
020 import java.util.List;
021
022 import org.kuali.kfs.sys.KFSPropertyConstants;
023 import org.kuali.rice.kns.bo.Inactivateable;
024 import org.kuali.rice.kns.bo.PersistableBusinessObjectBase;
025 import org.kuali.rice.kns.util.KualiInteger;
026 import org.kuali.rice.kns.util.TypedArrayList;
027
028 /**
029 * Defines a restriction that can be given to a model or principal. A restriction defines the attribute that is restricted on, and the action(s) that are being restricted. A KIM
030 * permission and role is created from a definition record
031 */
032 public class SecurityDefinition extends PersistableBusinessObjectBase implements Inactivateable {
033 private KualiInteger id;
034 private String name;
035 private String description;
036 private String roleId;
037 private KualiInteger attributeId;
038 private boolean restrictViewAccountingLine;
039 private boolean restrictEditAccountingLine;
040 private boolean restrictViewDocument;
041 private boolean restrictEditDocument;
042 private boolean restrictViewNotesAndAttachments;
043 private boolean restrictLookup;
044 private boolean restrictGLInquiry;
045 private boolean restrictLaborInquiry;
046 private boolean active;
047
048 private SecurityAttribute securityAttribute;
049
050 private List<SecurityDefinitionDocumentType> definitionDocumentTypes;
051
052 public SecurityDefinition() {
053 super();
054
055 definitionDocumentTypes = new TypedArrayList(SecurityDefinitionDocumentType.class);
056
057 restrictViewAccountingLine = false;
058 restrictEditAccountingLine = false;
059 restrictViewDocument = false;
060 restrictEditDocument = false;
061 restrictViewNotesAndAttachments = false;
062 restrictLookup = false;
063 restrictGLInquiry = false;
064 restrictLaborInquiry = false;
065 }
066
067 /**
068 * Gets the id attribute.
069 *
070 * @return Returns the id.
071 */
072 public KualiInteger getId() {
073 return id;
074 }
075
076
077 /**
078 * Sets the id attribute value.
079 *
080 * @param id The id to set.
081 */
082 public void setId(KualiInteger id) {
083 this.id = id;
084 }
085
086
087 /**
088 * Gets the name attribute.
089 *
090 * @return Returns the name.
091 */
092 public String getName() {
093 return name;
094 }
095
096
097 /**
098 * Sets the name attribute value.
099 *
100 * @param name The name to set.
101 */
102 public void setName(String name) {
103 this.name = name;
104 }
105
106
107 /**
108 * Gets the description attribute.
109 *
110 * @return Returns the description.
111 */
112 public String getDescription() {
113 return description;
114 }
115
116
117 /**
118 * Sets the description attribute value.
119 *
120 * @param description The description to set.
121 */
122 public void setDescription(String description) {
123 this.description = description;
124 }
125
126
127 /**
128 * Gets the roleId attribute.
129 *
130 * @return Returns the roleId.
131 */
132 public String getRoleId() {
133 return roleId;
134 }
135
136 /**
137 * Sets the roleId attribute value.
138 *
139 * @param roleId The roleId to set.
140 */
141 public void setRoleId(String roleId) {
142 this.roleId = roleId;
143 }
144
145 /**
146 * Gets the attributeId attribute.
147 *
148 * @return Returns the attributeId.
149 */
150 public KualiInteger getAttributeId() {
151 return attributeId;
152 }
153
154
155 /**
156 * Sets the attributeId attribute value.
157 *
158 * @param attributeId The attributeId to set.
159 */
160 public void setAttributeId(KualiInteger attributeId) {
161 this.attributeId = attributeId;
162 }
163
164
165 /**
166 * Gets the restrictViewAccountingLine attribute.
167 *
168 * @return Returns the restrictViewAccountingLine.
169 */
170 public boolean isRestrictViewAccountingLine() {
171 return restrictViewAccountingLine;
172 }
173
174
175 /**
176 * Sets the restrictViewAccountingLine attribute value.
177 *
178 * @param restrictViewAccountingLine The restrictViewAccountingLine to set.
179 */
180 public void setRestrictViewAccountingLine(boolean restrictViewAccountingLine) {
181 this.restrictViewAccountingLine = restrictViewAccountingLine;
182 }
183
184
185 /**
186 * Gets the restrictEditAccountingLine attribute.
187 *
188 * @return Returns the restrictEditAccountingLine.
189 */
190 public boolean isRestrictEditAccountingLine() {
191 return restrictEditAccountingLine;
192 }
193
194
195 /**
196 * Sets the restrictEditAccountingLine attribute value.
197 *
198 * @param restrictEditAccountingLine The restrictEditAccountingLine to set.
199 */
200 public void setRestrictEditAccountingLine(boolean restrictEditAccountingLine) {
201 this.restrictEditAccountingLine = restrictEditAccountingLine;
202 }
203
204
205 /**
206 * Gets the restrictViewDocument attribute.
207 *
208 * @return Returns the restrictViewDocument.
209 */
210 public boolean isRestrictViewDocument() {
211 return restrictViewDocument;
212 }
213
214
215 /**
216 * Sets the restrictViewDocument attribute value.
217 *
218 * @param restrictViewDocument The restrictViewDocument to set.
219 */
220 public void setRestrictViewDocument(boolean restrictViewDocument) {
221 this.restrictViewDocument = restrictViewDocument;
222 }
223
224
225 /**
226 * Gets the restrictViewNotesAndAttachments attribute.
227 *
228 * @return Returns the restrictViewNotesAndAttachments.
229 */
230 public boolean isRestrictViewNotesAndAttachments() {
231 return restrictViewNotesAndAttachments;
232 }
233
234
235 /**
236 * Sets the restrictViewNotesAndAttachments attribute value.
237 *
238 * @param restrictViewNotesAndAttachments The restrictViewNotesAndAttachments to set.
239 */
240 public void setRestrictViewNotesAndAttachments(boolean restrictViewNotesAndAttachments) {
241 this.restrictViewNotesAndAttachments = restrictViewNotesAndAttachments;
242 }
243
244
245 /**
246 * Gets the restrictLookup attribute.
247 *
248 * @return Returns the restrictLookup.
249 */
250 public boolean isRestrictLookup() {
251 return restrictLookup;
252 }
253
254
255 /**
256 * Sets the restrictLookup attribute value.
257 *
258 * @param restrictLookup The restrictLookup to set.
259 */
260 public void setRestrictLookup(boolean restrictLookup) {
261 this.restrictLookup = restrictLookup;
262 }
263
264
265 /**
266 * Gets the restrictGLInquiry attribute.
267 *
268 * @return Returns the restrictGLInquiry.
269 */
270 public boolean isRestrictGLInquiry() {
271 return restrictGLInquiry;
272 }
273
274
275 /**
276 * Sets the restrictGLInquiry attribute value.
277 *
278 * @param restrictGLInquiry The restrictGLInquiry to set.
279 */
280 public void setRestrictGLInquiry(boolean restrictGLInquiry) {
281 this.restrictGLInquiry = restrictGLInquiry;
282 }
283
284
285 /**
286 * Gets the restrictLaborInquiry attribute.
287 *
288 * @return Returns the restrictLaborInquiry.
289 */
290 public boolean isRestrictLaborInquiry() {
291 return restrictLaborInquiry;
292 }
293
294
295 /**
296 * Sets the restrictLaborInquiry attribute value.
297 *
298 * @param restrictLaborInquiry The restrictLaborInquiry to set.
299 */
300 public void setRestrictLaborInquiry(boolean restrictLaborInquiry) {
301 this.restrictLaborInquiry = restrictLaborInquiry;
302 }
303
304
305 /**
306 * Gets the active attribute.
307 *
308 * @return Returns the active.
309 */
310 public boolean isActive() {
311 return active;
312 }
313
314
315 /**
316 * Sets the active attribute value.
317 *
318 * @param active The active to set.
319 */
320 public void setActive(boolean active) {
321 this.active = active;
322 }
323
324
325 /**
326 * Gets the securityAttribute attribute.
327 *
328 * @return Returns the securityAttribute.
329 */
330 public SecurityAttribute getSecurityAttribute() {
331 return securityAttribute;
332 }
333
334
335 /**
336 * Sets the securityAttribute attribute value.
337 *
338 * @param securityAttribute The securityAttribute to set.
339 */
340 public void setSecurityAttribute(SecurityAttribute securityAttribute) {
341 this.securityAttribute = securityAttribute;
342 }
343
344
345 /**
346 * Gets the restrictEditDocument attribute.
347 *
348 * @return Returns the restrictEditDocument.
349 */
350 public boolean isRestrictEditDocument() {
351 return restrictEditDocument;
352 }
353
354
355 /**
356 * Sets the restrictEditDocument attribute value.
357 *
358 * @param restrictEditDocument The restrictEditDocument to set.
359 */
360 public void setRestrictEditDocument(boolean restrictEditDocument) {
361 this.restrictEditDocument = restrictEditDocument;
362 }
363
364
365 /**
366 * Gets the definitionDocumentTypes attribute.
367 *
368 * @return Returns the definitionDocumentTypes.
369 */
370 public List<SecurityDefinitionDocumentType> getDefinitionDocumentTypes() {
371 return definitionDocumentTypes;
372 }
373
374
375 /**
376 * Sets the definitionDocumentTypes attribute value.
377 *
378 * @param definitionDocumentTypes The definitionDocumentTypes to set.
379 */
380 public void setDefinitionDocumentTypes(List<SecurityDefinitionDocumentType> definitionDocumentTypes) {
381 this.definitionDocumentTypes = definitionDocumentTypes;
382 }
383
384 /**
385 * @see org.kuali.rice.kns.bo.BusinessObjectBase#toStringMapper()
386 */
387 @Override
388 protected LinkedHashMap toStringMapper() {
389 LinkedHashMap m = new LinkedHashMap();
390
391 m.put(KFSPropertyConstants.ID, this.id);
392
393 return m;
394 }
395
396 }