Ejemplo n.º 1
0
 /**
  * Signs user up.
  *
  * @return User|null the saved model or null if saving fails
  */
 public function signup()
 {
     /**
     *
     * POST /9999999/campaigns/99999/subscribers
             Content-Type: application/vnd.api+json
     *
     * {
             "subscribers": [{
             "email": "*****@*****.**",
             "utc_offset": 660,
             "double_optin": true,
             "starting_email_index": 0,
             "reactivate_if_removed": true,
             "custom_fields": {
             "name": "John Doe"
             }
             }]
             }
     */
     if ($this->validate()) {
         $user = new User();
         //$user->username = $this->username;
         $user->email = $this->email;
         $user->setPassword($this->password);
         $user->generateAuthKey();
         if ($user->save()) {
             $this->subscribe();
             \Yii::$app->mailer->compose(['html' => 'signUp-html', 'text' => 'signUp-text'], ['user' => $user])->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name . ' robot'])->setTo($this->email)->setSubject('Sign Up to ' . \Yii::$app->name)->send();
             return $user;
         }
     }
     return null;
 }
Ejemplo n.º 2
0
 public function actionAdd($password, $discuz_uid, $type = 'User')
 {
     //TODO 这个之后一定要写进配置文件而非硬编码
     if ($password !== 'ngpt_2333') {
         Yii::warning("Wrong Password!!!!!!" . $password . "uid : {$discuz_uid}");
         return ['result' => 'failed', 'extra' => 'wrong password'];
     }
     if (is_numeric($discuz_uid) && intval($discuz_uid) <= 0) {
         Yii::warning("uid not a number : {$discuz_uid}");
         return ['result' => 'failed', 'extra' => 'discuz_uid should be numeric'];
     }
     $discuz_uid = intval($discuz_uid);
     /** @var User $user */
     $user = User::findOne(['discuz_user_id' => $discuz_uid]);
     if (!empty($user)) {
         return ['result' => 'succeed', 'extra' => $user->passkey];
     }
     $user = new User();
     $user->discuz_user_id = $discuz_uid;
     $user->passkey = User::genPasskey();
     Yii::info($user->attributes);
     if ($user->insert()) {
         return ['result' => 'succeed', 'extra' => $user->passkey];
     } else {
         Yii::warning("Insert to user table failed");
         return ['result' => 'failed', 'extra' => 'Database error'];
     }
 }
Ejemplo n.º 3
0
 public function actionSignIn()
 {
     $model = new User();
     $model->scenario = $model::SCENARIO_SIGN_IN;
     if ($model->load(Yii::$app->request->post()) && $model->validate()) {
     }
     return $this->render('sign-in', ['model' => $model]);
 }
Ejemplo n.º 4
0
 /**
  * Logs in a user using the provided username and password.
  *
  * @return boolean whether the user is logged in successfully
  */
 public function login()
 {
     if ($this->validate()) {
         try {
             if (!Purina::init()->login($this->email, $this->password)) {
                 $db_user = User::findByEmail($this->email);
                 if ($db_user) {
                     $db_user->status = User::STATUS_DISABLED;
                     $db_user->save();
                 }
                 $data = Purina::getData();
                 if ($data->message) {
                     $this->addError('password', Yii::t('frontend/base', $data->message));
                 } else {
                     $this->addError('password', 'Не верный логин или пароль.');
                 }
                 return false;
             } else {
                 $user = Purina::getData();
                 $db_user = User::findByEmail($this->email);
                 if (!$db_user) {
                     $db_user = new User();
                     $db_user->id = $user->id;
                     $db_user->firstname = $user->firstname;
                     $db_user->lastname = $user->lastname;
                     $db_user->email = $user->email;
                     $db_user->token = $user->token->key;
                     $db_user->token_expire = $user->token->expire;
                     $db_user->created_at = Yii::$app->formatter->asTimestamp($user->register_date);
                     $db_user->updated_at = $db_user->created_at;
                     $db_user->setPassword($this->password);
                 } else {
                     $db_user->token = $user->token->key;
                     $db_user->token_expire = $user->token->expire;
                 }
                 $db_user->status = User::STATUS_ACTIVE;
                 if (!$db_user->save()) {
                     return false;
                 }
                 $duration = $user->token->expire - Yii::$app->formatter->asTimestamp('now');
                 if (!Yii::$app->user->login($db_user, $duration)) {
                     $this->addError('password', 'Не удалось авторизоваться.');
                     return false;
                 } else {
                     return true;
                 }
             }
         } catch (\Exception $e) {
             $this->addError('password', 'Не удалось авторизоваться.');
             return false;
         }
     }
     return false;
 }
 /**
  * Signs user up.
  *
  * @return User|null the saved model or null if saving fails
  */
 public function register()
 {
     if ($this->validate()) {
         $user = new User();
         $user->email = $this->email;
         $user->password = $this->password;
         if ($user->save()) {
             return $user;
         }
     }
     return null;
 }
Ejemplo n.º 6
0
 /**
  * Create new user based on Steam profile
  * @param \frontend\components\SteamAuth $client
  * @return \frontend\models\User|boolean
  */
 public static function createSteamUser($client)
 {
     $user = new User(['steamid' => $client->steamId, 'registered' => date('Y-m-d')]);
     $steam_data = $client->steamData;
     $user->name = $steam_data['response']['players'][0]['personaname'];
     $user->avatar = $steam_data['response']['players'][0]['avatarmedium'];
     if ($user->save()) {
         return $user;
     }
     Yii::error($user->errors);
     return false;
 }
Ejemplo n.º 7
0
 public function actionNew($type)
 {
     $model = new Razz();
     $model->scenario = 'create';
     if ($type == 'any') {
         $model->type = $model::ANYONE;
     }
     if ($type == 'some') {
         $model->type = $model::SOMEONE;
     }
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         if ($model->type == 1 && !$model->fb_friend) {
             $this->redirect(['/razz/vote-on-challenges', 't' => 'some']);
         }
         if ($model->fb_friend) {
             $Razz = Yii::$app->request->post('Razz', null);
             if ($Razz['fileName'] != "") {
                 $linkToImg = \common\helpers\Ziggeo::getPreview($Razz['fileName']);
             } else {
                 $linkToImg = $model->preview;
             }
             $twitter = new \common\helpers\Twitter();
             $userModel = new \frontend\models\User();
             $userName = ucfirst($userModel->getFullname(Yii::$app->user->id));
             $recipientNick = $model->screen_name;
             $linkToRazzd = Url::base(true) . "/razz/respond/" . $model->id;
             $text = "@{$recipientNick} You have been Razzd by {$userName}: '{$model->title}' {$linkToRazzd}";
             $r = $twitter->tweet($text, ['image' => $linkToImg]);
             if ($twitter->hasErrors()) {
                 // Error
             } else {
                 if (isset($r['id'])) {
                     // Success
                 }
             }
             $this->redirect(['/razz/vote-on-challenges', 't' => 'some']);
             /*
              * Facebook
             $client = Yii::$app->authClientCollection->getClient('facebook');
             $host = 'http://' . $_SERVER['HTTP_HOST'];
             $this->redirect('http://www.facebook.com/dialog/send?app_id=' . $client->clientId . '&to=' . $model->fb_friend . '&link=' . $host . '/razz/respond?hash=' . $model->hash . '&redirect_uri=' . $host . '/razz/vote-on-challenges?t=some');
             */
         }
         if ($model->type == 2) {
             $this->redirect(['/razz/vote-on-challenges', 't' => 'any']);
         }
     } else {
         //print_r($model->getErrors());
         //exit();
     }
     return $this->render('new', ['model' => $model]);
 }
Ejemplo n.º 8
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->setPassword($this->password);
         $user->create_time = time();
         if ($user->save()) {
             return $user;
         }
     }
     return null;
 }
Ejemplo n.º 9
0
 public function checkLogin()
 {
     $userInfo = $this->getUserInfo();
     if ($userInfo) {
         $user = new User();
         $user->load($userInfo, '');
         $user->saveUserInfo();
         if (Yii::$app->user->login($user, 3600 * 24)) {
             return true;
         }
     }
     return false;
 }
 /**
  * Signs user up.
  * @return User|null the saved model or null if saving fails
  */
 public function updateProfile()
 {
     if ($this->validate()) {
         $user = new User();
         $user->setScenario('updateProfile');
         $user->username = $this->username;
         $user->email = $this->email;
         $user->updated_at = time();
         if ($user->save()) {
             return $user;
         }
     }
     return false;
 }
Ejemplo n.º 11
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();
         if ($user->save()) {
             return $user;
         }
     }
     return null;
 }
Ejemplo n.º 12
0
 /**
  * Finds user by [[username]]
  *
  * @return User|null
  */
 public function getUser()
 {
     if ($this->_user === false) {
         $this->_user = User::findByUsername($this->username);
     }
     return $this->_user;
 }
Ejemplo n.º 13
0
    /**
     * Creates data provider instance with search query applied
     *
     * @param array $params
     *
     * @return ActiveDataProvider
     */
    public function search($params)
    {
        $query = User::find();

        $dataProvider = new ActiveDataProvider([
            'query' => $query,
        ]);

        $this->load($params);

        if (!$this->validate()) {
            // uncomment the following line if you do not want to return any records when validation fails
            // $query->where('0=1');
            return $dataProvider;
        }

        $query->andFilterWhere([
            'id' => $this->id,
            'status' => $this->status,
            'created_at' => $this->created_at,
            'updated_at' => $this->updated_at,
        ]);

        $query->andFilterWhere(['like', 'username', $this->username])
            ->andFilterWhere(['like', 'user_type', $this->user_type])
            ->andFilterWhere(['like', 'auth_key', $this->auth_key])
            ->andFilterWhere(['like', 'password_hash', $this->password_hash])
            ->andFilterWhere(['like', 'password_reset_token', $this->password_reset_token])
            ->andFilterWhere(['like', 'email', $this->email]);

        return $dataProvider;
    }
Ejemplo n.º 14
0
 private function insert_user($data)
 {
     $user = new User();
     $salt = substr(uniqid(rand()), -6);
     $time = time();
     $ip = getRealIp();
     $password = md5(md5($data['password']) . $salt);
     $authkey = Yii::$app->security->generateRandomString();
     $password_reset_token = Yii::$app->security->generateRandomString() . '_' . time();
     $password_hash = Yii::$app->security->generatePasswordHash($data['password']);
     $user->username = $data['username'];
     $user->password = $password;
     $user->auth_key = $authkey;
     $user->password_hash = $password_hash;
     $user->password_reset_token = $password_reset_token;
     $user->mobile = $data['mobile'];
     $user->email = $data['email'];
     $user->card_id = $data['card_id'];
     $user->reg_date = $time;
     $user->reg_ip = $ip;
     $user->last_login_date = $time;
     $user->last_login_ip = $ip;
     $user->salt = $salt;
     $result = $user->save();
     if ($result) {
         $session = Yii::$app->session;
         if (!$session->isActive) {
             $session->open();
         }
         $session['user'] = ['id' => $result, 'username' => $user->username];
     }
     return $result;
 }
Ejemplo n.º 15
0
 /**
  * Finds user by [[username]]
  *
  * @return User|null
  */
 public function getUser()
 {
     if ($this->_user === false) {
         $this->_user = User::findOne(Yii::$app->user->identity->id);
     }
     return $this->_user;
 }
Ejemplo n.º 16
0
 /**
  * Finds user by [[username]]
  *
  * @return User|null
  */
 protected function getUser()
 {
     if ($this->_user === null) {
         $this->_user = User::findByEmail($this->email);
     }
     return $this->_user;
 }
Ejemplo n.º 17
0
 /**
  * Finds user by [[username]]
  *
  * @return User|null
  */
 protected function getUser()
 {
     if ($this->_user === null) {
         $this->_user = User::findByUsername($this->username);
     }
     return $this->_user;
 }
Ejemplo n.º 18
0
 public function findPasswords($attribute, $params)
 {
     $user = User::findOne(Yii::$app->user->getId());
     if (!Yii::$app->getSecurity()->validatePassword($this->oldpass, $user->password_hash)) {
         $this->addError($attribute, Yii::t('app/user', 'Old password is incorrect'));
     }
 }
Ejemplo n.º 19
0
 /**
  * Signs user up.
  *
  * @return User|null the saved model or null if saving fails
  */
 public function signup()
 {
     if ($this->password != $this->password2) {
         $this->addError('password2', \Yii::t('site', 'Пароли не совпадают!'));
     }
     if ($this->validate()) {
         $user = new User();
         $user->username = $this->username;
         $user->email = $this->email;
         $user->setPassword($this->password);
         $user->generateAuthKey();
         if ($user->save()) {
             return $user;
         }
     }
     return null;
 }
Ejemplo n.º 20
0
 /**
  * @param $attribute
  * @param $params
  * @return bool
  */
 public function myValidatePassword($attribute, $params)
 {
     $model = User::find()->where(['username' => $this->username])->andWhere(['status' => 1])->one();
     if (!empty($model) && $model->setPassword($this->{$attribute}) == $model->password) {
         return true;
     }
     $this->addError($attribute, 'The username or password is error!');
 }
Ejemplo n.º 21
0
 /**
  * @param $attribute
  * @param $params
  * @return bool
  */
 public function validateOriginalPassword($attribute, $params)
 {
     $model = User::find()->where(['username' => Yii::$app->session['username']])->one();
     if (!empty($model) && $this->{$attribute} == $model->password) {
         return true;
     }
     $this->addError($attribute, 'The original password is error!');
 }
Ejemplo n.º 22
0
 /**
  * Finds the User model based on its primary key value.
  * If the model is not found, a 404 HTTP exception will be thrown.
  * @param integer $id
  * @return User the loaded model
  * @throws NotFoundHttpException if the model cannot be found
  */
 protected function findModel($id)
 {
     if (($model = User::findOne($id)) !== null) {
         return $model;
     } else {
         throw new NotFoundHttpException('The requested page does not exist.');
     }
 }
Ejemplo n.º 23
0
 /** @inheritdoc */
 public function init()
 {
     $this->user = \Yii::createObject(['class' => User::className(), 'scenario' => 'register']);
     $this->module = \Yii::$app->getModule('user');
     $this->user->on(User::USER_REGISTER_DONE, function ($event) {
         $event->sender->profile->name = $this->name;
         $event->sender->profile->save();
     });
 }
Ejemplo n.º 24
0
 /**
  * Creates a new Post model.
  * If creation is successful, the browser will be redirected to the 'view' page.
  * @return mixed
  */
 public function actionCreate()
 {
     $model = new Post();
     if ($model->load(Yii::$app->request->post()) && $model->save()) {
         return $this->redirect(['view', 'id' => $model->id]);
     } else {
         return $this->render('create', ['model' => $model, 'category' => Category::find()->all(), 'authors' => User::find()->all()]);
     }
 }
 /**
  * @param $attribute
  * @param $params
  * @return bool
  */
 public function validateOriginalPassword($attribute, $params)
 {
     $user = User::findModelByUsername();
     //var_dump($user->setPassword($this->$attribute));echo '<br/><pre>';var_dump($user);die;
     if (!empty($user) && $user->setPassword($this->{$attribute}) == $user->password) {
         return true;
     }
     $this->addError($attribute, '密码错误!');
 }
Ejemplo n.º 26
0
 /**
  * @return array|null|\yii\db\ActiveRecord
  * @throws NotFoundHttpException
  */
 public static function findModelByUsername()
 {
     if ($username = Yii::$app->session['__username']) {
         if (($model = User::find()->where(['username' => $username])->one()) !== null) {
             return $model;
         }
     }
     throw new NotFoundHttpException('The requested page does not exist.');
 }
Ejemplo n.º 27
0
 /**
  * Validates the password.
  * This method serves as the inline validation for password.
  *
  * @param string $attribute the attribute currently being validated
  * @param array $params the additional name-value pairs given in the rule
  */
 public function validateEmail($attribute, $params)
 {
     if (!$this->hasErrors()) {
         $user_email = User::findByUsernameFromJsonValidate($this->email, 'email');
         if ($user_email) {
             $this->addError($attribute, 'This email address has already been taken.');
         }
     }
 }
Ejemplo n.º 28
0
 /**
  * @param integer $id
  *
  * @return array|boolean
  */
 public static function getCurrentUser($id)
 {
     /** @var $user User */
     $user = User::findOne(['id' => $id]);
     if (isset($user)) {
         return $user;
     }
     return false;
 }
Ejemplo n.º 29
0
 public function actionUser($mode = false, $key = false, $id = false, $provider = false)
 {
     $response = User::Initial()->Run($mode, $key, $id, $provider)->getResponse();
     if (Yii::$app->request->isAjax) {
         echo json_encode($response['data']);
         exit;
     } else {
         return $this->render($response['render'], ['data' => $response['data']]);
     }
 }
Ejemplo 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->setScenario('signup');
         $user->username = $this->username;
         $user->email = $this->email;
         $user->created_at = time();
         $user->updated_at = time();
         $user->password = $user->setPassword($this->password);
         //echo '<pre>';var_dump($user);die;
         if ($user->save()) {
             return true;
         }
         var_dump($user->getErrors());
         die;
     }
     return null;
 }