%PDF- %PDF-
Direktori : /www/loslex_o/tracker/core/classes/ |
Current File : /www/loslex_o/tracker/core/classes/AuthFlags.class.php |
<?php # MantisBT - A PHP based bugtracking system # MantisBT is free software: you can redistribute it and/or modify # it under the terms of the GNU General Public License as published by # the Free Software Foundation, either version 2 of the License, or # (at your option) any later version. # # MantisBT is distributed in the hope that it will be useful, # but WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the # GNU General Public License for more details. # # You should have received a copy of the GNU General Public License # along with MantisBT. If not, see <http://www.gnu.org/licenses/>. /** * Avatar class. * @copyright Copyright 2014 MantisBT Team - mantisbt-dev@lists.sourceforge.net * @link http://www.mantisbt.org * @package MantisBT */ /** * Auth Flags class * * @package MantisBT * @subpackage classes */ require_api( 'access_api.php' ); require_api( 'plugin_api.php' ); require_api( 'user_api.php' ); /** * A class that that contains authentication flags. */ class AuthFlags { /** * Indicates whether user can use the native login via passwords in MantisBT database. * @var bool|null */ private $can_use_native_login = null; /** * The message to display indicating that passwords are not managed by MantisBT native passwords. * @var string|null */ private $password_managed_elsewhere_message = null; /** * The login page to use instead of the standard MantisBT login page. This can be * a plugin page. * * @see $credentials_page * @see $logout_page * @var string|null */ private $login_page = null; /** * The page to use for providing credentials. This can be the default password page * provided by MantisBT, an auth plugin provided page that asks for credentials or * an auth plugin provided page that re-directs to an IDP. * * @see $login_page * @see $logout_page * @var string|null */ private $credentials_page = null; /** * The logout page to use instead of the standard MantisBT logout page. This can be * a plugin page. * * @see $credentials_page * @see $login_page * @see $logout_redirect_page * @var string|null */ private $logout_page = null; /** * The page to redirect to after successful logout. This can be a plugin page. Such * page can display content directly to redirect to a MantisBT page to a remote page. * * @see $logout_page * @var string|null */ private $logout_redirect_page = null; /** * The login session lifetime in seconds or 0 for browser session. * @var int|null */ private $session_lifetime = null; /** * Indicates whether 'remember me' option is allowed. * @see $perm_session_lifetime * @var bool|null */ private $perm_session_enabled = null; /** * Indicates the lifetime for 'remember me' sessions. MantisBT default is 1 year. * @see $perm_session_enabled * @var int|null */ private $perm_session_lifetime = null; /** * Indicates if re-authentication for operations like administrative functions and updating * user profile is enabled. * @see $reauthentication_expiry; * @var bool|null */ private $reauthentication_enabled = null; /** * Indicates the expiry time in seconds after which the user should be asked to reauthenticate * for administrative functions and updating user profile. * @see $reauthentication_enabled * @var int|null */ private $reauthentication_expiry = null; /** * AuthFlags constructor. */ function __construct() { } /** * Sets the message to display to user when they can't manage their password within MantisBT. * * @param string|null $p_message The message to display to user or null for default message. * @return void * @see getPasswordManagedExternallyMessage() */ function setPasswordManagedExternallyMessage( $p_message ) { $this->password_managed_elsewhere_message = $p_message; } /** * Gets the message to display to the user when they can't manage their password within MantisBT. * * @return string The message. * @see setPasswordManagedExternallyMessage() */ function getPasswordManagedExternallyMessage() { if( empty( $this->password_managed_elsewhere_message ) ) { return lang_get( 'no_password_change' ); } return $this->password_managed_elsewhere_message; } /** * Indicates whether user can use native MantisBT auth providers or not. * * @param bool $p_enabled true: can user standard login, false: otherwise. * @return void * @see getCanUseStandardLogin() */ function setCanUseStandardLogin( $p_enabled ) { $this->can_use_native_login = $p_enabled; } /** * Gets whether user can use standard MantisBT password providers. * * @return bool true: can use standard MantisBT login, false: otherwise. * @see setCanUseStandardLogin() */ function getCanUseStandardLogin() { return is_null( $this->can_use_native_login ) ? true : $this->can_use_native_login; } /** * Sets login page to use instead of the default login page that asks for username or * email address. * * @param string $p_page The relative url of the page name. * @return void * @see getLoginPage() */ function setLoginPage( $p_page ) { $this->login_page = $p_page; } /** * Gets the login page to use. * * @return string The relative login page name. * @see setLoginPage() */ function getLoginPage() { return is_null( $this->login_page ) ? AUTH_PAGE_USERNAME : $this->login_page; } /** * Sets the page to ask for user credentials. By default MantisBT would ask for * password on this page and options like remember me, etc. * * @param string $p_page The relative page name. * @return void * @see getCredentialsPage() */ function setCredentialsPage( $p_page ) { $this->credentials_page = $p_page; } /** * Gets the page to use to ask for user credentials. This should be a page that is * provided by MantisBT core or one of the plugins. Such page can redirect as needed. * * @param string $p_query_string The query string or empty. * @return string The relative url for the credential page. * @see setCredentialsPage() */ function getCredentialsPage( $p_query_string ) { $t_page = is_null( $this->credentials_page ) ? AUTH_PAGE_CREDENTIAL : $this->credentials_page; return helper_url_combine( $t_page, $p_query_string ); } /** * Sets the relative page of the logout page to use. Such page can be provided by MantisBT core * or a plugin, it can redirect as needed. * * @param string $p_page The page relative url. * @return void * @see getLogoutPage() */ function setLogoutPage( $p_page ) { $this->logout_page = $p_page; } /** * Gets the relative url of the logout page provided by MantisBT core or a plugin. * * @return string The relative url of the logout page. * @see setLogoutPage() */ function getLogoutPage() { return is_null( $this->logout_page ) ? 'logout_page.php' : $this->logout_page; } /** * Sets the relative logout redirect page, this is used by the native MantisBT logout * page. The page must be provided by MantisBT plugin, but it can redirect as necessary. * * @param string $p_page The relative page url. * @return void * @see getLogoutRedirectPage() */ function setLogoutRedirectPage( $p_page ) { $this->logout_redirect_page = $p_page; } /** * Gets the relative logout redirect page that the native MantisBT logout page would * redirect to. It must be a page that is provided by MantisBT core or a plugin. * * @return string The relative redirect url. * @see setLogoutRedirectPage() */ function getLogoutRedirectPage() { if( is_null( $this->logout_redirect_page ) ) { return config_get_global( 'logout_redirect_page' ); } return $this->logout_redirect_page; } /** * Sets the lifetime of a default login session. * * @param int $p_seconds The lifetime of the session in seconds or 0 for browser session. * @return void * @see getSessionLifetime() */ function setSessionLifetime( $p_seconds ) { $this->session_lifetime = $p_seconds; } /** * Gets the login session lifetime. * * @return int The lifetime of the session in seconds or 0 for browser session. * @see setSessionLifetime() */ function getSessionLifetime() { if( is_null( $this->session_lifetime ) ) { return 0; } return $this->session_lifetime; } /** * Sets whether the user can select the remember me option. * * @param bool $p_enabled true: enabled, false: otherwise. * @return void * @see getPermSessionEnabled() */ function setPermSessionEnabled( $p_enabled ) { $this->perm_session_enabled = $p_enabled; } /** * Checks whether user can use remember me option. * * @return bool true: enabled, false: otherwise. * @see setPermSessionEnabled() */ function getPermSessionEnabled() { if( is_null( $this->perm_session_enabled ) ) { return config_get_global( 'allow_permanent_cookie' ) != OFF; } return $this->perm_session_enabled; } /** * Sets the remember me session lifetime. * * @param int $p_seconds The lifetime of remember me session in seconds or 0 for browser session. * @return void * @see getPermSessionLifetime() */ function setPermSessionLifetime( $p_seconds ) { $this->perm_session_lifetime = $p_seconds; } /** * Gets the remember me session lifetime. * * @return int The session lifetime in seconds or 0 for a browser session. * @see setPermSessionLifetime() */ function getPermSessionLifetime() { if( is_null( $this->perm_session_lifetime ) ) { return config_get_global( 'cookie_time_length' ); } return $this->perm_session_lifetime; } /** * Indicates whether user will be prompted for re-authentication after a timeout. * * @param bool $p_enabled true: enabled, false otherwise. * @return void * @see getReauthenticationEnabled() */ function setReauthenticationEnabled( $p_enabled ) { $this->reauthentication_enabled = $p_enabled; } /** * Gets whether user will be prompted for re-authentication after a timeout. * * @return bool true: enabled, false otherwise. * @see setReauthenticationEnabled() */ function getReauthenticationEnabled() { if( is_null( $this->reauthentication_enabled ) ) { return config_get( 'reauthentication' ); } return $this->reauthentication_enabled; } /** * Sets the number of seconds to re-authenticate the user after. * * @param int $p_seconds The number of seconds to prompt for re-authentication after. * @return void * @see getReauthenticationEnabled() */ function setReauthenticationLifetime( $p_seconds ) { $this->reauthentication_expiry = $p_seconds; } /** * Gets the number of seconds to re-authenticate the user after. * * @return int seconds after which the user should be re-authenticated. * @see setReauthenticationLifetime() */ function getReauthenticationLifetime() { if( is_null( $this->reauthentication_expiry ) ) { return config_get( 'reauthentication_expiry' ); } return $this->reauthentication_expiry; } }