| Server IP : 54.94.228.101 / Your IP : 172.28.20.13 Web Server : Apache System : Linux ip-172-28-29-189 6.5.0-1014-aws #14~22.04.1-Ubuntu SMP Thu Feb 15 15:27:06 UTC 2024 x86_64 User : www-data ( 33) PHP Version : 7.2.34-43+ubuntu22.04.1+deb.sury.org+1 Disable Function : pcntl_alarm,pcntl_fork,pcntl_waitpid,pcntl_wait,pcntl_wifexited,pcntl_wifstopped,pcntl_wifsignaled,pcntl_wifcontinued,pcntl_wexitstatus,pcntl_wtermsig,pcntl_wstopsig,pcntl_signal,pcntl_signal_get_handler,pcntl_signal_dispatch,pcntl_get_last_error,pcntl_strerror,pcntl_sigprocmask,pcntl_sigwaitinfo,pcntl_sigtimedwait,pcntl_exec,pcntl_getpriority,pcntl_setpriority,pcntl_async_signals, MySQL : OFF | cURL : ON | WGET : ON | Perl : ON | Python : OFF | Sudo : ON | Pkexec : ON Directory : /var/www/html/vinumday2_0/vendor/cartalyst/sentinel/src/Roles/ |
Upload File : |
<?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 2.0.16
* @author Cartalyst LLC
* @license BSD License (3-clause)
* @copyright (c) 2011-2017, Cartalyst LLC
* @link http://cartalyst.com
*/
namespace Cartalyst\Sentinel\Roles;
use Cartalyst\Sentinel\Permissions\PermissibleInterface;
use Cartalyst\Sentinel\Permissions\PermissibleTrait;
use Illuminate\Database\Eloquent\Model;
class EloquentRole extends Model implements RoleInterface, PermissibleInterface
{
use PermissibleTrait;
/**
* {@inheritDoc}
*/
protected $table = 'sis_roles';
/**
* {@inheritDoc}
*/
protected $fillable = [
'name',
'slug',
'permissions',
];
/**
* The Eloquent users model name.
*
* @var string
*/
protected static $usersModel = 'Cartalyst\Sentinel\Users\EloquentUser';
/**
* {@inheritDoc}
*/
public function delete()
{
$isSoftDeleted = array_key_exists('Illuminate\Database\Eloquent\SoftDeletes', class_uses($this));
if ($this->exists && ! $isSoftDeleted) {
$this->users()->detach();
}
return parent::delete();
}
/**
* The Users relationship.
*
* @return \Illuminate\Database\Eloquent\Relations\BelongsToMany
*/
public function users()
{
return $this->belongsToMany(static::$usersModel, 'sis_role_users', 'role_id', 'user_id')->withTimestamps();
}
/**
* Get mutator for the "permissions" attribute.
*
* @param mixed $permissions
* @return array
*/
public function getPermissionsAttribute($permissions)
{
return $permissions ? json_decode($permissions, true) : [];
}
/**
* Set mutator for the "permissions" attribute.
*
* @param mixed $permissions
* @return void
*/
public function setPermissionsAttribute(array $permissions)
{
$this->attributes['permissions'] = $permissions ? json_encode($permissions) : '';
}
/**
* {@inheritDoc}
*/
public function getRoleId()
{
return $this->getKey();
}
/**
* {@inheritDoc}
*/
public function getRoleSlug()
{
return $this->slug;
}
/**
* {@inheritDoc}
*/
public function getUsers()
{
return $this->users;
}
/**
* {@inheritDoc}
*/
public static function getUsersModel()
{
return static::$usersModel;
}
/**
* {@inheritDoc}
*/
public static function setUsersModel($usersModel)
{
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()
{
return new static::$permissionsClass($this->permissions);
}
}