/** * @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; }
/** * @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')); }
/** * @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()); }
/** * @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)); }