/** * Update the specified resource in storage. * * @param $role * @return Response */ public function postEdit(Request $request, $role) { // Declare the rules for the form validation $rules = array('name' => 'required|unique:roles', 'display_name' => 'required|unique:roles'); // Validate the inputs // $validator = Validator::make($request->all(), $rules, [ // 'name.required' => 'A name is required.', // 'name.unique' => 'Please use a different name.', // 'display_name.required' => 'A display name is required', // 'display_name.unique' => 'Please use a different display name.' // ]); $name = $request->input('name'); $display_name = $request->input('display_name'); // Check if the form validates with success // if ($validator->passes()) // { // // Update the role data // $role->name = $request->input('name'); // $role->display_name = $request->input('display_name'); // $role->is_protected = $request->has('is_protected') ? 1 : 0; // $role->perms()->sync($this->permission->preparePermissionsForSave($request->input('permissions'))); // // Was the role updated? // if ($role->save()) // { // // Redirect to the role page // return redirect('admin/roles/' . $role->id . '/edit')->with('success', 'Role updated'); // } // else // { // // Redirect to the role page // return redirect('admin/roles/' . $role->id . '/edit')->with('error', 'Could not update role'); // } // } if (!empty($name) && $name != $role->name) { $nameValidator = Validator::make(['name' => $name], ['name' => 'required|unique:roles'], ['name.required' => 'A name is required.', 'name.unique' => 'Please use a different name.']); if ($nameValidator->passes()) { $role->name = $name; $role->perms()->sync($this->permission->preparePermissionsForSave($request->input('permissions'))); if ($role->save()) { // Redirect to the role page return redirect('admin/roles/' . $role->id . '/edit')->with('success', 'Role updated'); } else { // Redirect to the role page return redirect('admin/roles/' . $role->id . '/edit')->with('error', 'Could not update role'); } } } if (!empty($display_name) && $display_name != $role->display_name) { $displayNameValidator = Validator::make(['display_name' => $display_name], ['display_name' => 'required|unique:roles'], ['display_name.required' => 'A display name is required.', 'display_name.unique' => 'Please use a different display name.']); if ($displayNameValidator->passes()) { $role->display_name = $display_name; $role->perms()->sync($this->permission->preparePermissionsForSave($request->input('permissions'))); if ($role->save()) { // Redirect to the role page Flash::success('Role updated'); return redirect('admin/roles/' . $role->id . '/edit'); } else { // Redirect to the role page return redirect('admin/roles/' . $role->id . '/edit')->withInput()->withErrors($validator->messages()); } } } $role->perms()->sync($this->permission->preparePermissionsForSave($request->input('permissions'))); $role->is_protected = $request->has('is_protected') ? 1 : 0; $role->is_superuser = $request->has('is_superuser') ? 1 : 0; $role->save(); // Form validation failed return redirect('admin/roles/' . $role->id . '/edit'); }