Root Zanli
Home
Console
Upload
information
Create File
Create Folder
About
Tools
:
/
home
/
o5t6x7pgljbm
/
public_html
/
admin_new2
/
app
/
Services
/
Filename :
RBACService.php
back
Copy
<?php namespace App\Services; use App\Models\Admin; use App\Models\Group; use App\Models\Role; use App\Models\Team; use App\Models\User; use Illuminate\Support\Facades\Log; enum RBACRoles: string { case ADMIN = 'ADMIN'; case PARENT = 'PARENT'; case SOCIAL_WORKER = 'SOCIAL_WORKER'; case CHILD = 'CHILD'; } class RBACService{ public function getRoles(User $user){ return $user->roles; } public function getPermissions(User $user){ return $user->permissions; } public function getAllRoles(){ return Role::get(); } public function assignRole(User|Admin $user, $role_name){ $role = Role::where('name', $role_name)->first(); $user->attachRole($role); } public function createTeam(User $owner, Group $group){ $team = Team::create(['name' => $group->group_name .'-'. $group->group_id , 'display_name' => $group->group_name, 'description' => $group->group_name]); $group->team_id = $team->id; $group->save(); $this->addToTeamWithRole($owner, $group, RBACRoles::PARENT); return $team; } public function addToTeamWithRole(User $user, Group $group, RBACRoles $role_name = RBACRoles::CHILD){ $role = Role::where('name', $role_name)->first(); // Log::debug(print_r(['Role' => $role, 'Team' => $group->team], true)); $user->attachRole($role, $group->team); } } ?>