/** * Store a newly created resource in storage. * * @param \Illuminate\Http\Request $request * @return \Illuminate\Http\Response */ public function store(Request $request) { if (Gate::denies('user.role.create')) { return Redirect::back(); } else { $input = $request->all(); $id = Role::create($input)->id; DB::table('permission_role')->where('role_id', '=', $id)->delete(); foreach ($input['permission_id'] as $permissionid) { $permissionrole = new PermissionRole(); $permissionrole->permission_id = $permissionid; $permissionrole->role_id = $id; $permissionrole->save(); } return redirect('/role'); } }
/** * Update the specified resource in storage. * * @param $role * @return Response */ public function postEdit(RoleRequest $request, $id) { $is_admin = 0; if (!empty($request->permission)) { $permissionsAdmin = Permission::where('is_admin', '=', 1)->get(); foreach ($permissionsAdmin as $perm) { foreach ($request->permission as $item) { if ($item == $perm['id'] && $perm['is_admin'] == '1') { $is_admin = 1; } } } } $role = Role::find($id); $role->is_admin = $is_admin; $role->name = $request->name; $role->save(); PermissionRole::where('role_id', '=', $id)->delete(); if (is_array($request->permission)) { foreach ($request->permission as $item) { $permission = new PermissionRole(); $permission->permission_id = $item; $permission->role_id = $role->id; $permission->save(); } } }
public function assignRolePermission($rid) { $inputs = Input::all(); //get all the permission that this role has. $current_permissions_id = Role::getPermissionsAssignedToCurrentRole($rid); foreach ($inputs as $key => $value) { $is_permission_added_in_current_role = false; if ($key == '_token') { continue; } $permission_id = explode("_", $key)[1]; $is_permission_added_in_current_role = in_array($permission_id, $current_permissions_id); if (!$is_permission_added_in_current_role && $value == 'on') { echo 'ON'; print_r($current_permissions_id); echo $permission_id . '->'; echo $is_permission_added_in_current_role; echo '<br>'; //if the permission is not exist, create new permission role record. $new_permission = new PermissionRole(); $new_permission->role_id = $rid; $new_permission->permission_id = $permission_id; $new_permission->order = '1'; $new_permission->save(); //else since it is already exist, and it is on, no need to do anything. } else { if ($is_permission_added_in_current_role) { if ($value == 'off') { echo 'OFF'; print_r($current_permissions_id); echo $permission_id . '->'; echo $is_permission_added_in_current_role; echo '<br>'; //if permission record is exist (true), find and do a delete. $perm = PermissionRole::where('role_id', $rid)->where('permission_id', $permission_id)->first(); if (isset($perm)) { $perm->delete(); } //else it is not exist, do nothing. } else { if ($value == 'on') { //echo 'ON'; print_r ($current_permissions_id); echo $permission_id.'->'; echo $is_permission_added_in_current_role; echo '<br>'; //do nothing .... } } } } } //return ''; return Redirect::to('/crm/role/' . $rid)->withMessage(Generate::message('Success', 'New Permissions Applied, please relogin to see the changes.')); }