Пример #1
0
 /**
  * @param array $data
  * @param bool $provider
  * @return static
  */
 public function create(array $data, $provider = false)
 {
     if ($provider) {
         $user = User::create(['name' => $data['name'], 'email' => $data['email'], 'password' => null, 'confirmation_code' => md5(uniqid(mt_rand(), true)), 'confirmed' => 1, 'status' => 1]);
     } else {
         $user = User::create(['name' => $data['name'], 'email' => $data['email'], 'password' => bcrypt($data['password']), 'confirmation_code' => md5(uniqid(mt_rand(), true)), 'confirmed' => config('access.users.confirm_email') ? 0 : 1, 'status' => 1]);
     }
     /**
      * Add the default site role to the new user
      */
     $user->attachRole($this->role->getDefaultUserRole());
     /**
      * If users have to confirm their email and this is not a social account,
      * send the confirmation email
      *
      * If this is a social account they are confirmed through the social provider by default
      */
     if (config('access.users.confirm_email') && $provider === false) {
         $this->sendConfirmationEmail($user);
     }
     /**
      * Return the user object
      */
     return $user;
 }
 /**
  * @param array $data
  * @param bool $provider
  * @return static
  */
 public function create(array $data, $provider = false)
 {
     $user = new User();
     $user->name = $data['name'];
     $user->email = $data['email'];
     $user->confirmation_code = md5(uniqid(mt_rand(), true));
     $user->status = 1;
     $user->password = $provider ? null : bcrypt($data['password']);
     $user->confirmed = $provider ? 1 : (config('access.users.confirm_email') ? 0 : 1);
     DB::transaction(function () use($user) {
         if ($user->save()) {
             /**
              * Add the default site role to the new user
              */
             $user->attachRole($this->role->getDefaultUserRole());
         }
     });
     /**
      * If users have to confirm their email and this is not a social account,
      * send the confirmation email
      *
      * If this is a social account they are confirmed through the social provider by default
      */
     if (config('access.users.confirm_email') && $provider === false) {
         $this->sendConfirmationEmail($user);
     }
     /**
      * Return the user object
      */
     return $user;
 }
Пример #3
0
 /**
  * @param  $id
  * @param  $input
  * @param  $roles
  * @throws GeneralException
  * @return bool
  */
 public function update($id, $input, $roles)
 {
     $permission = $this->findOrThrowException($id);
     $permission->name = $input['name'];
     $permission->display_name = $input['display_name'];
     $permission->system = isset($input['system']) ? 1 : 0;
     $permission->group_id = isset($input['group']) && strlen($input['group']) > 0 ? (int) $input['group'] : null;
     $permission->sort = isset($input['sort']) ? (int) $input['sort'] : 0;
     if ($permission->save()) {
         //Detach permission from every role, then add the permission to the selected roles
         $currentRoles = $this->roles->getAllRoles();
         foreach ($currentRoles as $role) {
             $role->detachPermission($permission);
         }
         if (count($roles['permission_roles']) > 0) {
             //For each role, load role, collect perms, add perm to perms, flush perms, read perms
             foreach ($roles['permission_roles'] as $role_id) {
                 //Get the role, with permissions
                 $role = $this->roles->findOrThrowException($role_id, true);
                 //Get the roles permissions into an array
                 $role_permissions = $role->permissions->lists('id')->all();
                 if (count($role_permissions) >= 1) {
                     //Role has permissions, gather them first
                     //Add this new permission id to the role
                     array_push($role_permissions, $permission->id);
                     //For some reason the lists() casts as a string, convert all to int
                     $role_permissions_temp = array();
                     foreach ($role_permissions as $rp) {
                         array_push($role_permissions_temp, (int) $rp);
                     }
                     $role_permissions = $role_permissions_temp;
                     //Sync the permissions to the role
                     $role->permissions()->sync($role_permissions);
                 } else {
                     //Role has no permissions, add the 1
                     $role->permissions()->sync([$permission->id]);
                 }
             }
         }
         //Add the dependencies of this permission if any
         if (isset($input['dependencies']) && count($input['dependencies'])) {
             //Remove all current dependencies
             $this->dependencies->clear($permission->id);
             //Add the currently checked dependencies
             foreach ($input['dependencies'] as $dependency_id) {
                 $this->dependencies->create($permission->id, $dependency_id);
             }
         } else {
             $this->dependencies->clear($permission->id);
         }
         return true;
     }
     throw new GeneralException(trans('exceptions.backend.access.permissions.update_error'));
 }
Пример #4
0
 /**
  * @param  $id
  * @param  EditUserRequest $request
  * @return mixed
  */
 public function edit($id, EditUserRequest $request)
 {
     $user = $this->users->findOrThrowException($id, true);
     return view('backend.access.edit')->withUser($user)->withUserRoles($user->roles->lists('id')->all())->withRoles($this->roles->getAllRoles('sort', 'asc', true))->withUserPermissions($user->permissions->lists('id')->all())->withPermissions($this->permissions->getAllPermissions());
 }
Пример #5
0
 /**
  * @param  $id
  * @param  EditPermissionRequest $request
  * @return mixed
  */
 public function edit($id, EditPermissionRequest $request)
 {
     $permission = $this->permissions->findOrThrowException($id, true);
     return view('backend.access.roles.permissions.edit')->withPermission($permission)->withPermissionRoles($permission->roles->lists('id')->all())->withGroups($this->groups->getAllGroups(true))->withRoles($this->roles->getAllRoles())->withPermissions($this->permissions->getAllPermissions())->withPermissionDependencies($permission->dependencies->lists('dependency_id')->all());
 }
 /**
  * @param  Role $role
  * @param  ManageRoleRequest $request
  * @return mixed
  */
 public function destroy(Role $role, ManageRoleRequest $request)
 {
     $this->roles->destroy($role);
     return redirect()->route('admin.access.role.index')->withFlashSuccess(trans('alerts.backend.roles.deleted'));
 }
 /**
  * @param User $user
  * @param ManageUserRequest $request
  * @return mixed
  */
 public function edit(User $user, ManageUserRequest $request)
 {
     return view('backend.access.edit')->withUser($user)->withUserRoles($user->roles->lists('id')->all())->withRoles($this->roles->getAllRoles('sort', 'asc', true));
 }