]> source.dussan.org Git - archiva.git/blob
d8fac1c62f46e3a380a3b082c677e5be73ffb9ff
[archiva.git] /
1 package org.apache.archiva.redback.rbac;
2
3 /*
4  * Copyright 2001-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.util.StringUtils;
20
21 /**
22  * RBACObjectAssertions 
23  *
24  * @author <a href="mailto:joakim@erdfelt.com">Joakim Erdfelt</a>
25  * @version $Id$
26  */
27 public class RBACObjectAssertions
28 {
29     public static void assertValid( Role role )
30         throws RbacObjectInvalidException
31     {
32         assertValid( null, role );
33     }
34
35     public static void assertValid( String scope, Role role )
36         throws RbacObjectInvalidException
37     {
38         if ( role == null )
39         {
40             throw new RbacObjectInvalidException( scope, "Null Role object is invalid." );
41         }
42
43         if ( StringUtils.isEmpty( role.getName() ) )
44         {
45             throw new RbacObjectInvalidException( scope, "Role.name must not be empty." );
46         }
47
48         if ( role.getPermissions() != null )
49         {
50             int i = 0;
51             for ( Permission perm : role.getPermissions() )
52             {
53                 assertValid( "Role.permissions[" + i + "]", perm );
54                 i++;
55             }
56         }
57     }
58
59     public static void assertValid( Permission permission )
60         throws RbacObjectInvalidException
61     {
62         assertValid( null, permission );
63     }
64
65     public static void assertValid( String scope, Permission permission )
66         throws RbacObjectInvalidException
67     {
68         if ( permission == null )
69         {
70             throw new RbacObjectInvalidException( scope, "Null Permission object is invalid." );
71         }
72
73         if ( StringUtils.isEmpty( permission.getName() ) )
74         {
75             throw new RbacObjectInvalidException( scope, "Permission.name must not be empty." );
76         }
77
78         assertValid( "Permission.operation", permission.getOperation() );
79         assertValid( "Permission.resource", permission.getResource() );
80
81     }
82
83     public static void assertValid( Operation operation )
84         throws RbacObjectInvalidException
85     {
86         assertValid( null, operation );
87     }
88
89     public static void assertValid( String scope, Operation operation )
90         throws RbacObjectInvalidException
91     {
92         if ( operation == null )
93         {
94             throw new RbacObjectInvalidException( scope, "Null Operation object is invalid." );
95         }
96
97         if ( StringUtils.isEmpty( operation.getName() ) )
98         {
99             throw new RbacObjectInvalidException( scope, "Operation.name must not be empty." );
100         }
101     }
102
103     public static void assertValid( Resource resource )
104         throws RbacObjectInvalidException
105     {
106         assertValid( null, resource );
107     }
108
109     public static void assertValid( String scope, Resource resource )
110         throws RbacObjectInvalidException
111     {
112         if ( resource == null )
113         {
114             throw new RbacObjectInvalidException( scope, "Null Resource object is invalid." );
115         }
116
117         if ( StringUtils.isEmpty( resource.getIdentifier() ) )
118         {
119             throw new RbacObjectInvalidException( scope, "Resource.identifier must not be empty." );
120         }
121     }
122
123     public static void assertValid( UserAssignment assignment )
124         throws RbacObjectInvalidException
125     {
126         assertValid( null, assignment );
127     }
128
129     public static void assertValid( String scope, UserAssignment assignment )
130         throws RbacObjectInvalidException
131     {
132         if ( assignment == null )
133         {
134             throw new RbacObjectInvalidException( scope, "Null UserAssigment object is invalid." );
135         }
136
137         if ( StringUtils.isEmpty( assignment.getPrincipal() ) )
138         {
139             throw new RbacObjectInvalidException( scope, "UserAssigment.principal cannot be empty." );
140         }
141
142         if ( assignment.getRoleNames() == null )
143         {
144             throw new RbacObjectInvalidException( scope, "UserAssignment.roles cannot be null." );
145         }
146
147         /*  I don't believe this assertion is valid, a person should be able to be stripped of all roles.
148            -- jesse
149         if ( assignment.getRoleNames().isEmpty() )
150         {
151             throw new RbacObjectInvalidException( scope, "UserAssignment.roles cannot be empty." );
152         }
153           */
154         int i = 0;
155         for ( String name : assignment.getRoleNames() )
156         {
157             if ( StringUtils.isEmpty( name ) )
158             {
159                 throw new RbacObjectInvalidException( scope, "UserAssignment.rolename[" + i + "] cannot be empty." );
160             }
161             i++;
162         }
163     }
164
165 }