1 package org.apache.archiva.redback.rbac;
2
3 import java.util.List;
4
5 /*
6 * Copyright 2001-2006 The Apache Software Foundation.
7 *
8 * Licensed under the Apache License, Version 2.0 (the "License");
9 * you may not use this file except in compliance with the License.
10 * You may obtain a copy of the License at
11 *
12 * http://www.apache.org/licenses/LICENSE-2.0
13 *
14 * Unless required by applicable law or agreed to in writing, software
15 * distributed under the License is distributed on an "AS IS" BASIS,
16 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
17 * See the License for the specific language governing permissions and
18 * limitations under the License.
19 */
20
21 /**
22 * UserAssignment - This the mapping object that takes the principal for a user and associates it with a
23 * set of Roles.
24 *
25 * This is the many to many mapping object needed by persistence stores.
26 *
27 * @author Jesse McConnell <jmcconnell@apache.org>
28 * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
29 *
30 * @todo expand on javadoc
31 */
32 public interface UserAssignment
33 {
34
35
36 /**
37 * The principal for the User that the set of roles is associated with.
38 *
39 * NOTE: This field is considered the Primary Key for this object.
40 *
41 * @return the principal for the User.
42 */
43 String getPrincipal();
44
45 /**
46 * Get the roles for this user.
47 *
48 * @return List of <{@link String}> objects representing the Role Names.
49 */
50 List<String> getRoleNames();
51
52 /**
53 * Add a rolename to this assignment.
54 *
55 * @param role the role.
56 */
57 void addRoleName( Role role );
58
59 /**
60 * Add a rolename to this assignment.
61 *
62 * @param roleName the role name.
63 */
64 void addRoleName( String roleName );
65
66 /**
67 * Remove a rolename from this assignment.
68 *
69 * @param role the role who's name is to be removed.
70 */
71 void removeRoleName( Role role );
72
73 /**
74 * Remove a role name from this assignment.
75 *
76 * @param roleName the role name to be removed.
77 */
78 void removeRoleName( String roleName );
79
80 /**
81 * Set the user principal object for this association.
82 *
83 * NOTE: This field is considered the Primary Key for this object.
84 *
85 * @param principal
86 */
87 void setPrincipal( String principal );
88
89 /**
90 * Set the roles names for this user.
91 *
92 * @param roles the List of <{@link String}> objects representing the Role Names.
93 */
94 void setRoleNames( List<String> roles );
95
96 /**
97 * Test to see if the object is a permanent object or not.
98 *
99 * @return true if the object is permanent.
100 */
101 boolean isPermanent();
102
103 /**
104 * Set flag indicating if the object is a permanent object or not.
105 *
106 * @param permanent true if the object is permanent.
107 */
108 void setPermanent( boolean permanent );
109 }