public function savePermissions($table) { DB::table(config('center.db.permissions'))->where('table', $table)->delete(); foreach (Request::input('permissions') as $user => $level) { if (!empty($level)) { DB::table(config('center.db.permissions'))->insert(['table' => $table, 'user_id' => $user, 'level' => $level]); } } LoginController::updateUserPermissions(); return redirect(action('\\LeftRight\\Center\\Controllers\\RowController@index', $table))->with('message', trans('center::site.permissions_update_success')); }
public function handle($request, Closure $next) { if (Auth::check()) { if (!Session::has('center.permissions')) { LoginController::updateUserPermissions(); } } else { if (Session::has('center.permissions')) { Session::forget('center.permissions'); } } return $next($request); }
private static function processRelationsInput($table, $row_id) { foreach ($table->fields as $field) { if ($field->type == 'checkboxes') { # Figure out schema $object_column = self::formatKeyColumn($table->name); $remote_column = self::formatKeyColumn($field->source); # Clear old values DB::table($field->name)->where($object_column, $row_id)->delete(); # Loop through and save all the checkboxes if (Request::has($field->name)) { foreach (Request::input($field->name) as $related_id) { DB::table($field->name)->insert([$object_column => $row_id, $remote_column => $related_id]); } } } elseif ($field->type == 'image') { # Capture the uploaded file by setting the reverse-lookup DB::table(config('center.db.files'))->where('id', Request::input($field->name))->update(['row_id' => $row_id]); } elseif ($field->type == 'images') { # Unset any old file associations (will get cleaned up after this loop) DB::table(config('center.db.files'))->where('table', $table->name)->where('field', $field->name)->where('row_id', $row_id)->update(['row_id' => null]); # Create new associations $file_ids = explode(',', Request::input($field->name)); $precedence = 0; foreach ($file_ids as $file_id) { DB::table(config('center.db.files'))->where('id', $file_id)->update(['row_id' => $row_id, 'precedence' => ++$precedence]); } } elseif ($field->type == 'permissions') { if ($table->name == config('center.db.users')) { DB::table(config('center.db.permissions'))->where('user_id', $row_id)->delete(); foreach (Request::input('permissions') as $table_name => $level) { if (!empty($level)) { DB::table(config('center.db.permissions'))->insert(['user_id' => $row_id, 'table' => $table_name, 'level' => $level]); } } //update permissions if you're updating yourself if ($row_id == Auth::id()) { LoginController::updateUserPermissions(); } } } } }