Path : /var/www/html/thb_loan_system/vendor/cartalyst/sentinel/src/Permissions/ |
B-Con CMD Config cPanel C-Rdp D-Log Info Jump Mass Ransom Symlink vHost Zone-H |
Current File : /var/www/html/thb_loan_system/vendor/cartalyst/sentinel/src/Permissions/PermissibleTrait.php |
<?php /* * Part of the Sentinel package. * * NOTICE OF LICENSE * * Licensed under the 3-clause BSD License. * * This source file is subject to the 3-clause BSD License that is * bundled with this package in the LICENSE file. * * @package Sentinel * @version 6.0.0 * @author Cartalyst LLC * @license BSD License (3-clause) * @copyright (c) 2011-2022, Cartalyst LLC * @link https://cartalyst.com */ namespace Cartalyst\Sentinel\Permissions; trait PermissibleTrait { /** * The cached permissions instance for the given user. * * @var \Cartalyst\Sentinel\Permissions\PermissionsInterface */ protected $permissionsInstance; /** * The Permissions instance FQCN. * * @var string */ protected static $permissionsClass = StrictPermissions::class; /** * Returns the permissions. * * @return array */ public function getPermissions(): array { return $this->permissions ?? []; } /** * Sets permissions. * * @param array $permissions * * @return $this */ public function setPermissions(array $permissions): self { $this->permissions = $permissions; return $this; } /** * Returns the permissions class name. * * @return string */ public static function getPermissionsClass(): string { return static::$permissionsClass; } /** * Sets the permissions class name. * * @param string $permissionsClass * * @return void */ public static function setPermissionsClass(string $permissionsClass): void { static::$permissionsClass = $permissionsClass; } /** * Creates the permissions object. * * @return $this */ abstract protected function createPermissions(): PermissionsInterface; /** * {@inheritdoc} */ public function getPermissionsInstance(): PermissionsInterface { if ($this->permissionsInstance === null) { $this->permissionsInstance = $this->createPermissions(); } return $this->permissionsInstance; } /** * {@inheritdoc} */ public function addPermission(string $permission, bool $value = true): PermissibleInterface { if (! array_key_exists($permission, $this->getPermissions())) { $this->permissions = array_merge($this->getPermissions(), [$permission => $value]); } return $this; } /** * {@inheritdoc} */ public function updatePermission(string $permission, bool $value = true, bool $create = false): PermissibleInterface { if (array_key_exists($permission, $this->getPermissions())) { $permissions = $this->getPermissions(); $permissions[$permission] = $value; $this->permissions = $permissions; } elseif ($create) { $this->addPermission($permission, $value); } return $this; } /** * {@inheritdoc} */ public function removePermission(string $permission): PermissibleInterface { if (array_key_exists($permission, $this->getPermissions())) { $permissions = $this->getPermissions(); unset($permissions[$permission]); $this->permissions = $permissions; } return $this; } }