Path : /var/www/html/thb_loan_system/vendor/cartalyst/sentinel/src/Roles/ |
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/Roles/EloquentRole.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\Roles; use IteratorAggregate; use Illuminate\Database\Eloquent\Model; use Cartalyst\Sentinel\Users\EloquentUser; use Cartalyst\Sentinel\Permissions\PermissibleTrait; use Cartalyst\Sentinel\Permissions\PermissibleInterface; use Cartalyst\Sentinel\Permissions\PermissionsInterface; use Illuminate\Database\Eloquent\Relations\BelongsToMany; class EloquentRole extends Model implements PermissibleInterface, RoleInterface { use PermissibleTrait; /** * The table associated with the model. * * @var string */ protected $table = 'roles'; /** * The attributes that are mass assignable. * * @var array */ protected $fillable = [ 'name', 'slug', 'permissions', ]; /** * The attributes that should be cast to native types. * * @var array */ protected $casts = [ 'permissions' => 'json', ]; /** * The Users model FQCN. * * @var string */ protected static $usersModel = EloquentUser::class; /** * {@inheritdoc} */ public function delete() { if ($this->exists && (! method_exists(static::class, 'isForceDeleting') || $this->isForceDeleting())) { $this->users()->detach(); } return parent::delete(); } /** * The Users relationship. * * @return \Illuminate\Database\Eloquent\Relations\BelongsToMany */ public function users(): BelongsToMany { return $this->belongsToMany(static::$usersModel, 'role_users', 'role_id', 'user_id')->withTimestamps(); } /** * {@inheritdoc} */ public function getRoleId(): int { return $this->getKey(); } /** * {@inheritdoc} */ public function getRoleSlug(): string { return $this->slug; } /** * {@inheritdoc} */ public function getUsers(): IteratorAggregate { return $this->users; } /** * {@inheritdoc} */ public static function getUsersModel(): string { return static::$usersModel; } /** * {@inheritdoc} */ public static function setUsersModel(string $usersModel): void { static::$usersModel = $usersModel; } /** * Dynamically pass missing methods to the permissions. * * @param string $method * @param array $parameters * * @return mixed */ public function __call($method, $parameters) { $methods = ['hasAccess', 'hasAnyAccess']; if (in_array($method, $methods)) { $permissions = $this->getPermissionsInstance(); return call_user_func_array([$permissions, $method], $parameters); } return parent::__call($method, $parameters); } /** * {@inheritdoc} */ protected function createPermissions(): PermissionsInterface { return new static::$permissionsClass($this->getPermissions()); } }