Enable multiple roles per user (backend)
[controller.git] / opendaylight / usermanager / src / main / java / org / opendaylight / controller / usermanager / internal / AuthorizationConfig.java
index 3eafe2b75b1a9b8991ff0bd5b5286b629e120d38..038ccca2fcf6f998273056e2717719900f7c7731 100644 (file)
@@ -8,36 +8,40 @@
 
 package org.opendaylight.controller.usermanager.internal;
 
+import java.util.ArrayList;
+import java.util.List;
+
+import org.opendaylight.controller.sal.utils.Status;
 
 /**
  * Configuration Java Object which represents a Local configured Authorization
  * for a remote authenticated user for User Manager.
  */
 public class AuthorizationConfig extends UserConfig {
-       private static final long serialVersionUID = 1L;
-
-       public AuthorizationConfig() {
-               super();
-       }
-
-       // Constructor may be needed for autocontainer logic
-       public AuthorizationConfig(String user, String role) {
-               super();
-               this.user = user;
-               this.role = role;
-       }
-
-       @Override
-       public boolean isValid() {
-               return (user != null && !user.isEmpty() && role != null && !role
-                               .isEmpty());
-       }
-
-       public String getRolesData() {
-               return (role.replace(",", " "));
-       }
-
-       public String toString() {
-               return "AuthorizationConfig=[user: " + user + ", role: " + role + "]";
-       }
+    private static final long serialVersionUID = 1L;
+
+    public AuthorizationConfig() {
+        super();
+    }
+
+    // Constructor may be needed for autocontainer logic
+    public AuthorizationConfig(String user, List<String> roles) {
+        super();
+        this.user = user;
+        this.roles = (roles == null) ? new ArrayList<String>()
+                : new ArrayList<String>(roles);
+    }
+
+    @Override
+    public Status validate() {
+        Status status = validateUsername();
+        if (status.isSuccess()) {
+            status = validateRoles();
+        }
+        return status;
+    }
+
+    public String toString() {
+        return "AuthorizationConfig=[user: " + user + ", roles: " + roles + "]";
+    }
 }