code: @Nonnull
    public ELoginResult loginUser (@Nullable final String sLoginName,
                                   @Nullable final String sPlainTextPassword,
                                   @Nullable final Iterable <String> aRequiredRoleIDs)
    {
      // Try to resolve the user
      final IUser aUser = PhotonSecurityManager.getUserMgr ().getUserOfLoginName (sLoginName);
      if (aUser == null)
      {
        AuditHelper.onAuditExecuteFailure ("login", sLoginName, "no-such-loginname");
        return ELoginResult.USER_NOT_EXISTING;
      }
      return loginUser (aUser, sPlainTextPassword, aRequiredRoleIDs);
    }
docs: Login the passed user and require a set of certain roles, the used needs to
  have to login here.
  
  @param sLoginName
  Login name of the user to log-in. May be <code>null</code>.
  @param sPlainTextPassword
  Plain text password to use. May be <code>null</code>.
  @param aRequiredRoleIDs
  A set of required role IDs, the user needs to have. May be
  <code>null</code>.
  @return Never <code>null</code> login status.