/** * validation via AJAX * @return mixed */ public function actionAjaxValidation($id = null) { if (isset($id)) { $model = $this->findModel($id); } else { $model = new Tenant(); } $model->load(Yii::$app->request->post()); Yii::$app->response->format = Response::FORMAT_JSON; return ActiveForm::validate($model); }
/** * Finds tenant by auth0 authenticated user first tenant name for the current service. * Create a tenant if it does not exists. * * @return mixed */ public static function findByAuth0() { $query = self::find()->andWhere(['name' => Yii::$app->getModule('auth0')->auth0->getDefaultTenant()]); if (!$query->exists()) { $model = new Tenant(); $model->name = Yii::$app->getModule('auth0')->auth0->getDefaultTenant(); $model->save(); $model->refresh(); return $model; } return $query->one(); }
/** * Finds tenant by auth0 authenticated user app metadata * * @return User|null */ public function getTenant() { if ($this->_tenant === false) { $this->_tenant = Tenant::findByAuth0(); } return $this->_tenant; }
/** * See all users by service * @return mixed */ public function actionIndex() { Yii::$app->user->setReturnUrl(['/' . $this->getRoute()]); $userQuery = ApiUser::find()->orderBy('email:1'); $tenantQuery = Tenant::find()->orderBy('name'); return $this->render('index', ['userQuery' => $userQuery, 'tenantQuery' => $tenantQuery]); }
/** * Creates data provider instance with search query applied * * @param array $params * * @return ActiveDataProvider */ public function search($params) { $query = Tenant::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, 'created_at' => $this->created_at, 'create_user_id' => $this->create_user_id, 'updated_at' => $this->updated_at, 'update_user_id' => $this->update_user_id]); $query->andFilterWhere(['like', 'name', $this->name]); return $dataProvider; }
/** * @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.'); }
/** * @return \yii\db\ActiveQuery */ public function getTenant() { return $this->hasOne(Tenant::className(), ['id' => 'tenant_id']); }
Portlet::end(); ?> </div> <!-- END user portlet --> <!-- BEGIN tenant portlet --> <div class="col-md-6"> <?php //Pjax::begin(['options' => ['id' => 'container-pjax']]); ?> <?php $checkboxButton = Html::a('<i class="fa fa-trash"></i> Delete selected', '#', ['title' => 'Delete Selected Tenant', 'class' => 'selectCheckboxButton', 'value-url' => 'http://localhost:8100/auth0/tenant/delete-checkbox', 'value-id' => 'tenant-gridview']); Portlet::begin(['id' => 'tenant-portlet', 'title' => 'Tenants', 'subtitle' => 'showing total users...', 'buttons' => [Html::a('<i class="fa fa-plus"></i>', false, ['value' => Url::to(['tenant/create']), 'title' => 'Create Tenant', 'class' => 'showModalButton btn btn-circle green-haze btn-sm']), Html::a('<i class="fa fa-download"></i>', false, ['value' => Url::to(['tenant/import']), 'title' => 'Import Tenant', 'class' => 'showModalButton btn btn-circle blue btn-sm']), Html::a('<i class="fa fa-cloud-download"></i>', ['tenant/export'], ['title' => 'Export Tenant', 'class' => 'btn btn-circle yellow btn-sm', 'data-pjax' => 0]), Html::a('<i class="fa fa-trash"></i>', ['tenant/delete-all'], ['title' => 'Delete All Tenant', 'class' => 'btn btn-circle red btn-sm', 'data-confirm' => 'Are you sure you want to delete all items?', 'data-method' => 'post', 'data-pjax' => 0])]]); ?> <?php echo GridView::widget(['id' => 'tenant-gridview', 'dataProvider' => new ActiveDataProvider(['query' => $tenantQuery, 'pagination' => ['pageSize' => 10]]), 'columns' => Tenant::column()->nameWithLink()->users()->actions()->all()]); ?> <?php Portlet::end(); ?> <?php //Pjax::end(); ?> </div> <!-- END tenant portlet --> <?php Pjax::end(); ?> </div>
/** * @return mixed */ public static function getIdentity() { return TenantModel::findOne(Yii::$app->session->get('user.tenantId')); }
/** * @return mixed */ public function getTenant() { return Tenant::findOne($this->tenant_id); }