Add client metadata to session creation and enforce TOS/PP
This commit is contained in:
parent
d2119df824
commit
756297671f
10 changed files with 414 additions and 206 deletions
|
@ -72,6 +72,10 @@ class Configuration
|
|||
|
||||
// Registration configuration
|
||||
$config->setDefault('registration.enabled', true);
|
||||
$config->setDefault('registration.privacy_policy_document', null);
|
||||
$config->setDefault('registration.accept_privacy_policy', true);
|
||||
$config->setDefault('registration.terms_of_service_document', null);
|
||||
$config->setDefault('registration.accept_terms_of_service', null);
|
||||
$config->setDefault('registration.password_required', true);
|
||||
$config->setDefault('registration.otp_required', false);
|
||||
$config->setDefault('registration.display_name_required', false);
|
||||
|
|
|
@ -9,6 +9,10 @@ namespace Socialbox\Classes\Configuration;
|
|||
class RegistrationConfiguration
|
||||
{
|
||||
private bool $registrationEnabled;
|
||||
private ?string $privacyPolicyDocument;
|
||||
private bool $acceptPrivacyPolicy;
|
||||
private ?string $termsOfServiceDocument;
|
||||
private bool $acceptTermsOfService;
|
||||
private bool $passwordRequired;
|
||||
private bool $otpRequired;
|
||||
private bool $displayNameRequired;
|
||||
|
@ -31,6 +35,10 @@ class RegistrationConfiguration
|
|||
public function __construct(array $data)
|
||||
{
|
||||
$this->registrationEnabled = (bool)$data['enabled'];
|
||||
$this->privacyPolicyDocument = $data['privacy_policy_document'] ?? null;
|
||||
$this->acceptPrivacyPolicy = $data['accept_privacy_policy'] ?? true;
|
||||
$this->termsOfServiceDocument = $data['terms_of_service_document'] ?? null;
|
||||
$this->acceptTermsOfService = $data['accept_terms_of_service'] ?? true;
|
||||
$this->passwordRequired = (bool)$data['password_required'];
|
||||
$this->otpRequired = (bool)$data['otp_required'];
|
||||
$this->displayNameRequired = (bool)$data['display_name_required'];
|
||||
|
@ -50,6 +58,47 @@ class RegistrationConfiguration
|
|||
return $this->registrationEnabled;
|
||||
}
|
||||
|
||||
|
||||
/**
|
||||
* Retrieves the privacy policy document.
|
||||
*
|
||||
* @return ?string Returns the privacy policy document or null if not set.
|
||||
*/
|
||||
public function getPrivacyPolicyDocument(): ?string
|
||||
{
|
||||
return $this->privacyPolicyDocument;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if accepting the privacy policy is required.
|
||||
*
|
||||
* @return bool Returns true if the privacy policy must be accepted, false otherwise.
|
||||
*/
|
||||
public function isAcceptPrivacyPolicyRequired(): bool
|
||||
{
|
||||
return $this->acceptPrivacyPolicy;
|
||||
}
|
||||
|
||||
/**
|
||||
* Retrieves the terms of service document.
|
||||
*
|
||||
* @return ?string Returns the terms of service document or null if not set.
|
||||
*/
|
||||
public function getTermsOfServiceDocument(): ?string
|
||||
{
|
||||
return $this->termsOfServiceDocument;
|
||||
}
|
||||
|
||||
/**
|
||||
* Checks if accepting the terms of service is required.
|
||||
*
|
||||
* @return bool Returns true if the terms of service must be accepted, false otherwise.
|
||||
*/
|
||||
public function isAcceptTermsOfServiceRequired(): bool
|
||||
{
|
||||
return $this->acceptTermsOfService;
|
||||
}
|
||||
|
||||
/**
|
||||
* Determines if a password is required.
|
||||
*
|
||||
|
|
|
@ -3,6 +3,7 @@
|
|||
namespace Socialbox\Classes\StandardMethods;
|
||||
|
||||
use Socialbox\Abstracts\Method;
|
||||
use Socialbox\Enums\StandardError;
|
||||
use Socialbox\Interfaces\SerializableInterface;
|
||||
use Socialbox\Objects\ClientRequest;
|
||||
use Socialbox\Objects\RpcRequest;
|
||||
|
@ -15,6 +16,11 @@
|
|||
*/
|
||||
public static function execute(ClientRequest $request, RpcRequest $rpcRequest): ?SerializableInterface
|
||||
{
|
||||
// TODO: Implement execute() method.
|
||||
if($request->getSessionUuid() === null)
|
||||
{
|
||||
return $rpcRequest->produceError(StandardError::SESSION_REQUIRED);
|
||||
}
|
||||
|
||||
return $rpcRequest->produceResponse($request->getSession()->toStandardSessionState());
|
||||
}
|
||||
}
|
Loading…
Add table
Add a link
Reference in a new issue