Exemplo n.º 1
0
 /**
  * Function for resources of user based on a specific permission
  * @param $permission
  * @return array
  */
 function resourcesByPermission($permission)
 {
     try {
         $permissionObj = Permission::where('name', '=', $permission)->firstOrFail();
     } catch (ModelNotFoundException $e) {
         return false;
     }
     $roleResourcePermissions = $this->resourcePermissions()->where('permission_id', $permissionObj->id)->get();
     $resources = array();
     foreach ($roleResourcePermissions as $p) {
         $resources[] = $p->resource;
     }
     return $resources;
 }
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     if (Auth::user() && Auth::user()->id == Config::get('laracancan.super_admin')) {
         $permissionIds = Input::get('permissions');
         if (count($permissionIds) > 0) {
             $ps = Permission::whereIn('id', $permissionIds)->get();
             $permissions = array();
             foreach ($ps as $p) {
                 $permissions[] = $p->id;
             }
             $resource = Resource::find(Input::get('resource_id'));
             $resource->resourcePermissions()->detach($permissions);
             $resource->resourcePermissions()->attach($permissions);
             return redirect()->back()->with('flash_success', 'Permissions added for this resource.');
         }
         return redirect()->back()->with('flash_warn', 'No permission selected!');
     }
     return response(view('laracancan::master.401'), 401);
 }
Exemplo n.º 3
0
 /**
  * Execute the console command.
  *
  * @return void
  */
 public function fire()
 {
     $this->line('');
     $this->info("Seeding Permissions Table");
     $this->line('');
     if (Permission::count() == 0) {
         if ($this->confirm("Proceed with seeding? [Yes|no]", "Yes")) {
             $this->line('');
             $this->info("Seeding Permissions...");
             DB::table('lcc_permissions')->delete();
             Permission::create(['name' => 'create', 'display_name' => 'Create', 'description' => 'Permission To Create An Object Of A Resource.']);
             Permission::create(['name' => 'read', 'display_name' => 'Read', 'description' => 'Permission To View A Resource.']);
             Permission::create(['name' => 'update', 'display_name' => 'Update', 'description' => 'Permission To Update An Object Of A Resource.']);
             Permission::create(['name' => 'delete', 'display_name' => 'Delete', 'description' => 'Permission To Delete An Object Of A Resource.']);
             $this->line('');
             $this->info("Done");
         }
     } else {
         $this->error("Table permissions is already filled with data.");
     }
 }
 /**
  * Update the specified resource in storage.
  *
  * @param  int  $id
  * @return Response
  */
 public function update($id)
 {
     if (Auth::user() && Auth::user()->id == Config::get('laracancan.super_admin')) {
         $input = Input::all();
         $rules = ['name' => 'required|min:3|max:32', 'display_name' => 'required|min:3|max:32'];
         $validator = Validator::make($input, $rules);
         $error_msg = $validator->errors();
         if (count($error_msg) != 0) {
             return redirect()->back()->withErrors($validator)->withInput();
         }
         $permissions = Permission::where('name', '=', $input['name'])->where('id', '!=', $id)->get();
         $permissions1 = Permission::where('display_name', '=', $input['display_name'])->where('id', '!=', $id)->get();
         if (count($permissions) > 0 || count($permissions1) > 0) {
             return redirect()->back()->with('flash_error', 'Permission already exists!');
         }
         $permission = Permission::findOrFail($id);
         $permission->name = $input['name'];
         $permission->display_name = $input['display_name'];
         $permission->description = $input['description'];
         $permission->save();
         return redirect()->back()->with('flash_success', 'Permission edited Successfully !');
     }
     return response(view('laracancan::master.401'), 401);
 }