Inheritance: extends yii\db\ActiveRecord
Example #1
0
 /**
  * Attempts to find the member and send them an email
  *
  * @param \common\models\Member  $member
  * @return bool
  */
 public function saveMember($member)
 {
     if ($this->password && $this->password !== $member->password) {
         $member->setRawPassword($this->password);
     }
     $member->name = $this->name;
     $member->save();
     return true;
 }
Example #2
0
 /**
  * Attempts to find the member and send them an email
  *
  * @param  \common\models\Member  $member
  * @return bool
  */
 public function save($member)
 {
     if (strlen($this->password) < 8) {
         $this->addError('password', 'Password must be at least 8 characters');
     } else {
         $member->setRawPassword($this->password);
         $member->passwordResetKey = '';
         return $member->save();
     }
 }
Example #3
0
 /**
  * Signs user up.
  *
  * @return User|null the saved model or null if saving fails
  */
 public function signup()
 {
     if ($this->validate()) {
         $user = new Member();
         $user->username = $this->username;
         $user->email = $this->email;
         $user->setPassword($this->password);
         $user->generateAuthKey();
         if ($user->save()) {
             return $user;
         }
     }
     return null;
 }
Example #4
0
 /**
  * Finds member by [[username]]
  *
  * @return Member|null
  */
 public function getMember()
 {
     if ($this->_member === null) {
         $this->_member = Member::findByUsername($this->username);
     }
     return $this->_member;
 }
 public function checkUsername($attribute, $param)
 {
     $existUser = Member::find()->where(['=', 'username', $this->membername])->one();
     if (!$existUser) {
         $this->addError($attribute, '该用户不存在!');
     }
 }
Example #6
0
 /**
  * Finds user by [[username]]
  *
  * @return User|null
  */
 public function getUser()
 {
     if ($this->_user === false) {
         $this->_user = Member::findByUsername($this->username);
     }
     return $this->_user;
 }
Example #7
0
 /**
  * Finds user by [[email]]
  *
  * @return User|null
  */
 protected function getUser()
 {
     if ($this->_user === null) {
         $this->_user = Member::findByEmail($this->email);
     }
     return $this->_user;
 }
 public function actionMemberList($id = 0)
 {
     if ($id) {
         return Member::findOne($id)->username;
     } else {
         return $this->_list(new Member(), 'member-list');
     }
 }
 /**
  * Deletes an existing MemberCategory model.
  * If deletion is successful, the browser will be redirected to the 'index' page.
  * @param integer $id
  * @return mixed
  */
 public function actionDelete($id)
 {
     $memberModel = Member::find()->andWhere(['category_id' => $id])->one();
     if (null === $memberModel) {
         $this->findModel($id)->delete();
     } else {
         Yii::$app->session->setFlash('alert', ['body' => \Yii::t('backend', 'Can not delete category #' . $id . '. It used in other table. Change member for project #' . $projectModel->id . ' before delete.'), 'options' => ['class' => 'alert-error']]);
     }
     return $this->redirect(['index']);
 }
 public function actionIndex()
 {
     $members = Member::findAll(array());
     foreach ($members as $member) {
         $member->finance_fund -= System::loadConfig('annual_fee');
         $outRecord = OutRecord::prepareYearlyFeeRecord($member->id, $member->finance_fund);
         $member->save();
         $outRecord->save();
     }
 }
Example #11
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Member::find();
     $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pagesize' => 100], 'sort' => ['defaultOrder' => ['id' => SORT_DESC]]]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'role' => $this->role, 'status' => $this->status]);
     $query->andFilterWhere(['like', 'username', $this->username])->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])->andFilterWhere(['like', 'phone', $this->phone])->andFilterWhere(['like', 'city', $this->city])->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'avatar', $this->avatar])->andFilterWhere(['like', 'banner_top', $this->banner_top])->andFilterWhere(['like', 'params', $this->params])->andFilterWhere(['like', 'position', $this->position])->andFilterWhere(['like', 'hobby', $this->hobby])->andFilterWhere(['like', 'updateDate', $this->updateDate])->andFilterWhere(['like', 'createDate', $this->createDate])->andFilterWhere(['like', 'description', $this->description]);
     return $dataProvider;
 }
Example #12
0
 /**
  * Attempts to find the member and send them an email
  *
  * @return bool
  */
 public function register()
 {
     $member = Member::find()->where(['email' => ['like', 'email', $this->email]])->limit(1)->one();
     if (!$member) {
         // Create a new member
         $member = new Member();
         $member->email = $this->email;
         $member->name = $this->name;
         $member->isActive = 0;
         $member->passwordResetKey = Util::getRandomString(32);
         $member->setRawPassword($this->password);
         $member->save();
         $encrypted = JWT::encode(['i' => $member->id, 'k' => $member->passwordResetKey], Yii::$app->params['secret']);
         // Send email
         return Yii::$app->mailer->compose(['html' => 'register/html', 'text' => 'register/text'], ['encrypted' => $encrypted, 'member' => $member])->setFrom(Yii::$app->params['fromEmail'])->setTo($this->email)->setSubject('Registration Confirmation - ' . Yii::$app->params['siteName'])->send();
     } else {
         $this->addError('email', 'An account already exists for ' . $this->email);
     }
     return false;
 }
 /**
  * Creates a form model given a token.
  *
  * @param  string                          $token
  * @param  array                           $config name-value pairs that will be used to initialize the object properties
  * @throws \yii\base\InvalidParamException if token is empty or not valid
  */
 public function __construct($token, $config = [])
 {
     if (empty($token) || !is_string($token)) {
         throw new InvalidParamException('Password reset token cannot be blank.');
     }
     $this->_user = Member::findByPasswordResetToken($token);
     if (!$this->_user) {
         throw new InvalidParamException('Wrong password reset token.');
     }
     parent::__construct($config);
 }
Example #14
0
 /**
  * Creates data provider instance with search query applied
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Member::find();
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'slug' => $this->slug, 'author_id' => $this->author_id, 'category_id' => $this->category_id, 'updater_id' => $this->updater_id, 'status' => $this->status, 'published_at' => $this->published_at, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'slug', $this->slug])->andFilterWhere(['like', 'title', $this->title])->andFilterWhere(['like', 'weight', $this->weight])->andFilterWhere(['like', 'body', $this->body]);
     return $dataProvider;
 }
 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 "\r\n success insert user, with username:admin and password:123456 \r\n";
     } else {
         echo json_encode($model->getErrors());
     }
     $model = new Member();
     $model->username = '******';
     $model->auth_key = 'OocVKRx-iludROmUFYj4HmxNeC8v0-FG';
     $model->password_hash = '$2y$13$0d3FeUDYGSyZft.3I77hV.E357FsqqAJFqaWPstWODMbdlSvxV2gC';
     $model->email = '*****@*****.**';
     $model->phone = '6281575068530';
     $model->role = Member::ROLE_ADMIN;
     $model->status = Member::STATUS_ACTIVE;
     if ($model->save()) {
         echo "\r\n success insert member, with username:admin and password:123456 \r\n";
     } 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 advanced settings... \r\n";
     } else {
         echo json_encode($setting->getErrors());
     }
 }
Example #16
0
 /**
  * Signs user up.
  *
  * @return Member |null the saved model or null if saving fails
  */
 public function signup()
 {
     if ($this->validate()) {
         $user = new Member();
         $user->username = $this->username;
         $user->email = $this->email;
         $user->setPassword($this->password);
         $user->generateAuthKey();
         $user->status = Member::STATUS_ACTIVE;
         if ($user->save()) {
             Yii::$app->session->setFlash('success', 'Well done! successfully to registered data!  ');
             $notification = new Notification();
             $notification->title = 'member';
             $notification->message = 'new member, username:'******'model' => 'Member', 'id' => $user->id]);
             if ($notification->save()) {
                 $this->sendEmail($this->email);
                 Yii::$app->session->setFlash('success', 'please check your email!  ');
             } else {
                 print_r($notification->getErrors());
                 exit(0);
             }
             return $user;
         } else {
             return $user->getErrors();
         }
     }
     return null;
 }
Example #17
0
 public function actionAdd()
 {
     $model = new FundTransaction();
     if ($model->load(Yii::$app->request->post())) {
         if ($model->validate()) {
             $model->member_id = Member::find()->where(['=', 'username', $model->membername])->one()->id;
             if ($model->save()) {
                 return $this->redirect(['history']);
             }
         }
     }
     return $this->render('add', ['model' => $model]);
 }
Example #18
0
 /**
  * 获得会员的等级
  * @param int $uid 会员id
  * @return string
  */
 public function getMemberRank($uid)
 {
     $uScore = Member::findOne($uid)->score;
     $list = $this->find()->orderBy('score DESC')->all();
     $title = '';
     foreach ($list as $val) {
         if ($uScore >= $val['score']) {
             $title = $val['rank_name'];
             break;
         }
     }
     return $title;
 }
 /**
  * Sends an email with a link, for resetting the password.
  *
  * @return boolean whether the email was send
  */
 public function sendEmail()
 {
     /* @var $user User */
     $user = Member::findOne(['status' => Member::STATUS_ACTIVE, 'email' => $this->email]);
     if ($user) {
         if (!User::isPasswordResetTokenValid($user->password_reset_token)) {
             $user->generatePasswordResetToken();
         }
         if ($user->save()) {
             return \Yii::$app->mailer->compose(['html' => 'passwordResetToken-html', 'text' => 'passwordResetToken-text'], ['user' => $user])->setFrom([\Yii::$app->params['supportEmail'] => \Yii::$app->name . ' robot'])->setTo($this->email)->setSubject('Password reset for ' . \Yii::$app->name)->send();
         }
     }
     return false;
 }
Example #20
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Member::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, 'birthday' => $this->birthday, 'count' => $this->count, 'status' => $this->status, 'createtime' => $this->createtime]);
     $query->andFilterWhere(['like', 'name', $this->name])->andFilterWhere(['like', 'password', $this->password])->andFilterWhere(['like', 'email', $this->email])->andFilterWhere(['like', 'realname', $this->realname])->andFilterWhere(['like', 'telephone', $this->telephone])->andFilterWhere(['like', 'qq', $this->qq])->andFilterWhere(['like', 'auth_key', $this->auth_key])->andFilterWhere(['like', 'password_reset_token', $this->password_reset_token]);
     return $dataProvider;
 }
Example #21
0
 /**
  * Site Homepage
  *
  * @return string
  */
 public function actionView()
 {
     $memberId = (int) $this->request->getQueryParam('id');
     if (!$memberId) {
         return $this->goHome();
     }
     $member = Member::find()->where(['id' => $memberId])->limit(1)->one();
     if (!$member) {
         return $this->goHome();
     }
     $snippetCount = Snippet::find()->where(['memberId' => $member->id, 'isHidden' => 0])->count();
     $commentCount = SnippetComment::find()->where(['memberId' => $member->id])->count();
     return $this->render('view', ['member' => $member, 'snippetCount' => $snippetCount, 'commentCount' => $commentCount, 'snippets' => MemberSnippetsList::get($member)]);
 }
Example #22
0
 public function search($params)
 {
     $query = Member::find();
     $dataProvider = new ActiveDataProvider(['query' => $query, 'sort' => ['defaultOrder' => ['id' => SORT_DESC]], 'pagination' => ['pageSize' => 20]]);
     // load the seach form data and validate
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $dateBegin = strtotime($this->date);
     $dateEnd = $dateBegin + 86400;
     // adjust the query by adding the filters
     $query->andFilterWhere(['store_id' => $this->store_id])->andFilterWhere(['like', 'username', $this->username])->andFilterWhere(['like', 'real_name', $this->real_name])->andFilterWhere(['gender' => $this->gender])->andFilterWhere(['like', 'email', $this->email])->andFilterWhere(['like', 'mobile', $this->mobile])->andFilterWhere(['status' => $this->status])->andFilterWhere(['>=', 'created_at', $this->date ? $dateBegin : null])->andFilterWhere(['<', 'created_at', $this->date ? $dateEnd : null]);
     return $dataProvider;
 }
Example #23
0
 /**
  * Creates data provider instance with search query applied
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Member::find();
     if (!\Yii::$app->user->can('administrator')) {
         $query->forDomain();
     }
     $dataProvider = new ActiveDataProvider(['query' => $query]);
     if (!($this->load($params) && $this->validate())) {
         return $dataProvider;
     }
     $query->andFilterWhere(['id' => $this->id, 'slug' => $this->slug, 'author_id' => $this->author_id, 'category_id' => $this->category_id, 'updater_id' => $this->updater_id, 'status' => $this->status, 'published_at' => $this->published_at, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, 'domain_id' => $this->domain_id]);
     $query->andFilterWhere(['like', 'slug', $this->slug])->andFilterWhere(['like', 'title', $this->title])->andFilterWhere(['like', 'weight', $this->weight])->andFilterWhere(['like', 'body', $this->body])->andFilterWhere(['like', 'before_body', $this->before_body])->andFilterWhere(['like', 'after_body', $this->after_body])->andFilterWhere(['like', 'on_scenario', $this->on_scenario]);
     return $dataProvider;
 }
Example #24
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Member::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, 'role' => $this->role, 'status' => $this->status, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at]);
     $query->andFilterWhere(['like', 'username', $this->username])->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])->andFilterWhere(['like', 'member_name', $this->member_name]);
     return $dataProvider;
 }
Example #25
0
 /**
  * Creates data provider instance with search query applied
  *
  * @param array $params
  *
  * @return ActiveDataProvider
  */
 public function search($params)
 {
     $query = Member::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, 'locked' => $this->locked, 'role_id' => $this->role_id, 'investment' => $this->investment, 'created_at' => $this->created_at, 'updated_at' => $this->updated_at, 'approved_at' => $this->approved_at, 'buy_stack' => $this->buy_stack, 'added_by' => $this->added_by, 'stack_fund' => $this->stack_fund, 'finance_fund' => $this->finance_fund]);
     $query->andFilterWhere(['like', 'auth_key', $this->auth_key])->andFilterWhere(['like', 'username', $this->username])->andFilterWhere(['like', 'access_token', $this->access_token])->andFilterWhere(['like', 'nickname', $this->nickname])->andFilterWhere(['like', 'password_hash', $this->password_hash])->andFilterWhere(['like', 'password_hash2', $this->password_hash2])->andFilterWhere(['like', 'identity', $this->identity])->andFilterWhere(['like', 'phone', $this->phone])->andFilterWhere(['like', 'title', $this->title])->andFilterWhere(['like', 'bank', $this->bank])->andFilterWhere(['like', 'cardname', $this->cardname])->andFilterWhere(['like', 'cardnumber', $this->cardnumber])->andFilterWhere(['like', 'bankaddress', $this->bankaddress])->andFilterWhere(['like', 'email', $this->email])->andFilterWhere(['like', 'qq', $this->qq]);
     return $dataProvider;
 }
 public function actionLogin()
 {
     $username = \Yii::$app->request->post('username');
     $password = \Yii::$app->request->post('password');
     try {
         /** @var Member $member */
         $member = Member::find()->where(['username' => $username])->one();
         if ($member->validatePassword($password)) {
             return ['token' => $member->getAuthKey()];
         }
         throw new Exception();
     } catch (Exception $e) {
         throw new \HttpInvalidParamException('用户名或密码错误');
     }
 }
 public function actionStatus($id)
 {
     Yii::$app->response->format = Response::FORMAT_JSON;
     $status = Yii::$app->request->post('status');
     $model = Member::findOne($id);
     if (!$model || !in_array($status, [Member::STATUS_ACTIVE, Member::STATUS_BLOCKED])) {
         throw new BadRequestHttpException('请求错误!');
     }
     $model->status = $status;
     if ($model->save(false)) {
         return ['status' => 'success', 'data' => []];
     } else {
         return ['status' => 'fail', 'data' => ['message' => '更新出错!']];
     }
 }
Example #28
0
 /**
  * Attempts to login
  *
  * @return bool
  */
 public function authenticate()
 {
     // Try to find member with this email
     $member = Member::find()->where(['email' => $this->email])->andWhere('password != ""')->limit(1)->one();
     /* @var $member Member */
     if ($member) {
         if (password_verify($this->password, $member->password)) {
             setcookie('k', $member->getCookieKey(), strtotime('+1 day'));
             Yii::$app->session->set('memberId', $member->id);
             Yii::$app->session->set('memberKey', $member->getMemberKey());
             return true;
         }
     }
     $this->addError('email', 'Invalid Credentials');
     return false;
 }
Example #29
0
 /**
  * 记录帐户变动
  * @param   int     $uid        用户id
  * @param   float   $user_money     可用余额变动
  * @param   float   $frozen_money   冻结余额变动
  * @param   int     $rank_points    等级积分变动
  * @param   int     $pay_points     消费积分变动
  * @param   string  $change_desc    变动说明
  * @param   int     $change_type    变动类型
  * @return  void
  */
 public function log_account_change($uid, $user_money = 0, $frozen_money = 0, $rank_points = 0, $pay_points = 0, $change_desc = '', $change_type = 99)
 {
     /* 记录资金变动信息 */
     $this->uid = $uid;
     $this->user_money = $user_money;
     $this->frozen_money = $frozen_money;
     $this->rank_points = $rank_points;
     $this->pay_points = $pay_points;
     $this->change_time = time();
     $this->change_desc = $change_desc;
     $this->change_type = $change_type;
     $this->save(false);
     /* 更新用户信息 */
     $Member = Member::findOne($uid);
     $Member->user_money += $user_money;
     $Member->frozen_money += $frozen_money;
     $Member->rank_points += $rank_points;
     $Member->pay_points += $pay_points;
     $Member->save(false);
 }
Example #30
0
 /**
  * Attempts to find the member and send them an email
  *
  * @return bool
  */
 public function sendEmail()
 {
     $member = Member::find()->where(['email' => ['like', 'email', $this->email]])->limit(1)->one();
     /* @var $member \yii\db\ActiveRecord */
     if ($member) {
         if ($member->isActive) {
             // Create a new Password Reset Key
             $member->passwordResetKey = Util::getRandomString(32);
             $member->save();
             $encrypted = JWT::encode(['i' => $member->id, 'k' => $member->passwordResetKey], Yii::$app->params['secret']);
             // Send email
             return Yii::$app->mailer->compose(['html' => 'password-reset/html', 'text' => 'password-reset/text'], ['encrypted' => $encrypted, 'member' => $member])->setFrom(Yii::$app->params['fromEmail'])->setTo($this->email)->setSubject('Password Reset - ' . Yii::$app->params['siteName'])->send();
         } else {
             $this->addError('email', 'You account is not active.');
         }
     } else {
         $this->addError('email', 'Could not find you!');
     }
     return false;
 }