HEX
Server: LiteSpeed
System: Linux s17244.fra1.stableserver.net 5.14.0-611.45.1.el9_7.x86_64 #1 SMP PREEMPT_DYNAMIC Wed Apr 1 05:56:53 EDT 2026 x86_64
User: jubaroyal (1259)
PHP: 8.2.31
Disabled: NONE
Upload Files
File: /home/jubaroyal/public_html/app/Models/User.php
<?php

namespace App\Models;

// use Illuminate\Contracts\Auth\MustVerifyEmail;
use Laravel\Sanctum\HasApiTokens;
use Illuminate\Support\Facades\DB;
use Spatie\Permission\Traits\HasRoles;
use Illuminate\Notifications\Notifiable;
use Illuminate\Database\Eloquent\Factories\HasFactory;
use Illuminate\Foundation\Auth\User as Authenticatable;

class User extends Authenticatable
{
    use HasApiTokens, HasFactory, Notifiable, HasRoles;

    /**
     * The attributes that are mass assignable.
     *
     * @var array<int, string>
     */
    protected $fillable = [
        'name',
        'email',
        'phone',
        'photo',
        'password',
        'confirm_password',
        'status',
        'user_type',
    ];

    /**
     * The attributes that should be hidden for serialization.
     *
     * @var array<int, string>
     */
    protected $hidden = [
        'password',
        'remember_token',
    ];

    /**
     * The attributes that should be cast.
     *
     * @var array<string, string>
     */
    protected $casts = [
        'email_verified_at' => 'datetime',
    ];

    public static function getPermissionGroupNames(){
        $permissionGroupNames = DB::table('permissions')->select('group_name')->groupBy('group_name')->get();
        return $permissionGroupNames;
    } // end method

    public static function getPermissionNamesByGroupName($group_name){
        $permissionNames = DB::table('permissions')->select('name', 'id')->where('group_name', '=', $group_name)->get();
        return $permissionNames;
    } // end method

    public static function roleHasPermissions($role, $allPermissionNames){
        $hasPermission = true;
        foreach($allPermissionNames as $permission){
            if (!$role->hasPermissionTo($permission->name)) {
                $hasPermission = false;
            }
            return $hasPermission;
        }
    } // end method

}