Exemplo n.º 1
0
 /**
  * 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');
 }