/**
  * 更新管理型用户
  *
  * @param  App\Models\User $manager
  * @param  array $inputs
  * @return void
  */
 private function updateManager($manager, $inputs)
 {
     $manager->nickname = e($inputs['nickname']);
     $manager->realname = e($inputs['realname']);
     $manager->is_lock = e($inputs['is_lock']);
     if (!empty($inputs['password']) && !empty($inputs['password_confirmation'])) {
         $manager->password = bcrypt(e($inputs['password']));
     }
     if ($manager->save()) {
         //确保一个管理型用户只拥有一个角色
         $roles = $manager->roles;
         if ($roles->isEmpty()) {
             //判断角色结果集是否为空
             $manager->roles()->attach($inputs['role']);
             //空角色,则直接同步角色
         } else {
             if (is_array($roles)) {
                 //如果为对象数组,则表明该管理用户拥有多个角色
                 //则删除多个角色,再同步新的角色
                 $manager->detachRoles($roles);
                 $manager->roles()->attach($inputs['role']);
                 //同步角色
             } else {
                 if ($roles->first()->id !== $inputs['role']) {
                     $manager->detachRole($roles->first());
                     $manager->roles()->attach($inputs['role']);
                     //同步角色
                 }
             }
         }
         //上面这一大段代码就是保证一个管理型用户只拥有一个角色
         //Entrust扩展包自身是支持一个用户拥有多个角色的,但在本内容管理框架系统中,限定一个用户只能拥有一个角色
     }
 }
 /**
  * Store a newly created resource in storage.
  *
  * @param  \Illuminate\Http\Request  $request
  * @return \Illuminate\Http\Response
  */
 public function store(Request $request)
 {
     //
     $person = new User();
     $person->first_name = $request->input('first-name');
     $person->last_name = $request->input('last-name');
     $person->email = $request->input('work-email');
     $person->personal_email = $request->input('personal-email');
     $person->password = Hash::make(uniqid());
     $person->address1 = $request->input('address-one');
     $person->address2 = $request->input('address-two');
     $person->zip = $request->input('postcode');
     $person->city = $request->input('city');
     $person->state = $request->input('state');
     $person->country = $request->input('country');
     $person->dob = Carbon::createFromFormat('d/m/Y', $request->input('dob'))->toDateString();
     $person->work_telephone = $request->input('work-telephone');
     $person->personal_telephone = $request->input('personal-telephone');
     $person->gender = $request->input('gender');
     $person->save();
     // Placeholder face until one is submitted
     $path = 'people/' . $person->id . '/face.jpg';
     \Illuminate\Support\Facades\Storage::put($path, file_get_contents('http://api.adorable.io/avatar/400/' . md5($person->id . $person->email . Carbon::now()->getTimestamp()) . ''));
     $person->save();
     // Default job position
     $person->jobPositions()->attach(1, ['primary' => true]);
     // Default role
     $person->roles()->attach(1, ['primary' => true]);
     return redirect()->intended('/people/');
 }
 public function update(User $user, UserRequest $request)
 {
     $user->update($request->all());
     $user->roles()->sync($request->input('roleList'));
     Flash::success(trans('general.updated_msg'));
     return redirect(route('admin.users'));
 }
 public function setupFoundorAndBaseRolsPermission()
 {
     // Create Roles
     $founder = new Role();
     $founder->name = 'Founder';
     $founder->save();
     $admin = new Role();
     $admin->name = 'Admin';
     $admin->save();
     // Create User
     $user = new User();
     $user->username = '******';
     $user->display_name = 'Admin';
     $user->email = '*****@*****.**';
     $user->password = '******';
     if (!$user->save()) {
         Log::info('Unable to create user ' . $user->username, (array) $user->errors());
     } else {
         Log::info('Created user "' . $user->username . '" <' . $user->email . '>');
     }
     // Attach Roles to user
     $user->roles()->attach($founder->id);
     // Create Permissions
     $manageContent = new Permission();
     $manageContent->name = 'manage_contents';
     $manageContent->display_name = 'Manage Content';
     $manageContent->save();
     $manageUsers = new Permission();
     $manageUsers->name = 'manage_users';
     $manageUsers->display_name = 'Manage Users';
     $manageUsers->save();
     // Assign Permission to Role
     $founder->perms()->sync([$manageContent->id, $manageUsers->id]);
     $admin->perms()->sync([$manageContent->id]);
 }
Example #5
0
 /**
  * Register a user
  *
  * @param  Request  $request
  * @return Response
  */
 public function signUp(Request $request)
 {
     if (intval(getenv('APP_PHASE')) < 2) {
         return ['error' => 'applications are not open'];
     }
     $validator = Validator::make($request->all(), ['first_name' => 'required', 'last_name' => 'required', 'email' => 'required|email|unique:users', 'password' => 'required']);
     if ($validator->fails()) {
         return $validator->errors()->all();
     } else {
         $user = new User();
         $user->first_name = $request['first_name'];
         $user->last_name = $request['last_name'];
         $user->password = Hash::make($request['password']);
         $user->email = $request['email'];
         $user->save();
         $user->postSignupActions();
         // Attach roles
         $roles = $user->roles()->get()->lists('name');
         $token = JWTAuth::fromUser($user, ['exp' => strtotime('+1 year'), 'roles' => $roles, 'slug' => $user->slug()]);
         Mail::send('emails.welcome', ['user' => $user], function ($message) use($user) {
             $message->from('*****@*****.**', 'Laravel');
             $message->to($user->email);
         });
         return compact('token');
     }
 }
 /**
  * Execute the job.
  * @return String
  * @internal param Role $role
  */
 public function handle()
 {
     $this->user->update($this->data->except('newsletter')->toArray());
     $this->user->setAttribute('newsletter', filter_var($this->data->get('newsletter', false), FILTER_VALIDATE_BOOLEAN));
     foreach ($this->association as $key => $value) {
         if ($value != '') {
             if ($key == 'role_id') {
                 $this->user->roles()->sync(array($value));
             } else {
                 $this->user->setAttribute($key, $value);
             }
         }
     }
     $this->user->save();
     event(new UserWasUpdated($this->user));
     return $this->user;
 }
Example #7
0
 public function doAdd(Request $request)
 {
     $user_form = $request->get('user');
     $user = new User();
     $user->fill($user_form);
     $user->password = Hash::make($user_form['password']);
     $user->faculty_id = $user_form["faculty_id"];
     $user->save();
     $user->roles()->sync($user_form["role_ids"]);
     return redirect('/backend/user');
 }
 public function createByVkData($vkData)
 {
     $user = new User();
     $user->provider_id = $vkData['uid'];
     $user->name = $vkData['first_name'] . ' ' . $vkData['last_name'];
     $user->screen_name = $vkData['screen_name'];
     $user->save();
     $user->roles()->attach(Role::getDefaultRole());
     copy($vkData['photo_big'], public_path() . '/img/avatars/users/' . $user->id . '.jpg');
     return $user;
 }
 /**
  * Adds an user
  *
  * @param AddUserRequest $request
  * @return \Illuminate\Http\RedirectResponse
  */
 public function postAdd(AddUserRequest $request)
 {
     $user = new User();
     $user->changeProfile($request);
     $user->roles()->attach($request->input('roles'));
     $user->changeSettings($request);
     if ($request->file('avatar')) {
         $user->changeAvatar($request);
     }
     $user->save();
     User::flushCache($user);
     flash()->success(trans('users.add_success'));
     return redirect()->back();
 }
Example #10
0
 /**
  * Execute the job.
  *
  * @throws CannotRemoveRolesException
  *
  * @return bool
  */
 public function handle()
 {
     $this->user->name = $this->request->input('name', $this->user->name);
     $this->user->email = $this->request->input('email');
     $password = $this->request->input('password');
     // Verify before changing the users password that it's not empty.
     if (!empty($password)) {
         // If the user doesn't have a set password mutator,
         // we'll encrypt the password.
         if (!$this->user->hasSetMutator('password')) {
             $password = bcrypt($password);
         }
         $this->user->password = $password;
     }
     // Retrieve the administrators name.
     $adminName = Role::getAdministratorName();
     $roles = $this->request->input('roles', []);
     // Retrieve all administrator users.
     $administrators = $this->user->whereHas('roles', function (Builder $builder) use($adminName) {
         $builder->whereName($adminName);
     })->get();
     // Retrieve the administrator role.
     $admin = Role::whereName($adminName)->first();
     // We need to verify that if the user is trying to remove all roles on themselves,
     // and they are the only administrator, that we throw an exception notifying them
     // that they can't do that. Though we want to allow the user to remove the
     // administrator role if more than one administrator exists.
     if (count($roles) === 0 && $this->user->hasRole($admin) && $this->user->getKey() === auth()->user()->getKey() && count($administrators) === 1) {
         throw new CannotRemoveRolesException("Unable to remove the administrator role. You're the only administrator.");
     }
     if ($this->user->save()) {
         $this->user->roles()->sync($roles);
         return true;
     }
     return false;
 }
 public function storeUser($request)
 {
     $user = new User();
     //find a new api_token
     $token = "";
     do {
         $token = str_random(60);
     } while (User::where("api_token", "=", $token)->first() instanceof User);
     $user->api_token = $token;
     $user->name = $request->name;
     $user->email = $request->email;
     $user->password = bcrypt($request->password);
     $result = $user->save();
     $roles = array_flatten($request->roles);
     $user->roles()->attach($roles);
     return $result;
 }
 private function createUserFromSoap($username, $password)
 {
     $infoResult = $this->getUserInfoFromSoap($username, $password);
     $user = new User();
     $user->username = $username;
     $user->title = $infoResult->Title;
     $user->firstname = $infoResult->FirstName_TH;
     $user->lastname = $infoResult->LastName_TH;
     $user->email = $username . "@up.ac.th";
     //        $user->save();
     $faculty = Faculty::where('name_th', '=', $infoResult->Faculty)->first();
     if ($faculty) {
         $user->faculty_id = $faculty->id;
     }
     $user->save();
     $role = Role::where('key', '=', 'researcher')->first();
     $user->roles()->attach($role->id);
     $user->faculty;
     return $user;
 }
Example #13
0
 public function save()
 {
     $chk = User::where("email", "=", Input::get('email'))->first();
     if (empty($chk)) {
         $user = new User();
         $user->first_name = Input::get('first_name');
         $user->last_name = Input::get('last_name');
         $user->email = Input::get('email');
         $user->password = Hash::make(Input::get('password'));
         $user->user_type = 1;
         $user->save();
         if (!empty(Input::get('roles'))) {
             $user->roles()->sync([Input::get('roles')]);
         }
         return redirect()->route('admin.systemusers.view');
     } else {
         Session::flash("usenameError", "Username already exist");
         return redirect()->back();
     }
 }
 public function run()
 {
     $faker = Faker\Factory::create();
     $user = new User();
     $user->username = '******';
     $user->password = Hash::make('admin');
     $user->email = '*****@*****.**';
     $user->deleted_at = null;
     $user->confirmed_at = \Carbon\Carbon::now();
     $user->save();
     $user->roles()->save(Role::find(1));
     for ($i = 0; $i < 50; $i++) {
         $user = new User();
         $user->username = $faker->userName;
         $user->password = Hash::make('password');
         $user->email = $faker->safeEmail;
         $user->deleted_at = null;
         $user->confirmed_at = \Carbon\Carbon::now();
         $user->save();
         $user->roles()->save(Role::find(2));
     }
 }
 /**
  * Adds an user
  *
  * @param AddUserRequest $request
  *
  * @return \Illuminate\Http\RedirectResponse
  */
 public function postAdd(AddUserRequest $request)
 {
     $user = new User();
     $user->changeProfile($request);
     $user->roles()->attach($request->input('roles'));
     $user->changeSettings($request);
     if ($request->file('avatar') && Settings::get('use_avatars')) {
         $response = Icr::uploadImage($request->file('avatar'), 'avatar');
         if ($response instanceof \Exception) {
             flash()->error($response->getMessage());
             return redirect()->back();
         }
         $user->changeAvatar($response);
     }
     $user->save();
     User::flushCache($user);
     flash()->success(trans('users.add_success'));
     return redirect()->back();
 }
 /**
  * Store a newly created resource in storage.
  *
  * @return Response
  */
 public function store()
 {
     $rules = ['lastname' => 'string|min:1|max:255', 'firstname' => 'string|min:1|max:255', 'active' => 'boolean', 'email' => 'required|email', 'password' => 'required|min:8|max:255', 'roles' => 'array|integerInArray|existsInArray:role,id'];
     $validator = Validator::make(Input::only(array_keys($rules)), $rules);
     if ($validator->fails()) {
         throw new ResourceException($validator->errors()->first());
     }
     $user = new User();
     $fields = ['active', 'email', 'password'];
     foreach ($fields as $key => $field) {
         if (Input::has($field)) {
             $user->{$field} = Input::get($field);
         }
     }
     //field which can null/empty string
     $fields = ['lastname', 'firstname'];
     foreach ($fields as $key => $field) {
         if (Input::get($field) === '') {
             $user->{$field} = null;
         } elseif (Input::has($field)) {
             $user->{$field} = Input::get($field);
         }
     }
     $user->save();
     $user->roles()->sync(Input::get('roles', []));
     return $this->show($user->id);
 }
Example #17
0
 /**
  * Assign roles to user
  * 
  * @param UserModel $user
  * @param array $roles
  * @return void
  */
 public function assignRolesToUser(UserModel $user, $roles = [])
 {
     // first we'll disassociate all roles
     $user->detachRoles($user->roles);
     // now we'll re-associate as needed
     if ($roles) {
         $user->roles()->sync($roles);
     }
 }
Example #18
0
 /**
  * Update the specified resource in storage.
  *
  * @param User $user
  * @param Requests\UserRequest $request
  * @return \Illuminate\Http\RedirectResponse
  */
 public function update(User $user, Requests\UserRequest $request)
 {
     $data = $request->all();
     // If no one checkbox was checked we need to set 'roleCheck' as empty array to avoid error
     if (!array_key_exists('roleCheck', $data)) {
         $data['roleCheck'] = [];
     }
     if ($user->update($data)) {
         $user->roles()->sync($data['roleCheck']);
         \ProfileService::updateProfile($request, $user->profile);
     }
     \Session::flash('message', 'Пользователь обновлен');
     $page = $request->page;
     return redirect($page);
 }