]> source.dussan.org Git - archiva.git/blob
6470f26d3cd6c8f78c31bf60bb47d54fc2d50a05
[archiva.git] /
1 package org.apache.maven.archiva.security;
2
3 /*
4  * Copyright 2005-2006 The Apache Software Foundation.
5  *
6  * Licensed under the Apache License, Version 2.0 (the "License");
7  * you may not use this file except in compliance with the License.
8  * You may obtain a copy of the License at
9  *
10  *      http://www.apache.org/licenses/LICENSE-2.0
11  *
12  * Unless required by applicable law or agreed to in writing, software
13  * distributed under the License is distributed on an "AS IS" BASIS,
14  * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
15  * See the License for the specific language governing permissions and
16  * limitations under the License.
17  */
18
19 import org.codehaus.plexus.rbac.profile.AbstractRoleProfile;
20
21 import java.util.ArrayList;
22 import java.util.List;
23
24 /**
25  * @todo why does this need to be created in the client app?
26  * @todo composition instead of inheritence?
27  * @plexus.component role="org.codehaus.plexus.rbac.profile.RoleProfile" role-hint="archiva-system-administrator"
28  */
29 public class ArchivaSystemAdministratorRoleProfile
30     extends AbstractRoleProfile
31 {
32     public String getRoleName()
33     {
34         return ArchivaRoleConstants.SYSTEM_ADMINISTRATOR_ROLE;
35     }
36
37     public List getOperations()
38     {
39         List operations = new ArrayList();
40         operations.add( ArchivaRoleConstants.OPERATION_MANAGE_CONFIGURATION );
41         operations.add( ArchivaRoleConstants.OPERATION_MANAGE_USERS );
42         operations.add( ArchivaRoleConstants.OPERATION_RUN_INDEXER );
43         operations.add( ArchivaRoleConstants.OPERATION_REGENERATE_INDEX );
44         operations.add( ArchivaRoleConstants.OPERATION_ACCESS_REPORT ); // TODO: does this need to be templated?
45         operations.add( ArchivaRoleConstants.OPERATION_ADD_REPOSITORY );
46         operations.add( ArchivaRoleConstants.OPERATION_EDIT_REPOSITORY );
47         operations.add( ArchivaRoleConstants.OPERATION_DELETE_REPOSITORY );
48         // we don't add access/upload repository operations. This isn't a sys-admin function, and we don't want to
49         // encourage the use of the sys admin role for such operations. They can grant it as necessary.
50         return operations;
51     }
52
53     public boolean isAssignable()
54     {
55         return false;
56     }
57 }