Package jmri

Interface PermissionManager

All Known Implementing Classes:
DefaultPermissionManager

public interface PermissionManager
A manager for permissions.
  • Method Details

    • addRole

      Add a new role.
      Parameters:
      name - the name of the role
      Returns:
      the new role
      Throws:
      PermissionManager.RoleAlreadyExistsException - if the role already exists
    • removeRole

      Removes a role.
      Parameters:
      name - the name of the role
      Throws:
      PermissionManager.RoleDoesNotExistException - if the role doesn't exist
    • addUser

      Add a new user.
      Parameters:
      username - the username
      password - the password
      Returns:
      the new user
      Throws:
      PermissionManager.UserAlreadyExistsException - if the username already exists
    • removeUser

      Removes a role.
      Parameters:
      username - the username
      Throws:
      PermissionManager.UserDoesNotExistException - if the user doesn't exist
    • changePassword

      void changePassword(String newPassword, String oldPassword)
      Change an user's password.
      Parameters:
      newPassword - the new password
      oldPassword - the old password
    • login

      boolean login(String username, String password)
      Login locally to JMRI.
      Parameters:
      username - the username
      password - the password
      Returns:
      true if login was successful, false otherwise
    • remoteLogin

      boolean remoteLogin(StringBuilder sessionId, Locale locale, String username, String password)
      Login remotely to JMRI. This is for the web server, WiThrottle server, and other remote connections.
      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 username
      password - the password
      Returns:
      true if successful, false otherwise
    • logout

      void logout()
      Logout locally from JMRI.
    • remoteLogout

      void remoteLogout(String sessionId)
      Logout remotely from JMRI. This is for the web server, WiThrottle server, and other remote connections.
      Parameters:
      sessionId - the session ID
    • isLoggedIn

      boolean isLoggedIn()
      Is an user logged in locally?
      Returns:
      true if any user except guest is logged in, false otherwise.
    • isRemotelyLoggedIn

      boolean isRemotelyLoggedIn(String sessionId)
      Is an user logged in locally?
      Parameters:
      sessionId - the session ID
      Returns:
      true if any user except guest is logged in to this session, false otherwise.
    • isCurrentUser

      boolean isCurrentUser(String username)
      Is the user username the current user?
      Parameters:
      username - the username to check
      Returns:
      true if the current user is username, false otherwise.
    • isCurrentUser

      boolean isCurrentUser(User user)
      Is the user 'user' the current user?
      Parameters:
      user - the user to check
      Returns:
      true if the current user is 'user', false otherwise.
    • getCurrentUserName

      Get the current username.
      Returns:
      the username of the user that's currently logged in or null if no user is logged in.
    • isCurrentUserPermittedToChangePassword

      Is the current user allowed to change his password?
      Returns:
      true if a user has logged in and that user is permitted to change his password, false otherwise
    • isAGuestUser

      boolean isAGuestUser(String username)
      Is the user 'username' the guest user?
      Parameters:
      username - the username to check
      Returns:
      true if 'username' is the guest user
    • isAGuestUser

      boolean isAGuestUser(User user)
      Is the user 'user' the guest user?
      Parameters:
      user - the user to check
      Returns:
      true if 'user' is the guest user
    • addLoginListener

      Add a login listener.
      Parameters:
      listener - the listener
    • isEnabled

      boolean isEnabled()
      Is the permission manager enabled?
      Returns:
      true if it's enabled, false otherwise.
    • setEnabled

      void setEnabled(boolean enabled)
      Set if the permission manager should be enabled or not.
      Parameters:
      enabled - true if it should be enabled, false otherwise.
    • isAllowEmptyPasswords

      Get if empty passwords is allowed.
      Returns:
      true if empty passwords is allowed, false otherwise.
    • setAllowEmptyPasswords

      void setAllowEmptyPasswords(boolean value)
      Set if empty passwords should be allowed.
      Parameters:
      value - true if empty passwords should be allowed, false otherwise.
    • hasAtLeastPermission

      boolean hasAtLeastPermission(Permission permission, PermissionValue minValue)
      Has the current user permission?
      Parameters:
      permission - the permission to check
      minValue - the minimum value
      Returns:
      true if the user has the permission, false otherwise
    • hasAtLeastRemotePermission

      boolean hasAtLeastRemotePermission(String sessionId, Permission permission, PermissionValue minValue)
      Has the current user of this session permission?
      Parameters:
      sessionId - the session ID
      permission - the permission to check
      minValue - the minimum value
      Returns:
      true if the user has the permission, false otherwise
    • ensureAtLeastPermission

      boolean ensureAtLeastPermission(Permission permission, PermissionValue minValue)
      Checks if the current user has the permission. If not, show a message dialog if not headless. Otherwise log a message.
      Parameters:
      permission - the permission to check
      minValue - the minimum value
      Returns:
      true if the user has the permission, false otherwise
    • registerOwner

      Register a permission owner.
      Parameters:
      owner - the owner
    • registerPermission

      void registerPermission(Permission permission)
      Register a permission.
      Parameters:
      permission - the permission
    • storePermissionSettings

      Store permission settings.