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/sld.edukrypt.app/app/Traits/

Upload File :
current_dir [ Writeable ] document_root [ Writeable ]

 

Current File : //var/www/sld.edukrypt.app/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