public function update(Request $request, $id)
{
$this->validate($request, array('name' => 'required|unique:permissions,name,' . $id, 'display_name' => 'required'));
$perm = $this->permission->find($id);
if (!$perm->isEditable()) {
abort(403);
}
Audit::log(Auth::user()->id, trans('admin/permissions/general.audit-log.category'), trans('admin/permissions/general.audit-log.msg-update', ['name' => $perm->name]));
$attributes = $request->all();
if (array_key_exists('selected_routes', $attributes)) {
$attributes['routes'] = explode(",", $attributes['selected_routes']);
}
if (array_key_exists('selected_roles', $attributes)) {
$attributes['roles'] = explode(",", $attributes['selected_roles']);
}
$perm->update($request->all());
$perm->assignRoutes($attributes);
$perm->assignRoles($attributes);
Flash::success(trans('admin/permissions/general.status.updated'));
return redirect('/admin/permissions');
}