]> source.dussan.org Git - archiva.git/blob
3de33643aa938bf3185ed77dc18e4427d60f243e
[archiva.git] /
1 package org.apache.archiva.redback.common.ldap.role;
2 /*
3  * Licensed to the Apache Software Foundation (ASF) under one
4  * or more contributor license agreements.  See the NOTICE file
5  * distributed with this work for additional information
6  * regarding copyright ownership.  The ASF licenses this file
7  * to you under the Apache License, Version 2.0 (the
8  * "License"); you may not use this file except in compliance
9  * with the License.  You may obtain a copy of the License at
10  *
11  * http://www.apache.org/licenses/LICENSE-2.0
12  *
13  * Unless required by applicable law or agreed to in writing,
14  * software distributed under the License is distributed on an
15  * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
16  * KIND, either express or implied.  See the License for the
17  * specific language governing permissions and limitations
18  * under the License.
19  */
20
21 import org.apache.archiva.redback.common.ldap.MappingException;
22
23 import java.util.List;
24 import java.util.Map;
25
26 /**
27  * will map ldap group to redback role
28  *
29  * @author Olivier Lamy
30  * @since 2.1
31  */
32 public interface LdapRoleMapper
33 {
34     /**
35      * @param role redback role
36      * @return corresponding LDAP group
37      */
38     String getLdapGroup( String role )
39         throws MappingException;
40
41     // for continuum ?
42     //String getLdapGroup( String role, String resource );
43
44
45     /**
46      * read all groups from ldap
47      *
48      * @return all LDAP groups
49      */
50     List<String> getAllGroups()
51         throws MappingException;
52
53     /**
54      * read all ldap groups then map to corresponding role (if no mapping found group is ignored)
55      *
56      * @return all roles
57      * @throws Exception
58      */
59     List<String> getAllRoles()
60         throws MappingException;
61
62
63     /**
64      * @return the base dn which contains all ldap groups
65      */
66     String getGroupsDn();
67
68     /**
69      * @return the class used for group usually groupOfUniqueNames
70      */
71     String getLdapGroupClass();
72
73     /**
74      * @param group ldap group
75      * @return uids of group members
76      * @throws MappingException
77      */
78     List<String> getGroupsMember( String group )
79         throws MappingException;
80
81     List<String> getGroups( String username )
82         throws MappingException;
83
84     List<String> getRoles( String username )
85         throws MappingException;
86
87     /**
88      * add mapping redback role <-> ldap group
89      *
90      * @param role      redback role
91      * @param ldapGroup ldap group
92      */
93     void addLdapMapping( String role, String ldapGroup )
94         throws MappingException;
95
96     /**
97      * remove a mapping
98      *
99      * @param role redback role
100      */
101     void removeLdapMapping( String role )
102         throws MappingException;
103
104     /**
105      * @return Map of corresponding LDAP group (key) and Redback role (value)
106      */
107     Map<String, String> getLdapGroupMappings()
108         throws MappingException;
109
110     void setLdapGroupMappings( Map<String, String> mappings )
111         throws MappingException;
112
113     /**
114      * will save a ldap group corresponding to the mapping.
115      * <b>will do nothing in group already exists.</b>
116      *
117      * @param roleName
118      * @return <code>true</code> if role was added, <code>false</code> if role already exists
119      * @throws MappingException
120      */
121     boolean saveRole( String roleName )
122         throws MappingException;
123
124     /**
125      * associate role to user in ldap
126      *
127      * @param roleName
128      * @param username
129      * @return <code>true</code> if role was added to user, <code>false</code> if role already exists for the user
130      * @throws MappingException
131      */
132     boolean saveUserRole( String roleName, String username )
133         throws MappingException;
134
135     boolean removeUserRole( String roleName, String username )
136         throws MappingException;
137
138     void removeAllRoles()
139         throws MappingException;
140
141     void removeRole( String roleName )
142         throws MappingException;
143
144 }