1 /*
2 * Copyright 2011 The Kuali Foundation
3 *
4 * Licensed under the Educational Community License, Version 1.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.opensource.org/licenses/ecl1.php
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16 package org.kuali.rice.kim.api.responsibility;
17
18 import org.kuali.rice.core.api.mo.common.Attributes;
19 import org.kuali.rice.core.api.mo.common.GloballyUnique;
20 import org.kuali.rice.core.api.mo.common.Identifiable;
21 import org.kuali.rice.core.api.mo.common.Versioned;
22 import org.kuali.rice.core.api.mo.common.active.Inactivatable;
23 import org.kuali.rice.kim.api.common.template.TemplateContract;
24
25 /**
26 * This is the contract for a Permission. Represents a single permission within the system.
27 *
28 * Permissions are attached to roles. All authorization checks should be done against permissions,
29 * never against roles or groups.
30 *
31 */
32 public interface ResponsibilityContract extends Versioned, GloballyUnique, Inactivatable, Identifiable{;
33
34 /**
35 * The namespace code that this Permission belongs too.
36 *
37 * @return namespaceCode
38 */
39 String getNamespaceCode();
40
41 /**
42 * The name of the Permission.
43 *
44 * @return name
45 */
46 String getName();
47
48 /**
49 * The description of the Permission.
50 *
51 * @return description
52 */
53 String getDescription();
54
55 /**
56 * The Template referenced by the Permission.
57 *
58 * @return templateId
59 */
60 TemplateContract getTemplate();
61
62 /**
63 * Attributes for a Permission.
64 *
65 * @return attributes
66 */
67 Attributes getAttributes();
68 }