/** * 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]); }
/** * @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.'); }
$this->title = $model->name; $this->params['breadcrumbs'][] = ['label' => 'Tenants', 'url' => ['index']]; $this->params['breadcrumbs'][] = $this->title; //$this->params['sidebarItems'] = Yii::$app->params['sidebarItems']; ?> <div class="row"> <?php Pjax::begin(['id' => 'container-pjax', 'timeout' => false]); ?> <!-- BEGIN user portlet --> <div class="col-md-6"> <?php Portlet::begin(['id' => 'user-portlet', 'title' => 'Users Permission', 'subtitle' => 'for this tenant...']); ?> <?php echo GridView::widget(['id' => 'user-gridview', 'dataProvider' => new ArrayDataProvider(['allModels' => ApiUser::find()->email('')->orderBy('email:1')->all(), 'pagination' => ['pageSize' => 10]]), 'columns' => ApiUser::column()->nickname()->email()->role($model->name)->actions("{update-role-to-user} {update-role-to-admin} {remove-tenant}", $model->id)->all()]); ?> <?php Portlet::end(); ?> </div> <!-- END user portlet --> <?php Pjax::end(); ?> </div>
/** * @return boolean */ public function getIsAdmin() { $apiUser = ApiUser::findOne(Yii::$app->user->identity->auth->source_id); $role = $apiUser['app_metadata']['permissions'][Yii::$app->getModule('auth0')->serviceId][Yii::$app->tenant->identity->name]['role']; return 'admin' == $role; }
//$this->params['sidebarItems'] = Yii::$app->params['sidebarItems']; ?> <div class="row"> <?php Pjax::begin(['id' => 'container-pjax', 'timeout' => false]); ?> <!-- BEGIN user portlet --> <div class="col-md-6"> <?php Portlet::begin(['id' => 'user-portlet', 'title' => 'Users Permission', 'subtitle' => 'for this tenant...']); ?> <?php echo GridView::widget(['id' => 'user-gridview', 'dataProvider' => new ArrayDataProvider(['allModels' => $userQuery->all(), 'pagination' => ['pageSize' => 10]]), 'columns' => ApiUser::column()->nickname()->email()->tenants()->all()]); ?> <?php 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']);