*/
package org.wamblee.security.authentication;
-import java.util.Set;
+import java.util.List;
/**
* Interface for user administration. Manages the users and groups.
* Username.
* @param aPassword
* Password.
- * @param aGroup
- * Group.
*
* @return User.
*
* @throws UserMgtException
* In case there is a conflict with an existing user.
*/
- User createUser(String aUser, String aPassword, Group aGroup)
- throws UserMgtException;
+ void createUser(String aUser, String aPassword);
/**
* Creates a new group.
* @throws UserMgtException
* In case there is a conflict with an existing group.
*/
- Group createGroup(String aName) throws UserMgtException;
-
+ void createGroup(String aName);
+
+ /**
+ * Checks if a user exists.
+ * @param aUser User to check.
+ * @return True iff user exists.
+ */
+ boolean checkUser(String aUser);
+
+
/**
+ * Check if a group exists.
+ * @param aGroup Group.
+ * @return True iff group exists.
+ */
+ boolean checkGroup(String aGroup);
+
+ /**
+ * Checks the password.
*
- * @return Number of users.
+ * @param aUser
+ * User to check password for.
+ * @param aPassword
+ * Password to check.
+ * @throws UserMgtException In case user does not exist.
+ * @return True iff password is ok.
*/
- int getUserCount();
+ boolean checkPassword(String aUser, String aPassword);
/**
+ * Changes the password.
*
- * @return Number of groups.
+ * @param aUser
+ * User.
+ * @param aOldPassword
+ * Old password.
+ * @param aNewPassword
+ * New password.
+ *
+ * @throws UserMgtException Inc ase the user does not exist.
+ * @return True if the password was changed.
*/
- int getGroupCount();
+ boolean changePassword(String aUser, String aOldPassword, String aNewPassword);
/**
- * Must be called when the user is modified.
*
* @param aUser
* User.
- * @return The modified user. The user passed in to this call should be considered invalid.
+ * @param aPassword
+ * The password to set.
+ *
+ * @throws UserMgtException Inc ase the user does not exist.
*/
- void userModified(User aUser);
+ void setPassword(String aUser, String aPassword);
/**
- * Must be called when the group is modified.
- *
- * @param aGroup
- * Group.
+ * Checks if the user belongs to the given group.
+ * @param aUser User
+ * @param aGroup Group.
+ * @return True iff user is in group
+ * @throws UserMgtException In case the user or group do not exist.
*/
- void groupModified(Group aGroup);
+ boolean isInGroup(String aUser, String aGroup);
/**
- * Gets the user for a given name.
- *
- * @param aName
- * User name.
*
- * @return User or null if not found.
+ * @return Number of users.
*/
- User getUser(String aName);
+ int getUserCount();
/**
- * Gets the group for a given group name.
- *
- * @param aName
- * Group name.
*
- * @return Group or null if not found.
+ * @return Number of groups.
*/
- Group getGroup(String aName);
+ int getGroupCount();
/**
* Get the users.
*
* @return All known users.
*/
- Set<User> getUsers();
+ List<String> getUsers();
/**
* Gets the users for a given group.
* Group.
* @return Set of users (always non-null).
*/
- Set<User> getUsers(Group aGroup);
+ List<String> getUsers(String aGroup);
/**
- * Gets all known groups.
+ * Gets all groups.
*
* @return Groups.
*/
- Set<Group> getGroups();
+ List<String> getGroups();
+ /**
+ * Gets all groups for a given user.
+ *
+ * @param aUser user.
+ * @return Groups.
+ */
+ List<String> getGroups(String aUser);
+
/**
* Renames a user.
*
- * @param aUser
- * User object for which user name must be changed.
+ * @param aOldUserName
+ * Current user name.
* @param aUserName
* New user name.
*
* In case the user is not known or the new user name is already
* in use by another user.
*/
- void renameUser(User aUser, String aUserName) throws UserMgtException;
+ void renameUser(String aOldUserName, String aUserName);
/**
* Renames a group.
* In case the new group name is already used by another group
* of if the existing group is unknown.
*/
- void renameGroup(Group aGroup, String aGroupName) throws UserMgtException;
+ void renameGroup(String aOldGroup, String aGroupName);
/**
* Removes the user.
* @throws UserMgtException
* In case the user does not exist.
*/
- void removeUser(User aUser) throws UserMgtException;
+ void removeUser(String aUser);
/**
* Removes the group.
* @throws UserMgtException
* In case there are still users that are in the given group.
*/
- void removeGroup(Group aGroup) throws UserMgtException;
+ void removeGroup(String aGroup);
/**
* Adds a user to a group.
* In case the user or group or not known or if the user is
* already part of the group.
*/
- void addUserToGroup(User aUser, Group aGroup) throws UserMgtException;
+ void addUserToGroup(String aUser, String aGroup);
/**
* Removes a user from a group.
* In case the user or group are unknown or if the user is not
* part of the group.
*/
- void removeUserFromGroup(User aUser, Group aGroup) throws UserMgtException;
+ void removeUserFromGroup(String aUser, String aGroup);
}