]> source.dussan.org Git - archiva.git/commitdiff
override to check faster existence of a role
authorOlivier Lamy <olamy@apache.org>
Fri, 18 Jan 2013 18:24:19 +0000 (18:24 +0000)
committerOlivier Lamy <olamy@apache.org>
Fri, 18 Jan 2013 18:24:19 +0000 (18:24 +0000)
git-svn-id: https://svn.apache.org/repos/asf/archiva/trunk@1435285 13f79535-47bb-0310-9956-ffa450edef68

archiva-modules/archiva-web/archiva-web-common/src/main/java/org/apache/archiva/web/security/ArchivaRbacManager.java

index ec2780bafcfbcec09e99db4944f81b3642377b6f..ff6b11bf6f202911c8f7092686bd8707e9b9922e 100644 (file)
@@ -44,7 +44,7 @@ import java.util.Map;
  * @author Olivier Lamy
  * @since 1.4-M4
  */
-@Service( "rbacManager#archiva" )
+@Service("rbacManager#archiva")
 public class ArchivaRbacManager
     extends AbstractRBACManager
     implements RBACManager
@@ -290,6 +290,29 @@ public class ArchivaRbacManager
         getRbacManagerForCommon().removeUserAssignment( userAssignment );
     }
 
+    @Override
+    public boolean roleExists( String name )
+        throws RbacManagerException
+    {
+        boolean exists = false;
+        for ( RBACManager manager : rbacManagersPerId.values() )
+        {
+            exists = manager.roleExists( name );
+            if ( exists )
+            {
+                return true;
+            }
+        }
+        return exists;
+    }
+
+    @Override
+    public boolean roleExists( Role role )
+        throws RbacManagerException
+    {
+        return roleExists( role.getName() );
+    }
+
     public void eraseDatabase()
     {
         log.warn( "eraseDatabase not implemented" );