Files
IPB/applications/core/data/defaults/extensions/LoginHandler.txt
T
2025-12-19 16:27:35 -08:00

151 lines
3.4 KiB
Plaintext

<?php
/**
* @brief Account Settings Extension
* @author <a href='https://www.invisioncommunity.com'>Invision Power Services, Inc.</a>
* @copyright (c) Invision Power Services, Inc.
* @license https://www.invisioncommunity.com/legal/standards/
{subpackage}
* @since {date}
*/
namespace IPS\{app}\extensions\core\LoginHandler;
use IPS\Login;
use IPS\Login\Exception;
use IPS\Login\Handler;
use IPS\Login\Handler\ButtonHandler;
use IPS\Login\Handler\UsernamePasswordHandler;
use IPS\Member as MemberClass;
use function defined;
/* To prevent PHP errors (extending class does not exist) revealing path */
if ( !defined( '\IPS\SUITE_UNIQUE_KEY' ) )
{
header( ( $_SERVER['SERVER_PROTOCOL'] ?? 'HTTP/1.0' ) . ' 403 Forbidden' );
exit;
}
/**
* AccountSettings Extension
*/
class {class} extends Handler
{
// @todo Uncomment one or both of the following
//use UsernamePasswordHandler; // Uncomment this to implement a username/password handler
//use ButtonHandler; // Uncomment this to implement a button handler
/**
* Get type
*
* @return int
*/
public function type(): int
{
return Login::TYPE_USERNAME_PASSWORD; // Login::TYPE_BUTTON;
}
/**
* Get title
*
* @return string
*/
public static function getTitle(): string
{
return '';
}
/**
* ACP Settings Form
*
* @return array List of settings to save - settings will be stored to core_login_methods.login_settings DB field
* @code
return array( 'savekey' => new \IPS\Helpers\Form\[Type]( ... ), ... );
* @endcode
*/
public function acpForm(): array
{
return array();
}
/**
* Save Handler Settings
*
* @param array $values Values from form
* @return array
*/
public function acpFormSave( array &$values ): array
{
return parent::acpFormSave( $values );
}
/* !UsernamePassword Authentication */
/**
* Authenticate
*
* @param Login $login The login object
* @param string $usernameOrEmail The username or email address provided by the user
* @param object $password The plaintext password provided by the user, wrapped in an object that can be cast to a string so it doesn't show in any logs
* @return MemberClass
* @throws Exception
*/
/*public function authenticateUsernamePassword(Login $login, string $usernameOrEmail, object $password): MemberClass
{
// TODO: Implement authenticateUsernamePassword() method.
}*/
/**
* Authenticate
*
* @param MemberClass $member The member
* @param object $password The plaintext password provided by the user, wrapped in an object that can be cast to a string so it doesn't show in any logs
* @return bool
*/
/*public function authenticatePasswordForMember(MemberClass $member, object $password): bool
{
// TODO: Implement authenticatePasswordForMember() method.
}*/
/* !Button Authentication */
/**
* Authenticate
*
* @param Login $login The login object
* @throws Exception
*/
/*public function authenticateButton(Login $login)
{
// TODO: Implement authenticateButton() method.
}*/
/**
* Get the button color
*
* @return string
*/
/*public function buttonColor(): string
{
// TODO: Implement buttonColor() method.
}*/
/**
* Get the button icon
*
* @return string
*/
/*public function buttonIcon(): string
{
// TODO: Implement buttonIcon() method.
}*/
/**
* Get button text
*
* @return string
*/
/*public function buttonText(): string
{
// TODO: Implement buttonText() method.
}*/
}