KGRKJGETMRETU895U-589TY5MIGM5JGB5SDFESFREWTGR54TY
Server : Apache/2.4.41 (Ubuntu)
System : Linux vmi1525618.contaboserver.net 5.4.0-105-generic #119-Ubuntu SMP Mon Mar 7 18:49:24 UTC 2022 x86_64
User : www-data ( 33)
PHP Version : 8.2.12
Disable Function : NONE
Directory :  /var/www/leadai/webmaster.leadai.co.in/app/Traits/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : /var/www/leadai/webmaster.leadai.co.in/app/Traits/HasPermissionsTrait.php
<?php

namespace App\Traits;

use App\Models\Role;
use App\Models\Permission;

trait HasPermissionsTrait
{
	// Get Permissions
	public function getAllPermissions($permissions)
	{
		return Permission::whereIn('slug', $permissions)->get();
	}

	// Check has permissions
	public function hasPermission($permission)
	{
		return (bool) $this->permissions->where('slug', $permission->slug)->count();
	}

	// Has Role
	public function hasRole(...$roles)
	{
		foreach ($roles as $role) {
			if ($this->roles->contains('slug', $role)) {
				return true;
			}
		}
		return false;
	}

	public function hasPermissionTo($permission)
	{
		return $this->hasPermissionThroughRole($permission) || $this->hasPermission($permission);
	}

	// give permissions
	public function givePermissionTo(...$permissions)
	{
		$permissions = $this->getAllPermissions($permissions);
		if ($permissions == null) {
			return $this;
		}
		$this->permissions()->saveMany($permissions);
		return $this;
	}


	// Has permission throught role
	public function hasPermissionThroughRole($permissions)
	{
		foreach ($permissions->roles as $role) {
			if ($this->roles->contains($role)) {
				return true;
			}
		}
		return false;
	}

	public function permissions()
	{
		return $this->belongsTomany(Permission::class, 'users_permissions');
	}

	public function roles()
	{
		return $this->belongsTomany(Role::class, 'users_roles');
	}
}

Anon7 - 2021