示例#1
0
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     $user_role = new UserRole();
     $user_role->role = 'User';
     $user_role->save();
     $user_role = new UserRole();
     $user_role->role = 'Admin';
     $user_role->save();
 }
示例#2
0
 /**
  * Add roles for new user
  *
  * @param $userId
  * @param $selectedRoles
  * @throws \Exception
  */
 public function addRoles($userId, $selectedRoles)
 {
     try {
         foreach ($selectedRoles as $key => $id) {
             $this->model->create(['user_id' => $userId, 'role_id' => $id]);
         }
     } catch (\Exception $e) {
         throw $e;
     }
 }
 public function testAuthState_authStateAccurateForLoggedInStateWithActing()
 {
     $role = UserRole::where('name', '=', UserRole::ACTOR_ROLE)->first();
     $user = factory(App\Models\User::class, 1)->create();
     $user->password = '******';
     $user->save();
     $user2 = factory(App\Models\User::class, 1)->create();
     $user2->password = '******';
     $user2->save();
     $user->roles()->attach($role);
     App::bindShared('oauth2-server.authorizer', function () use($user) {
         $mock = Mockery::mock(\LucaDegasperi\OAuth2Server\Authorizer::class);
         $mock->shouldReceive('getResourceOwnerId')->andReturn($user->id);
         $mock->shouldReceive('getResourceOwnerType')->andReturn("user");
         return $mock;
     });
     Input::merge(array('access_token' => 'random_token'));
     Input::merge(array('act_as' => $user2->id));
     $adapter = App::make(APIAdapter::class);
     $state = $adapter->getAuthState();
     $this->assertFalse($state->rememberMe);
     $this->assertEquals($user->id, $state->userId);
     $this->assertEquals($user2->id, $state->actingUserId);
     $this->assertEquals(APIAdapter::AUTH_MECHANISM, $state->authMechanism);
 }
示例#4
0
 /**
  * Update user account information
  *
  * @param $request
  * @return bool
  */
 public function updateUser($request)
 {
     $redirect = false;
     $errorMsg = '';
     // Start transaction
     DB::beginTransaction();
     // Create new user
     try {
         $userId = $request->get('user_id');
         // Update user info
         $user = $this->model->find($userId);
         $update = $user->update(['first_name' => $request->get('first_name'), 'last_name' => $request->get('last_name'), 'email' => $request->get('email'), 'active' => $request->get('active'), 'password' => bcrypt($request->get('password'))]);
         // Remove all existing roles for user
         if (isset($user->id)) {
             $user->roles()->delete();
         }
         // Update user roles
         $newRoles = explode(',', $request->get('role'));
         if (count($newRoles) > 0) {
             foreach ($newRoles as $key => $value) {
                 $this->userRoleModel->create(['user_id' => $userId, 'role_id' => $value]);
             }
         }
     } catch (\Exception $e) {
         $errorMsg = $e->getMessage();
         $redirect = true;
     } catch (QueryException $e) {
         $errorMsg = $e->getErrors();
         $redirect = true;
     } catch (ModelNotFoundException $e) {
         $errorMsg = $e->getErrors();
         $redirect = true;
     }
     // Redirect if errors
     if ($redirect) {
         // Rollback
         DB::rollback();
         // Log specific technical message
         Tools::log($errorMsg, array_except($request->all(), ['_token', 'created_from', 'created_to', 'password', 'password_confirmation']));
         return false;
     }
     // Commit all changes
     DB::commit();
     return true;
 }
 public function testAuthState_authStateAccurateForLoggedInStateWithActing()
 {
     $role = UserRole::where('name', '=', UserRole::ACTOR_ROLE)->first();
     $user = factory(App\Models\User::class, 1)->create();
     $user->password = '******';
     $user->save();
     $user2 = factory(App\Models\User::class, 1)->create();
     $user2->password = '******';
     $user2->save();
     $user->roles()->attach($role);
     Auth::attempt(['username' => $user->username, 'password' => 'password']);
     Acting::asUser($user2);
     $adapter = new WebsiteAdapter();
     $state = $adapter->getAuthState();
     $this->assertFalse($state->rememberMe);
     $this->assertEquals($user->id, $state->userId);
     $this->assertEquals($user2->id, $state->actingUserId);
     $this->assertEquals(WebsiteAdapter::AUTH_MECHANISM, $state->authMechanism);
 }
示例#6
0
 public function getUserRole()
 {
     return $this->hasOne(UserRole::className(), ['user_id' => 'user_id']);
 }
示例#7
0
文件: xUserBase.php 项目: poykub/wph
 public function getArole()
 {
     return $this->hasOne(UserRole::className(), ['role_id' => 'role']);
 }
 /**
  * Handles user edit
  *
  * @param EditUserRequest $request
  * @param int $id User id
  * @return \Illuminate\Http\RedirectResponse
  */
 public function putEdit(EditUserRequest $request, $id)
 {
     $user = User::find($id);
     $user->changeProfile($request);
     if ($user->hasRole('admin') && count($user->getAdmins(false, true)) <= 1 && (!in_array(1, $request->input('roles')) || !$request->input('active'))) {
         flash()->error(trans('users.can_not_edit'));
         return redirect()->back();
     } else {
         UserRole::where('user_id', $user->id)->delete();
         $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.edit_success'));
     return redirect()->back();
 }
示例#9
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getUserRoles()
 {
     return $this->hasMany(UserRole::className(), ['user_id' => 'id']);
 }
示例#10
0
 public function _indexAudittrail()
 {
     $userRole = UserRole::where(['ACTIVE' => 1])->get(['ID', 'NAME']);
     $filterGroups = array('productionFilterGroup' => [], 'dateFilterGroup' => array(['id' => 'date_begin', 'name' => 'From Date'], ['id' => 'date_end', 'name' => 'To Date']), 'frequenceFilterGroup' => [['name' => 'IntObjectType', 'default' => ['ID' => 0, 'NAME' => 'All']]], 'enableSaveButton' => false);
     return view('admin.audittrail', ['filters' => $filterGroups, 'userRole' => $userRole]);
 }
示例#11
0
文件: User.php 项目: hunglmtb/eb
 public function hasRole($roleCode)
 {
     if ($this->ID) {
         $user_user_role = UserUserRole::getTableName();
         $user_role = UserRole::getTableName();
         $rows = UserUserRole::join($user_role, "{$user_user_role}.ROLE_ID", '=', "{$user_role}.ID")->where([$user_role . ".CODE" => $roleCode, $user_user_role . ".USER_ID" => $this->ID])->select($user_role . ".CODE")->distinct()->get();
         if (count($rows) > 0) {
             return true;
         } else {
             return false;
         }
     }
     return false;
 }
 public function run()
 {
     foreach ($this->roles as $roleName) {
         UserRole::create(['name' => $roleName]);
     }
 }
示例#13
0
 /**
  * Edit user
  *
  * @param Request $request
  * @param $id
  * @return \Illuminate\Contracts\View\Factory|\Illuminate\Http\RedirectResponse|\Illuminate\View\View
  */
 public function edit(Request $request, $id)
 {
     $user = User::getUserById($id);
     if (!empty($user)) {
         if ($request->isMethod('post')) {
             $rules = ['first_name' => 'required', 'last_name' => 'required', 'position' => 'required', 'type' => 'required', 'phone' => 'phone:AM', 'username' => 'required|unique:users,username,' . $id, 'email' => 'required|email|unique:users,email,' . $id, 'pass' => 'min:6|max:12', 'pass_confirmation' => 'min:6|max:12|same:pass', 'image' => 'mimes:jpeg,jpg,png'];
             Validator::make($request->all(), $rules)->validate();
             $user->first_name = $request->input('first_name');
             $user->last_name = $request->input('last_name');
             $user->position = $request->input('position');
             $user->role_id = $request->input('type');
             if ($request->has('phone')) {
                 $user->phone = $request->input('phone');
             }
             if (!empty($request->file("image"))) {
                 if (!empty($user->image)) {
                     if (Storage::exists('uploads/' . $user->image)) {
                         Storage::delete('uploads/' . $user->image);
                     }
                 }
                 $generated_string = str_random(32);
                 $file = $request->file("image")->store('uploads');
                 $new_file = $generated_string . '.' . $request->file("image")->getClientOriginalExtension();
                 Storage::move($file, 'uploads/' . $new_file);
                 $img = Image::make($request->file('image'));
                 $img->crop(200, 200);
                 $img->save(storage_path('app/public/uploads/' . $new_file));
                 $user->image = $new_file;
             }
             $user->username = $request->input('username');
             $user->email = $request->input('email');
             $user->notification = $request->has('notification');
             if ($request->has('pass')) {
                 $user->password = Hash::make($request->input('pass'));
             }
             $user->approve = 1;
             $user->save();
             $notifications = Notification::getNotificationBySenderId($user->id);
             foreach ($notifications as $notification) {
                 $notification->delete();
             }
             $notifications = Notification::getNotificationByReaderId($user->id);
             foreach ($notifications as $notification) {
                 $notification->delete();
             }
             if ($user->role_id == 1) {
                 $notification = new Notification();
                 $notification->from = 1;
                 $notification->to = $user->id;
                 $notification->type = 1;
                 $notification->save();
             }
             return redirect()->route('approved_users');
         } else {
             $user_roles = UserRole::getRoles();
             return view('admin.user.edit', compact('user', 'user_roles'));
         }
     } else {
         return redirect()->back();
     }
 }