Inheritance: extends yii\db\ActiveRecord, implements yii\web\IdentityInterface
Esempio n. 1
2
 /**
  * Anlegen eines Benutzers
  * 
  * @return \yii\web\View
  * @author KAS <*****@*****.**> 28.07.2015
  */
 public function actionCreate()
 {
     Yii::$app->view->params['headline'] = 'Benutzer anlegen';
     $model = new User();
     //----------------------------------------------------------------------
     $post = \Yii::$app->request->post();
     if ($model->load($post)) {
         $authArr = [];
         foreach ($post['Auth'] as $authData) {
             $authArr[] = new Auth($authData);
         }
         // Daten Validieren und Zuordnen -----------------------------------
         if (Model::loadMultiple($authArr, $post) && Model::validateMultiple($authArr)) {
             // aus den Auth Objekten machen wir arrays,
             // damit wir das in die Mongo speichern können
             $model->auth = array_map(function ($a) {
                 return $a->toArray();
             }, $authArr);
             // Speichern ---------------------------------------------------
             $model->save();
             // Benutzer benachrichtigen ------------------------------------
             \Yii::$app->session->setFlash('success', 'Benutzer wurde erfolgreich angelegt!', TRUE);
             // Neue Daten laden, da wir in den Models Veränderungen vornehmen
             $model->refresh();
         }
     }
     // Defaultwerte festlegen ----------------------------------------------
     $model->created_at = new \MongoDate();
     $model->updated_at = new \MongoDate();
     $model->role = "Normal";
     //----------------------------------------------------------------------
     return $this->render('create', ['model' => $model]);
 }
Esempio n. 2
0
 protected function login($instance)
 {
     if ($instance->getEmail()) {
         $user = User::where('email', $instance->getEmail());
     } else {
         return view('site.login', ['msg' => 'The email address you used is not public. please try another login method']);
     }
     if ($user->exists()) {
         $user = $user->first();
         $updateUser = User::where('id', $user->id)->update(['image' => $instance->getAvatar()]);
         if (Auth::loginUsingId($user->id)) {
             return true;
         }
     } else {
         $pwd = explode('@', $instance->getEmail());
         $pwd = Hash::make($pwd[0] . uniqid());
         $newUser = new User();
         $newUser->name = $instance->getName();
         $newUser->email = $instance->getEmail();
         $newUser->image = $instance->getAvatar();
         $newUser->password = $pwd;
         $newUser->status = 0;
         $newUser->role = 'user';
         if ($newUser->save()) {
             Event::fire(new NewUserEvent($newUser));
             if (Auth::loginUsingId($newUser->id)) {
                 return true;
             }
         }
     }
 }
Esempio n. 3
0
 public function loginAction()
 {
     if (!is_null($this->session->getCurrentUser())) {
         $this->redirect('/');
     }
     if (is_null($this->request->getPost('user')) || is_null($this->request->getPost('password'))) {
         throw new LoginException('Неверные данные формы авторизации.');
     }
     $user = addslashes(trim(strip_tags($this->request->getPost('user'))));
     $password = addslashes(trim(strip_tags($this->request->getPost('password'))));
     $usersModel = new Users();
     try {
         $currentUser = $usersModel->getUsersDataByLogPass($user, $password);
     } catch (\Exception $e) {
         throw new LoginException($e->getMessage());
     }
     if ($currentUser['roles_id'] == self::BANNED) {
         throw new LoginException('Доступ временно запрещен. Обратитесь к администратору.');
     }
     unset($currentUser['password']);
     $userObj = new User();
     $userObj->fillData($currentUser);
     $this->session->setCurrentUser($userObj);
     echo json_encode(array('location' => '/'));
     exit;
 }
Esempio n. 4
0
 public function actionDel()
 {
     $id = $_REQUEST['id'];
     $model = new User();
     $status = $model->getDel(['_id' => $id]);
     return $status;
 }
 /**
  * Removes the specified permission from the specified user.
  *
  * @param int|string $userId
  * @param int|string $permissionId
  *
  * @return int
  */
 public function destroy($userId, $permissionId)
 {
     $this->authorize('admin.users.permissions.destroy');
     $user = $this->user->findOrFail($userId);
     $permission = $user->permissions()->findOrFail($permissionId);
     return $user->permissions()->detach($permission);
 }
Esempio n. 6
0
 /**
  * Signs user up.
  *
  * @return User|null the saved model or null if saving fails
  */
 public function signup()
 {
     if ($this->validate()) {
         $user = new User();
         $user->username = $this->username;
         $user->email = $this->email;
         $user->setPassword($this->password);
         $user->generateAuthKey();
         $user->mobile = $this->mobile;
         $user->user_extra1 = $this->user_extra1;
         //上传用户信息图片, 多文件上传, 最多2张图
         $tmpStr2 = "";
         $this->files = UploadedFile::getInstances($this, 'files');
         foreach ($this->files as $file) {
             //$user->files = UploadedFile::getInstances($user, 'files');
             //foreach ($user->files as $file)
             //{
             $targetFileId = date("YmdHis") . '-' . uniqid();
             $ext = pathinfo($file->name, PATHINFO_EXTENSION);
             $targetFileName = "{$targetFileId}.{$ext}";
             $targetFile = Yii::getAlias('@webroot') . DIRECTORY_SEPARATOR . SignupForm::PHOTO_PATH . DIRECTORY_SEPARATOR . $targetFileName;
             $file->saveAs($targetFile);
             //$tmpStr2 =  $tmpStr2 . "{$targetFile};";
             $tmpStr2 = $tmpStr2 . "/user/photo/{$targetFileName};";
         }
         $user->user_extra2 = $tmpStr2;
         if ($user->save()) {
             return $user;
         }
     }
     return null;
 }
Esempio n. 7
0
 public function actionRegister()
 {
     if (!\Yii::$app->user->isGuest) {
         return $this->goHome();
     }
     $model = new RegisterForm();
     $request = Yii::$app->request;
     $post = $request->post();
     if (isset($post)) {
         $model->attributes = $request->post('RegisterForm');
         if ($model->validate()) {
             //create user in DB
             $user = new User();
             $user->username = $model->username;
             $user->password = $model->password;
             $user->no_login = 0;
             $user->save();
             //perform login
             $login = new LoginForm();
             $login->username = $user->username;
             $login->password = $user->password;
             $login->login();
             return $this->goHome();
         }
     }
     return $this->render('register', ['model' => $model]);
 }
Esempio n. 8
0
 protected function login($instance)
 {
     $user = User::where('email', $instance->getEmail());
     if ($user->exists()) {
         $user = $user->first();
         $updateUser = User::where('id', $user->id)->update(['image' => $instance->getAvatar()]);
         if (Auth::loginUsingId($user->id)) {
             return true;
         }
     } else {
         $pwd = explode('@', $instance->getEmail());
         $pwd = Hash::make($pwd[0] . uniqid());
         $newUser = new User();
         $newUser->name = $instance->getName();
         $newUser->email = $instance->getEmail();
         $newUser->image = $instance->getAvatar();
         $newUser->password = $pwd;
         $newUser->status = 0;
         $newUser->role = 'user';
         if ($newUser->save()) {
             if (Auth::loginUsingId($newUser->id)) {
                 return true;
             }
         }
     }
 }
Esempio n. 9
0
 public function manage(User $user, Project $project)
 {
     //dd($project);
     //return true;
     //dd( $user->role( 'admin' ));
     return $project->hasUser($user->id) || $user->role('admin');
 }
Esempio n. 10
0
 public static function withdrawPaypalPrepare(User $user, $paypalEmail, $amount)
 {
     $withdrawal = Withdrawal::create(['user_id' => $user->id, 'merchant' => 'paypal', 'account' => $paypalEmail, 'amount' => $amount, 'currency' => 'USD', 'status' => 'waiting', 'transaction_number' => '']);
     $user->balance_blocked = $user->balance_blocked + $amount;
     $user->save();
     return $withdrawal;
 }
Esempio n. 11
0
 /**
  * @param \nodge\eauth\ServiceBase $service
  * @return User
  * @throws ErrorException
  */
 public static function findByEAuth($service)
 {
     if (!$service->getIsAuthenticated()) {
         throw new ErrorException('EAuth user should be authenticated before creating identity.');
     }
     $service_id = $service->getServiceName() . '-' . $service->getId();
     // find user auth
     $user_auth = AuthRecords::find()->where(["id" => $service_id])->one();
     // make new auth record and create user
     if (!isset($user_auth->user_id)) {
         $attributes = $service->getAttributes();
         $nameFromService = isset($attributes['name']) ? $attributes['name'] : null;
         // add user
         $model = new User();
         $model->username = $nameFromService ? $nameFromService : $service_id;
         $model->auth_key = md5($service_id);
         // set default pass for direct account access
         $password = $model->generatePass();
         $model->password_hash = Yii::$app->security->generatePasswordHash($password);
         $model->save();
         $user_id = $model->id;
         // add auth
         $new_auth = new AuthRecords();
         $new_auth->id = $service_id;
         $new_auth->user_id = $user_id;
         $new_auth->attributes = serialize($service->getAttributes());
         $new_auth->save();
     } else {
         $user_id = $user_auth->user_id;
     }
     return user::findIdentity($user_id);
 }
Esempio n. 12
0
 /**
  * Execute the console command.
  *
  * @return mixed
  */
 public function handle()
 {
     $this->comment('欢迎使用drip, 现在我将引导您创建一个用户:');
     $data = [];
     $data['username'] = trim($this->ask('请输入您要使用的用户名'));
     $data['email'] = trim($this->ask('请输入您的电子邮箱'));
     $data['password'] = trim($this->ask('请输入您的密码,位数不得低于6位'));
     $data['password_confirmation'] = trim($this->ask('请再次确认您的密码'));
     if ($data['password'] !== $data['password_confirmation']) {
         return $this->error('两次密码输入不一致');
     }
     $validator = \Validator::make($data, ['username' => 'required|unique:users,username|max:32', 'email' => 'required|email|unique:users,email|max:191', 'password' => 'required|min:6|confirmed']);
     if ($validator->fails()) {
         foreach ($validator->errors()->all() as $field => $error) {
             $this->error($error);
         }
         return false;
     }
     $user = new User();
     $user->username = $user->nickname = $data['username'];
     $user->email = $data['email'];
     $user->password = bcrypt($data['password']);
     $user->status = User::STATUS_ACTIVE;
     if ($user->save()) {
         return $this->comment('创建用户成功, 您的用户ID为' . $user->id);
     }
     return $this->error('创建用户失败');
 }
Esempio n. 13
0
 public function actionSignup()
 {
     $post = Application::request()->post();
     $warning = '';
     if (sizeof($post) > 0) {
         $model = new User();
         $model->load($post);
         $validation = $model->validate();
         if ($validation) {
             $user_id = $model->save();
             if ($user_id) {
                 Application::Identity()->signin($user_id);
                 $this->redirect('/search');
             } else {
                 $warning = 'Error adding row to DB';
             }
         } else {
             $warning = 'Please enter correct fields values';
         }
     }
     if (!Application::Identity()->check()) {
         $this->render('signup.html', ['salt' => Helper::generateCode(15), 'warning' => $warning]);
     } else {
         $this->redirect('/search');
     }
 }
Esempio n. 14
0
 public function actionInit()
 {
     $model = new User();
     $model->username = '******';
     $model->auth_key = 'OocVKRx-iludROmUFYj4HmxNeC8v0-FG';
     $model->password_hash = '$2y$13$0d3FeUDYGSyZft.3I77hV.E357FsqqAJFqaWPstWODMbdlSvxV2gC';
     $model->email = '*****@*****.**';
     $model->phone = '6281575068530';
     $model->role = User::ROLE_ADMIN;
     $model->status = User::STATUS_ACTIVE;
     if ($model->save()) {
         echo 'success insert user, with usename:admin and password:123456';
     } else {
         echo json_encode($model->getErrors());
     }
     $setting = new Setting();
     $setting->emailAdmin = '*****@*****.**';
     $setting->emailSupport = '*****@*****.**';
     $setting->emailOrder = '*****@*****.**';
     $setting->facebook = 'https://www.facebook.com/sintret';
     $setting->instagram = 'https://instagram.com/andyfitria/';
     $setting->google = 'https://google.com/sintret/';
     if ($setting->save()) {
         echo "\r\n success insert basic settings";
     } else {
         echo json_encode($setting->getErrors());
     }
 }
Esempio n. 15
0
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     $user_1 = new User();
     $user_1->name = 'tech';
     $user_1->email = '*****@*****.**';
     $user_1->password = \Hash::make('tech1234');
     $user_1->phone = '082214250262';
     $user_1->jabatan = 'Technical Administrator';
     $user_1->save();
     $user_2 = new User();
     $user_2->name = 'admin';
     $user_2->email = '*****@*****.**';
     $user_2->password = \Hash::make('admin1234');
     $user_2->phone = '082214250262';
     $user_2->jabatan = 'Management Administrator';
     $user_2->save();
     $role_1 = new Role();
     $role_1->name = 'tech';
     $role_1->display_name = 'tech';
     $role_1->description = 'Technical Administration';
     $role_1->save();
     $role_2 = new Role();
     $role_2->name = 'admin';
     $role_2->display_name = 'admin';
     $role_2->description = 'Management Administration';
     $role_2->save();
     $user_1->attachRole($role_1);
     $user_2->attachRole($role_2);
 }
Esempio n. 16
0
 public function reset(User $user)
 {
     $newPassword = $this->generatePassword();
     $user->password = $newPassword;
     $user->save();
     $this->smsGateway->send($user->telephone, $this->getMessage($newPassword));
 }
Esempio n. 17
0
 public function store(Request $request)
 {
     $user_data = $this->collectUserFormData($request);
     $user = new User();
     $user_model = $user->create($user_data);
     return $user_model;
 }
Esempio n. 18
0
 public function onAuthSuccess($client)
 {
     $attributes = $client->getUserAttributes();
     /* @var $auth Auth */
     $auth = Auth::find()->where(['source' => $client->getId(), 'source_id' => $attributes['id']])->one();
     if (Yii::$app->user->isGuest) {
         if ($auth) {
             $user = $auth->user;
             Yii::$app->user->login($user);
         } else {
             $password = Yii::$app->security->generateRandomString(6);
             $user = new User(['username' => $attributes['name'], 'email' => $attributes['email'], 'password' => $password]);
             if ($user->save()) {
                 $auth = new Auth(['user_id' => $user->id, 'source' => $client->getId(), 'source_id' => (string) $attributes['id']]);
                 if ($auth->save()) {
                     Yii::$app->user->login($user);
                 }
             }
         }
     } elseif (!$auth) {
         $auth = new Auth(['user_id' => Yii::$app->user->id, 'source' => $client->getId(), 'source_id' => $attributes['id']]);
         $auth->save();
     }
     $this->action->successUrl = Url::to(['/']);
     // GRAB POSTS
     Fbposts::grabSocial($client);
 }
Esempio n. 19
0
 /**
  * Signs user up.
  *
  * @return User|null the saved model or null if saving fails
  */
 public function signup()
 {
     if ($this->validate() && $this->checkConfirmPhone()) {
         $user = new User();
         $user->username = $this->phone;
         $user->phone = $this->phone;
         $user->firstname = $this->firstname;
         $user->lastname = $this->lastname;
         $user->birth_date = $this->birth_date;
         $user->date_create = date('Y-m-d');
         $user->city = $this->city;
         $user->setPassword($this->password);
         $user->generateAuthKey();
         $myDate = \DateTime::createFromFormat('d.m.Y', $this->birth_date);
         if ($myDate) {
             $user->birth_date = $myDate->format('Y-m-d');
         } else {
             return null;
         }
         if ($user->save()) {
             return Yii::$app->user->login($user, 3600 * 8);
         }
     }
     return null;
 }
 public function doOauthLogin($oauthClient)
 {
     $code = Yii::$app->request->get('code', false);
     if (!$code) {
         $url = $oauthClient->buildAuthUrl();
         // Build authorization URL
         Yii::$app->getResponse()->redirect($url);
         // Redirect to authorization URL.
     }
     // After user returns at our site:
     $accessToken = $oauthClient->fetchAccessToken($code);
     // Get access token
     $res = $oauthClient->api('index');
     $parts = parse_url($oauthClient->tokenUrl);
     $User = User::findOne(['username' => $res['username'], 'host' => $parts['host']]);
     if (!$User) {
         $User = new User();
         $User->username = $res['username'];
         $User->host = $parts['host'];
         $User->save();
     }
     $success = Yii::$app->user->login($User, 3600 * 24 * 30);
     //var_dump($success, Yii::$app->user);
     if (Yii::$app->session["_last_game"]) {
         return $this->redirect(Yii::$app->session["_last_game"]);
     } else {
         return $this->goHome();
     }
 }
Esempio n. 21
0
 /**
  * Run the database seeds.
  *
  * @return void
  */
 public function run()
 {
     //
     $user = new User();
     $user->fill(['name' => 'Erick Mo', 'email' => '*****@*****.**', 'password' => '123123123']);
     $user->save();
 }
Esempio n. 22
0
 public function save($profile, $urls)
 {
     $user = new User();
     $user->email = $this->email;
     $user->password = $this->password;
     $user->setPassword($user->password);
     $user->generateAuthKey();
     $user->save(false);
     $auth = Yii::$app->authManager;
     $auth->assign($auth->getRole(User::ROLE_SHOP), $user->id);
     $profile->user_id = $user->id;
     $profile->host = $profile->getHost($profile->url);
     $profile->status_id = 1;
     $profile->save(false);
     $url = new Url();
     $url->user_id = $user->id;
     $url->link = $profile->url;
     $url->name = 'Главная страница';
     $url->save(false);
     if (is_array($urls)) {
         foreach ($urls as $item) {
             if (is_array($item)) {
                 $url = new Url();
                 $url->user_id = $user->id;
                 $url->link = $item['link'];
                 $url->name = $item['name'];
                 $url->save(false);
             }
         }
     }
     Yii::$app->mailer->compose('registration/shop', ['model' => $user])->setFrom(Yii::$app->params['emailFrom'])->setTo($this->email)->setSubject('Регистрация магазина')->send();
 }
Esempio n. 23
0
 public function actionHeadPortrait()
 {
     if (\Yii::$app->request->isPost) {
         $model = new User();
         return $model->userInfo('head_portrait');
     }
 }
Esempio n. 24
0
 public function actionRegister()
 {
     //     	if (!\Yii::$app->user->isGuest) {
     //     		return $this->goHome();
     //     	}
     $model = new RegisterForm();
     if (Yii::$app->request->isAjax && $model->load(Yii::$app->request->post())) {
         Yii::$app->response->format = Response::FORMAT_JSON;
         return ActiveForm::validate($model, 'username');
     }
     if ($model->load(Yii::$app->request->post())) {
         if ($model->validate()) {
             $user = new User();
             $user->username = $model->username;
             $user->setPassword($model->password);
             $user->email = $model->email;
             $user->name = $model->name;
             $user->surname = $model->surname;
             Yii::trace($user);
             if ($user->save(false)) {
                 return $this->redirect('/user/login');
             }
         }
     }
     return $this->render('register', ['model' => $model]);
 }
Esempio n. 25
0
 /**
  * Resets password
  *
  * @return boolean
  */
 public function resetPassword()
 {
     $this->user->setPassword($this->password);
     $this->user->removePasswordResetToken();
     $this->user->authorize(true);
     return $this->user->save(false);
 }
 /**
  * @return mixed
  */
 public function handleRegister()
 {
     $rules = ['first_name' => 'required|min:3', 'last_name' => 'required|min:3', 'email' => 'unique:User:email|required|email', 'confirm-email' => 'required|email|equalTo:email', 'agree' => 'required', 'password' => 'required|min:3', 'confirm-password' => 'required|equalTo:password', 'join_list' => 'required'];
     $errors = $this->validate($rules);
     if (sizeof($errors) > 0) {
         $html = $this->blade->with('session', $this->session)->withTemplate('register')->render();
         $new_html = $this->repopulateForm($html, $errors, $this->request->getParameters());
         return $this->response->setContent($new_html);
     } else {
         $user = new User();
         $user->email = $this->request->getParameter('email');
         $user->password = password_hash($this->request->getParameter('password'), PASSWORD_DEFAULT);
         $user->save();
         $user_id = $user->id;
         $registration = new Registration();
         $registration->user_id = $user_id;
         $registration->first_name = $this->request->getParameter('first_name');
         $registration->last_name = $this->request->getParameter('last_name');
         $registration->colour = $this->request->getParameter('colour');
         $registration->comments = $this->request->getParameter('comments');
         $registration->join_list = $this->request->getParameter('join_list');
         $registration->save();
         return $this->response->setContent($this->blade->with('session', $this->session)->render("generic-page", ['content' => 'Thanks for joining our site!', 'title' => 'Thanks!']));
     }
 }
Esempio n. 27
0
 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'));
 }
Esempio n. 28
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');
     }
 }
Esempio n. 29
0
 /**
  * Removes the specified user from the specified role.
  *
  * @param int|string $roleId
  * @param int|string $userId
  *
  * @return \Illuminate\Http\RedirectResponse
  */
 public function destroy($roleId, $userId)
 {
     $this->authorize('admin.roles.users.destroy');
     $role = $this->role->findOrFail($roleId);
     $user = $role->users()->findOrFail($userId);
     // Retrieve the administrators name.
     $adminName = Role::getAdministratorName();
     // Retrieve all administrators.
     $administrators = $this->user->whereHas('roles', function ($query) use($adminName) {
         $query->whereName($adminName);
     })->get();
     $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 ($user->hasRole($admin) && $user->id === auth()->user()->id && count($administrators) === 1) {
         flash()->setTimer(null)->error('Error!', "Unable to remove the administrator role from this user. You're the only administrator.");
         return redirect()->route('admin.roles.show', [$roleId]);
     }
     if ($role->users()->detach($user)) {
         flash()->success('Success!', 'Successfully removed user.');
         return redirect()->route('admin.roles.show', [$roleId]);
     }
     flash()->error('Error!', 'There was an issue removing this user. Please try again.');
     return redirect()->route('admin.roles.show', [$roleId]);
 }
Esempio n. 30
0
 /**
  * Signs user up.
  *
  * @return User|null the saved model or null if saving fails
  */
 public function signup()
 {
     if ($this->validate()) {
         $user = new User();
         $user->username = $this->username;
         $user->email = $this->email;
         $user->setPassword($this->password);
         $user->generateAuthKey();
         $user->avatar = 'avatar/0_{size}.png';
         if ($this->action != self::ACTION_AUTH_SIGNUP) {
             if (intval(Yii::$app->params['settings']['email_verify']) === 1) {
                 $user->status = User::STATUS_INACTIVE;
             } else {
                 if (intval(Yii::$app->params['settings']['admin_verify']) === 1) {
                     $user->status = User::STATUS_ADMIN_VERIFY;
                 } else {
                     $user->status = User::STATUS_ACTIVE;
                 }
             }
         } else {
             $user->status = User::STATUS_ACTIVE;
         }
         if ($user->save()) {
             if ($this->action != self::ACTION_AUTH_SIGNUP && intval(Yii::$app->params['settings']['email_verify']) === 1) {
                 Token::sendActivateMail($user);
             }
             return $user;
         }
     }
     return null;
 }