public function insert(Request $request)
 {
     $role = $this->repository->create($request->all());
     $permissions = Permission::whereIn('id', $request->permissions)->get();
     foreach ($permissions as $permission) {
         $role->grantPermission($permission);
     }
 }
 /**
  * Reverse the migrations.
  *
  * @return void
  */
 public function down()
 {
     $new_permissions = array('can_edit_station_data', 'can_add_station_data', 'can_delete_station_data', 'can_view_station_data');
     $roles = Role::get();
     $permissions = Permission::whereIn('name', $new_permissions)->get();
     $permission_ids = $permissions->lists('id');
     // First detach the permissions from the roles
     foreach ($roles as $role) {
         $role->detachPermissions($permission_ids);
     }
     // Now delete the permission altogether
     foreach ($permissions as $permission) {
         $permission->delete();
     }
 }
 public function deleteByIds($ids)
 {
     $result = Permission::whereIn('id', $ids)->delete();
     return $result;
 }
 public function update(GroupRequest $request, $id)
 {
     if ($this->currentUser->hasAccess('wts.group.edit')) {
         DB::transaction(function () use($request, $id) {
             $permissions = $request->permissions;
             for ($i = 0; $i < count($permissions); $i++) {
                 $permissions[$i] = Crypt::decrypt($permissions[$i]);
             }
             $availiblePermissions = Permission::whereIn("id", $permissions)->get(array("name"))->toArray();
             $finallyPermissions = [];
             foreach ($availiblePermissions as $key => $value) {
                 $finallyPermissions[$value["name"]] = 1;
             }
             $notAvailiblePermissions = Permission::whereNotIn("id", $permissions)->get(array("name"))->toArray();
             foreach ($notAvailiblePermissions as $key => $value) {
                 $finallyPermissions[$value["name"]] = 0;
             }
             //standart store
             $updateGroupQuery = Sentry::findGroupById($id);
             $updateGroupQuery->name = $request->group_name;
             $updateGroupQuery->slug = $request->slug_name;
             $updateGroupQuery->permissions = $finallyPermissions;
             $updateGroupQuery->save();
         });
         return response()->json($this->editResponseMessage);
     } else {
         abort(403, $this->accessForbidden);
     }
 }