<?php
namespace App\Models;
use Zizaco\Entrust\EntrustRole;
class Role extends EntrustRole
{
public function createRole($request)
{
$this->name = $request->name;
$this->display_name = $request->display_name;
$this->description = $request->description;
$this->save();
if (is_array($request->permission)) {
$permissions = [];
foreach ($request->permission as $id) {
$permissions[] = Permission::findOrFail($id);
}
$this->attachPermissions($permissions);
}
}
public function updateRole($id, $request)
{
$role = self::findOrFail($id);
$role->name = $request->name;
$role->display_name = $request->display_name;
$role->description = $request->description;
$role->save();
$role->detachPermissions($role->perms);
if (is_array($request->permission)) {
$permissions = [];
foreach ($request->permission as $id) {
$permissions[] = Permission::findOrFail($id);
}
$role->attachPermissions($permissions);
}
}
public function deleteRole($id)
{
$role = Role::findOrFail($id);
$role->users()->sync([]); $role->perms()->sync([]);
$role->forceDelete(); }
public function getRoleList($page, array $condition = [])
{
return $this->where($condition)->paginate($page);
}
}