diff --git a/src/36ab759f-7b42-4465-9c17-56ba1dd05f90/README.md b/src/36ab759f-7b42-4465-9c17-56ba1dd05f90/README.md index 4850c44..1f7e1a1 100644 --- a/src/36ab759f-7b42-4465-9c17-56ba1dd05f90/README.md +++ b/src/36ab759f-7b42-4465-9c17-56ba1dd05f90/README.md @@ -24,6 +24,7 @@ class Linker << (F,LightGreen) >> #Green { + valid(string $linker) : bool + trigger(string $linker) : bool + set(string $linker) : bool + + revokeSession(string $linker) : ?array + setName(string $name) : ?array + access(string $linker, string $pass, ...) : ?array + revoke(string $linker) : ?array @@ -95,14 +96,21 @@ note left of Linker::set return: bool end note -note right of Linker::setName +note right of Linker::revokeSession + Revoke Linker Session + + since: 2.0.1 + return: ?array +end note + +note left of Linker::setName Set a linker name since: 2.0.1 return: ?array end note -note left of Linker::access +note right of Linker::access Set Access since: 2.0.1 @@ -114,42 +122,42 @@ note left of Linker::access ?string $oldPass end note -note right of Linker::revoke +note left of Linker::revoke Revoke Access since: 2.0.1 return: ?array end note -note left of Linker::hasAccess +note right of Linker::hasAccess Has Access since: 2.0.1 return: bool end note -note right of Linker::getPassGuid +note left of Linker::getPassGuid Get Password GUID since: 2.0.1 return: ?string end note -note left of Linker::getPassword +note right of Linker::getPassword Get Password since: 2.0.1 return: ?object end note -note right of Linker::setLinker +note left of Linker::setLinker Set Linker since: 2.0.1 return: bool end note -note left of Linker::setPassword +note right of Linker::setPassword Set Password since: 2.0.1 diff --git a/src/36ab759f-7b42-4465-9c17-56ba1dd05f90/code.php b/src/36ab759f-7b42-4465-9c17-56ba1dd05f90/code.php index 2e577e7..ee4694e 100644 --- a/src/36ab759f-7b42-4465-9c17-56ba1dd05f90/code.php +++ b/src/36ab759f-7b42-4465-9c17-56ba1dd05f90/code.php @@ -238,6 +238,41 @@ final class Linker return true; } + /** + * Revoke Linker Session + * + * @param string $linker The linker GUID value + * + * @return array|null The success or error details + * @since 2.0.1 + **/ + public function revokeSession(string $linker): ?array + { + // linker not valid GUID + if (!GuidHelper::valid($linker)) + { + // hmm we can log this + return [ + 'error' => Text::_('COM_GETBIBLE_ACCESS_REVOKED') + ]; + } + + if (($access = $this->session->get('getbible_active_linker_guid', null)) !== null + || $access !== $linker) + { + // hmm we can log this + return [ + 'success' => Text::_('COM_GETBIBLE_ACCESS_REVOKED') + ]; + } + + $this->session->set('getbible_active_linker_guid', null); + + return [ + 'success' => Text::_('COM_GETBIBLE_ACCESS_REVOKED') + ]; + } + /** * Set a linker name * diff --git a/src/36ab759f-7b42-4465-9c17-56ba1dd05f90/code.power b/src/36ab759f-7b42-4465-9c17-56ba1dd05f90/code.power index 7fbc1ce..c160374 100644 --- a/src/36ab759f-7b42-4465-9c17-56ba1dd05f90/code.power +++ b/src/36ab759f-7b42-4465-9c17-56ba1dd05f90/code.power @@ -208,6 +208,41 @@ return true; } + /** + * Revoke Linker Session + * + * @param string $linker The linker GUID value + * + * @return array|null The success or error details + * @since 2.0.1 + **/ + public function revokeSession(string $linker): ?array + { + // linker not valid GUID + if (!GuidHelper::valid($linker)) + { + // hmm we can log this + return [ + 'error' => Text::_('Access revoked.') + ]; + } + + if (($access = $this->session->get('getbible_active_linker_guid', null)) !== null + || $access !== $linker) + { + // hmm we can log this + return [ + 'success' => Text::_('Access revoked.') + ]; + } + + $this->session->set('getbible_active_linker_guid', null); + + return [ + 'success' => Text::_('Access revoked.') + ]; + } + /** * Set a linker name *