Example #1
0
 /**
  * Finds user by auth0 authenticated user
  *
  * @return User|null
  */
 public function getUser()
 {
     $auth0Data = Yii::$app->getModule('auth0')->auth0->getUser();
     if ($this->_user === false) {
         $this->_user = User::findByAuth0($auth0Data);
     }
     return $this->_user;
 }
Example #2
0
 /**
  * @param string $userId
  * @return mixed
  */
 public function actionRemoveTenant($userId, $tenantId = null)
 {
     if (!isset($tenantId)) {
         $tenant = Yii::$app->tenant->identity;
     } else {
         $tenant = Tenant::findOne($tenantId);
     }
     $model = ApiUser::findOne($userId);
     if ($model) {
         $data = ['app_metadata' => $model['app_metadata']];
         unset($data['app_metadata']['permissions'][Yii::$app->getModule('auth0')->serviceId][$tenant->name]);
         if ($this->update($userId, $data)) {
             $user = User::findByAuth0($model);
             $tenantUser = TenantUser::findByTenantUser($tenant, $user);
             $tenantUser->delete();
             $msg = 'Successfully removed the selected user from the current tenant';
             return $this->goBack();
         }
     }
     throw new HttpException(404, 'The requested user cannot be found.');
 }
Example #3
0
 /**
  * @return $mixed Return false on error
  */
 public static function createFromAuth0($auth0Data)
 {
     // check is email taken
     $query = User::find()->andWhere(['email' => $auth0Data['email']]);
     if ($query->exists()) {
         $model = $query->one();
         $auth = new Auth(['user_id' => $model->id, 'source' => 'auth0', 'source_id' => (string) $auth0Data['user_id']]);
         if ($auth->save()) {
             return $model;
         }
         print_r($auth->getErrors());
         return false;
     } else {
         $model = new self(['username' => $auth0Data['nickname'], 'email' => $auth0Data['email'], 'password' => Yii::$app->security->generateRandomString(6)]);
         $model->generateAuthKey();
         $model->generatePasswordResetToken();
         $transaction = $model->getDb()->beginTransaction();
         if ($model->save()) {
             $auth = new Auth(['user_id' => $model->id, 'source' => 'auth0', 'source_id' => (string) $auth0Data['user_id']]);
             if ($auth->save()) {
                 $transaction->commit();
                 return $model;
             }
             print_r($auth->getErrors());
             return false;
         }
         print_r($user->getErrors());
         return false;
     }
 }
Example #4
0
 /**
  * @return \yii\db\ActiveQuery
  */
 public function getUser()
 {
     return $this->hasOne(User::className(), ['id' => 'user_id']);
 }