]> git.argeo.org Git - lgpl/argeo-commons.git/blobdiff - security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/UserAdminService.java
Improve Security
[lgpl/argeo-commons.git] / security / runtime / org.argeo.security.core / src / main / java / org / argeo / security / UserAdminService.java
diff --git a/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/UserAdminService.java b/security/runtime/org.argeo.security.core/src/main/java/org/argeo/security/UserAdminService.java
new file mode 100644 (file)
index 0000000..47ea65e
--- /dev/null
@@ -0,0 +1,39 @@
+package org.argeo.security;
+
+import java.util.Set;
+
+public interface UserAdminService {
+       /*
+        * USERS
+        */
+       public void newUser(ArgeoUser argeoUser);
+
+       public ArgeoUser getUser(String username);
+
+       public Set<ArgeoUser> listUsers();
+
+       public Boolean userExists(String username);
+
+       public void updateUser(ArgeoUser user);
+
+       public void updateUserPassword(String username, String password);
+
+       /** List users having this role (except the super user). */
+       public Set<ArgeoUser> listUsersInRole(String role);
+
+       public void deleteUser(String username);
+
+       /*
+        * ROLES
+        */
+       public void newRole(String role);
+
+       public Set<String> listEditableRoles();
+
+       public void deleteRole(String role);
+
+       /*
+        * SYSTEM
+        */
+       public Runnable wrapWithSystemAuthentication(final Runnable runnable);
+}