public function checkUsername($attribute, $param) { $existUser = Member::find()->where(['=', 'username', $this->membername])->one(); if (!$existUser) { $this->addError($attribute, '该用户不存在!'); } }
/** * 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']); }
/** * 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; }
/** * 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 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]); }
/** * 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)]); }
/** * 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; }
/** * Lists all Member models. * @return mixed */ public function actionEnum($domain_type) { $membersArray = Member::find()->published()->andWhere(['like', 'domain', Yii::getAlias('@frontendUrl_' . $domain_type)])->all(); $enum = []; $enumTitles = []; foreach ($membersArray as $k => $v) { $title = $v->firstname . ' ' . $v->lastname . ' (' . $v->position . ') #' . $v->id; $enum[] = $title; } //\yii\helpers\VarDumper::dump($members,11,1); die(); Yii::$app->response->data = ["items" => ["type" => "string", "enum" => $enum]]; Yii::$app->response->format = yii\web\Response::FORMAT_JSON; return Yii::$app->response; }
/** * 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; }
/** * 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; }
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; }
/** * 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; }
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('用户名或密码错误'); } }
/** * 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; }
/** * Lists all Member models. * @return mixed */ public function actionIndex() { if (!$this->is_access('member/index')) { Yii::$app->session->setFlash('error', $this->errorInfo); return $this->redirect($this->redirectUrl); } $requert = Yii::$app->request; $username = $requert->get('username'); $query = Member::find(); if (!empty($username)) { $query = $query->andWhere("username like '%{$username}%'"); } $dataProvider = new ActiveDataProvider(['query' => $query, 'Sort' => ['defaultOrder' => ['uid' => SORT_DESC]]]); Yii::$app->view->params['meta_title'] = '会员列表'; return $this->render('index', ['dataProvider' => $dataProvider]); }
/** * 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; }
/** * 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 data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Member::find()->orderBy(['created_at' => SORT_DESC]); if (!Yii::$app->user->identity->isAdmin()) { $this->added_by = Yii::$app->user->identity->id; } $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, 'buy_stack' => $this->buy_stack, 'added_by' => $this->added_by, 'stack_fund' => $this->stack_fund, 'finance_fund' => $this->finance_fund]); if ($this->approved_at) { $date = explode(' - ', $this->approved_at); if (count($date) == 2) { $query->andFilterWhere(['>=', $this::tableName() . '.approved_at', $date[0] . ' 00:00:00']); $query->andFilterWhere(['<=', $this::tableName() . '.approved_at', $date[1] . ' 23:59:59']); } } if ($this->created_at) { $date = explode(' - ', $this->created_at); if (count($date) == 2) { $query->andFilterWhere(['>=', $this::tableName() . '.created_at', $date[0] . ' 00:00:00']); $query->andFilterWhere(['<=', $this::tableName() . '.created_at', $date[1] . ' 23:59:59']); } } if ($this->updated_at) { $date = explode(' - ', $this->updated_at); if (count($date) == 2) { $query->andFilterWhere(['>=', $this::tableName() . '.updated_at', $date[0] . ' 00:00:00']); $query->andFilterWhere(['<=', $this::tableName() . '.updated_at', $date[1] . ' 23:59:59']); } } $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])->orderBy(['created_at' => SORT_DESC]); return $dataProvider; }
/** * /register/complete * * @return string|\yii\web\Response */ public function actionComplete() { if ($this->member) { return $this->goHome(); } $errors = null; $encrypted = $this->request->getQueryParam('k'); if ($encrypted) { try { $data = JWT::decode($encrypted, $this->params['secret'], ['HS256']); // Get member $member = Member::find()->where(['id' => $data->i])->limit(1)->one(); if ($member) { if (!$member->isActive) { if ($member->passwordResetKey && $member->passwordResetKey == $data->k) { $member->passwordResetKey = ''; $member->isActive = 1; $member->save(); $this->notifySuccess('Your registration is complete. Please log in.'); return $this->redirect('/login'); } else { $this->notifyError('That registration link is terrible!'); } } else { $this->notifySuccess('Your registration is already complete. Please log in.'); } } else { $this->notifyError('Invalid Account'); } } catch (SignatureInvalidException $e) { $this->notifyError('Invalid registration key'); } } else { $this->notifyError('Invalid registration key'); } return $this->redirect('/login'); }
public static function isExist($usename) { $existUser = Member::find()->where(['=', 'username', $usename]); return $existUser ? $existUser->one() : null; }
public function setMemberId() { if (Yii::$app->user->identity->isAdmin()) { $existUser = Member::find()->where(['=', 'username', $this->membername])->one(); $this->member_id = $existUser ? $existUser->id : 0; } else { $this->member_id = Yii::$app->user->identity->id; } }
/** * Lists all Member models. * @return mixed */ public function actionIndex() { $dataProvider = new ActiveDataProvider(['query' => Member::find()]); return $this->render('index', ['dataProvider' => $dataProvider]); }
/** * /login/reset * * @return string|\yii\web\Response */ public function actionReset() { if ($this->member) { return $this->goHome(); } $errors = null; $encrypted = $this->request->getQueryParam('k'); if ($encrypted) { try { $data = JWT::decode($encrypted, $this->params['secret'], ['HS256']); // Get member $member = Member::find()->where(['id' => $data->i])->limit(1)->one(); if ($member) { if ($member->isActive) { if ($member->passwordResetKey && $member->passwordResetKey == $data->k) { $model = new ResetForm(); if ($this->request->method == 'POST') { // populate model attributes with user inputs $model->load($this->request->post()); if ($model->validate() && $model->save($member)) { $this->notifySuccess('Your new password has been saved. Please log in.'); return $this->redirect('/login'); } else { // validation failed: $errors is an array containing error messages $errors = $model->errors; } } return $this->render('reset', ['model' => $model, 'errors' => $errors]); } else { $this->notifyError('That password reset link has expired'); } } else { $this->notifyError('Account is not active'); } } else { $this->notifyError('Invalid Account'); } } catch (SignatureInvalidException $e) { $this->notifyError('Invalid password reset key'); } } else { $this->notifyError('Invalid password reset key'); } return $this->redirect('/login'); }