示例#1
0
 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'));
 }
示例#2
0
 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);
 }
示例#3
0
 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();
                 }
             }
         }
     }
 }