Package jmri.jmrit.permission
Class DefaultPermissionManager
- java.lang.Object
-
- jmri.jmrit.permission.DefaultPermissionManager
-
- All Implemented Interfaces:
PermissionManager
public class DefaultPermissionManager extends java.lang.Object implements PermissionManager
Default permission manager.
-
-
Nested Class Summary
-
Nested classes/interfaces inherited from interface jmri.PermissionManager
PermissionManager.BadPasswordException, PermissionManager.BadUserOrPasswordException, PermissionManager.LoginListener, PermissionManager.RoleAlreadyExistsException, PermissionManager.RoleDoesNotExistException, PermissionManager.UserAlreadyExistsException, PermissionManager.UserDoesNotExistException
-
-
Constructor Summary
Constructors Constructor Description DefaultPermissionManager()DefaultPermissionManager(DefaultPermissionManager source)
-
Method Summary
All Methods Instance Methods Concrete Methods Modifier and Type Method Description voidaddLoginListener(PermissionManager.LoginListener listener)Add a login listener.RoleaddRole(java.lang.String name)Add a new role.UseraddUser(java.lang.String username, java.lang.String password)Add a new user.voidchangePassword(java.lang.String newPassword, java.lang.String oldPassword)Change an user's password.booleanensureAtLeastPermission(Permission permission, PermissionValue minValue)Checks if the current user has the permission.java.lang.StringgetCurrentUserName()Get the current username.java.util.Set<PermissionOwner>getOwners()java.util.Set<Permission>getPermissions(PermissionOwner owner)java.util.Collection<Role>getRoles()DefaultPermissionManagergetTemporaryInstance()Return a copy of this PermissionManager.java.util.Collection<DefaultUser>getUsers()booleanhasAtLeastPermission(Permission permission, PermissionValue minValue)Has the current user permission?booleanhasAtLeastRemotePermission(java.lang.String sessionId, Permission permission, PermissionValue minValue)Has the current user of this session permission?(package private) DefaultPermissionManagerinit()booleanisAGuestUser(java.lang.String username)Is the user 'username' the guest user?booleanisAGuestUser(User user)Is the user 'user' the guest user?booleanisAllowEmptyPasswords()Get if empty passwords is allowed.booleanisCurrentUser(java.lang.String username)Is the user username the current user?booleanisCurrentUser(User user)Is the user 'user' the current user?booleanisCurrentUserPermittedToChangePassword()Is the current user allowed to change his password?booleanisEnabled()Is the permission manager enabled?booleanisLoggedIn()Is an user logged in locally?booleanisRemotelyLoggedIn(java.lang.String sessionId)Is an user logged in locally?booleanlogin(java.lang.String username, java.lang.String password)Login locally to JMRI.voidlogout()Logout locally from JMRI.voidregisterOwner(PermissionOwner owner)Register a permission owner.voidregisterPermission(Permission permission)Register a permission.booleanremoteLogin(java.lang.StringBuilder sessionId, java.util.Locale locale, java.lang.String username, java.lang.String password)Login remotely to JMRI.voidremoteLogout(java.lang.String sessionId)Logout remotely from JMRI.voidremoveRole(java.lang.String name)Removes a role.voidremoveUser(java.lang.String username)Removes a role.voidsetAllowEmptyPasswords(boolean value)Set if empty passwords should be allowed.voidsetEnabled(boolean enabled)Set if the permission manager should be enabled or not.voidstorePermissionSettings()Store permission settings.
-
-
-
Constructor Detail
-
DefaultPermissionManager
DefaultPermissionManager()
-
DefaultPermissionManager
DefaultPermissionManager(DefaultPermissionManager source)
-
-
Method Detail
-
getTemporaryInstance
public DefaultPermissionManager getTemporaryInstance()
Return a copy of this PermissionManager.- Returns:
- the copy
-
init
DefaultPermissionManager init()
-
getUsers
public java.util.Collection<DefaultUser> getUsers()
-
getOwners
public java.util.Set<PermissionOwner> getOwners()
-
getPermissions
public java.util.Set<Permission> getPermissions(PermissionOwner owner)
-
storePermissionSettings
public void storePermissionSettings()
Description copied from interface:PermissionManagerStore permission settings.- Specified by:
storePermissionSettingsin interfacePermissionManager
-
addRole
public Role addRole(java.lang.String name) throws PermissionManager.RoleAlreadyExistsException
Description copied from interface:PermissionManagerAdd a new role.- Specified by:
addRolein interfacePermissionManager- Parameters:
name- the name of the role- Returns:
- the new role
- Throws:
PermissionManager.RoleAlreadyExistsException- if the role already exists
-
removeRole
public void removeRole(java.lang.String name) throws PermissionManager.RoleDoesNotExistException
Description copied from interface:PermissionManagerRemoves a role.- Specified by:
removeRolein interfacePermissionManager- Parameters:
name- the name of the role- Throws:
PermissionManager.RoleDoesNotExistException- if the role doesn't exist
-
addUser
public User addUser(java.lang.String username, java.lang.String password) throws PermissionManager.UserAlreadyExistsException
Description copied from interface:PermissionManagerAdd a new user.- Specified by:
addUserin interfacePermissionManager- Parameters:
username- the usernamepassword- the password- Returns:
- the new user
- Throws:
PermissionManager.UserAlreadyExistsException- if the username already exists
-
removeUser
public void removeUser(java.lang.String username) throws PermissionManager.UserDoesNotExistException
Description copied from interface:PermissionManagerRemoves a role.- Specified by:
removeUserin interfacePermissionManager- Parameters:
username- the username- Throws:
PermissionManager.UserDoesNotExistException- if the user doesn't exist
-
changePassword
public void changePassword(java.lang.String newPassword, java.lang.String oldPassword)
Description copied from interface:PermissionManagerChange an user's password.- Specified by:
changePasswordin interfacePermissionManager- Parameters:
newPassword- the new passwordoldPassword- the old password
-
login
public boolean login(java.lang.String username, java.lang.String password)
Description copied from interface:PermissionManagerLogin locally to JMRI.- Specified by:
loginin interfacePermissionManager- Parameters:
username- the usernamepassword- the password- Returns:
- true if login was successful, false otherwise
-
remoteLogin
public boolean remoteLogin(java.lang.StringBuilder sessionId, java.util.Locale locale, java.lang.String username, java.lang.String password)
Description copied from interface:PermissionManagerLogin remotely to JMRI. This is for the web server, WiThrottle server, and other remote connections.- Specified by:
remoteLoginin interfacePermissionManager- Parameters:
sessionId- the session ID. If empty string, a new session ID will be created.locale- the locale to be used for messages.username- the usernamepassword- the password- Returns:
- true if successful, false otherwise
-
logout
public void logout()
Description copied from interface:PermissionManagerLogout locally from JMRI.- Specified by:
logoutin interfacePermissionManager
-
remoteLogout
public void remoteLogout(java.lang.String sessionId)
Description copied from interface:PermissionManagerLogout remotely from JMRI. This is for the web server, WiThrottle server, and other remote connections.- Specified by:
remoteLogoutin interfacePermissionManager- Parameters:
sessionId- the session ID
-
isLoggedIn
public boolean isLoggedIn()
Description copied from interface:PermissionManagerIs an user logged in locally?- Specified by:
isLoggedInin interfacePermissionManager- Returns:
- true if any user except guest is logged in, false otherwise.
-
isRemotelyLoggedIn
public boolean isRemotelyLoggedIn(java.lang.String sessionId)
Description copied from interface:PermissionManagerIs an user logged in locally?- Specified by:
isRemotelyLoggedInin interfacePermissionManager- Parameters:
sessionId- the session ID- Returns:
- true if any user except guest is logged in to this session, false otherwise.
-
isCurrentUser
public boolean isCurrentUser(java.lang.String username)
Description copied from interface:PermissionManagerIs the user username the current user?- Specified by:
isCurrentUserin interfacePermissionManager- Parameters:
username- the username to check- Returns:
- true if the current user is username, false otherwise.
-
isCurrentUser
public boolean isCurrentUser(User user)
Description copied from interface:PermissionManagerIs the user 'user' the current user?- Specified by:
isCurrentUserin interfacePermissionManager- Parameters:
user- the user to check- Returns:
- true if the current user is 'user', false otherwise.
-
getCurrentUserName
public java.lang.String getCurrentUserName()
Description copied from interface:PermissionManagerGet the current username.- Specified by:
getCurrentUserNamein interfacePermissionManager- Returns:
- the username of the user that's currently logged in or null if no user is logged in.
-
isAGuestUser
public boolean isAGuestUser(java.lang.String username)
Description copied from interface:PermissionManagerIs the user 'username' the guest user?- Specified by:
isAGuestUserin interfacePermissionManager- Parameters:
username- the username to check- Returns:
- true if 'username' is the guest user
-
isAGuestUser
public boolean isAGuestUser(User user)
Description copied from interface:PermissionManagerIs the user 'user' the guest user?- Specified by:
isAGuestUserin interfacePermissionManager- Parameters:
user- the user to check- Returns:
- true if 'user' is the guest user
-
isCurrentUserPermittedToChangePassword
public boolean isCurrentUserPermittedToChangePassword()
Description copied from interface:PermissionManagerIs the current user allowed to change his password?- Specified by:
isCurrentUserPermittedToChangePasswordin interfacePermissionManager- Returns:
- true if a user has logged in and that user is permitted to change his password, false otherwise
-
addLoginListener
public void addLoginListener(PermissionManager.LoginListener listener)
Description copied from interface:PermissionManagerAdd a login listener.- Specified by:
addLoginListenerin interfacePermissionManager- Parameters:
listener- the listener
-
isEnabled
public boolean isEnabled()
Description copied from interface:PermissionManagerIs the permission manager enabled?- Specified by:
isEnabledin interfacePermissionManager- Returns:
- true if it's enabled, false otherwise.
-
setEnabled
public void setEnabled(boolean enabled)
Description copied from interface:PermissionManagerSet if the permission manager should be enabled or not.- Specified by:
setEnabledin interfacePermissionManager- Parameters:
enabled- true if it should be enabled, false otherwise.
-
isAllowEmptyPasswords
public boolean isAllowEmptyPasswords()
Description copied from interface:PermissionManagerGet if empty passwords is allowed.- Specified by:
isAllowEmptyPasswordsin interfacePermissionManager- Returns:
- true if empty passwords is allowed, false otherwise.
-
setAllowEmptyPasswords
public void setAllowEmptyPasswords(boolean value)
Description copied from interface:PermissionManagerSet if empty passwords should be allowed.- Specified by:
setAllowEmptyPasswordsin interfacePermissionManager- Parameters:
value- true if empty passwords should be allowed, false otherwise.
-
hasAtLeastPermission
public boolean hasAtLeastPermission(Permission permission, PermissionValue minValue)
Description copied from interface:PermissionManagerHas the current user permission?- Specified by:
hasAtLeastPermissionin interfacePermissionManager- Parameters:
permission- the permission to checkminValue- the minimum value- Returns:
- true if the user has the permission, false otherwise
-
hasAtLeastRemotePermission
public boolean hasAtLeastRemotePermission(java.lang.String sessionId, Permission permission, PermissionValue minValue)
Description copied from interface:PermissionManagerHas the current user of this session permission?- Specified by:
hasAtLeastRemotePermissionin interfacePermissionManager- Parameters:
sessionId- the session IDpermission- the permission to checkminValue- the minimum value- Returns:
- true if the user has the permission, false otherwise
-
ensureAtLeastPermission
public boolean ensureAtLeastPermission(Permission permission, PermissionValue minValue)
Description copied from interface:PermissionManagerChecks if the current user has the permission. If not, show a message dialog if not headless. Otherwise log a message.- Specified by:
ensureAtLeastPermissionin interfacePermissionManager- Parameters:
permission- the permission to checkminValue- the minimum value- Returns:
- true if the user has the permission, false otherwise
-
registerOwner
public void registerOwner(PermissionOwner owner)
Description copied from interface:PermissionManagerRegister a permission owner.- Specified by:
registerOwnerin interfacePermissionManager- Parameters:
owner- the owner
-
registerPermission
public void registerPermission(Permission permission)
Description copied from interface:PermissionManagerRegister a permission.- Specified by:
registerPermissionin interfacePermissionManager- Parameters:
permission- the permission
-
-