/home/mip/mip/app/Modules/Client/Repositories/Settings/Roles/PermissionRepository.php
<?php
namespace QxCMS\Modules\Client\Repositories\Settings\Roles;
use QxCMS\Modules\AbstractRepository;
use QxCMS\Modules\Client\Repositories\Settings\Roles\RoleRepositoryInterface;
use QxCMS\Modules\Client\Models\Settings\Roles\Permission;
class PermissionRepository extends AbstractRepository implements PermissionRepositoryInterface
{
protected $model;
function __construct(Permission $model)
{
$this->model = $model;
}
public function getPermission($module_id)
{
return $this->model->where('menu_id', $module_id)->where('role_id', \Auth::guard('client')->user()->role_id)->first();
}
public function setRolePermission(array $module)
{
if(!empty($module)) {
return $module = [
'menu_id' => $module['menu_id'],
'role_id' => $module['role_id'],
'can_access' => (isset($module['can_access']) && !empty($module['can_access'])) ? $module['can_access']:0,
'can_create' => (isset($module['can_create']) && !empty($module['can_create'])) ? $module['can_create']:0,
'can_update' => (isset($module['can_update']) && !empty($module['can_update'])) ? $module['can_update']:0,
'can_delete' => (isset($module['can_delete']) && !empty($module['can_delete'])) ? $module['can_delete']:0,
'can_export' => (isset($module['can_export']) && !empty($module['can_export'])) ? $module['can_export']:0,
'can_import' => (isset($module['can_import']) && !empty($module['can_upload'])) ? $module['can_import']:0,
'can_print' => (isset($module['can_print']) && !empty($module['can_print'])) ? $module['can_print']:0,
];
}
return [];
}
public function serializeModules($module)
{
return $modules = [
'menu_id' => $module->id,
'can_access' => $module->show_menu,
'can_create' => $module->has_create,
'can_update' => $module->has_update,
'can_delete' => $module->has_delete,
'can_export' => $module->has_export,
'can_import' => $module->has_import,
'can_print' => $module->has_print,
] ;
}
public function makeRolePermission($module, $id)
{
$modules = $this->serializeModules($module);
$modules['role_id'] = $id;
$this->model->create($this->setRolePermission($modules));
}
}