/** * Returns an array of all possible space owners */ public function getNewOwnerArray() { $possibleOwners = []; $query = Membership::find()->joinWith(['user', 'user.profile'])->andWhere(['space_membership.group_id' => 'admin']); foreach ($query->all() as $membership) { $possibleOwners[$membership->user->id] = $membership->user->displayName; } return $possibleOwners; }
protected function getMembershipQuery() { $query = Membership::find(); if (Setting::Get('spaceOrder', 'space') == 0) { $query->orderBy('name ASC'); } else { $query->orderBy('last_visit DESC'); } $query->joinWith('space'); $query->where(['space_membership.user_id' => Yii::$app->user->id, 'space_membership.status' => Membership::STATUS_MEMBER]); return $query; }
public function actionIndex() { $query = Membership::find(); if (Setting::Get('spaceOrder', 'space') == 0) { $query->orderBy('name ASC'); } else { $query->orderBy('last_visit DESC'); } $query->joinWith('space'); $query->where(['space_membership.user_id' => Yii::$app->user->id, 'space_membership.status' => Membership::STATUS_MEMBER]); return $this->renderAjax('index', ['memberships' => $query->all()]); }
/** * Creates data provider instance with search query applied * * @param array $params * @return ActiveDataProvider */ public function search($params) { $query = Membership::find(); $query->andWhere(['space_membership.status' => $this->status]); $query->joinWith(['user', 'user.profile']); $dataProvider = new ActiveDataProvider(['query' => $query, 'pagination' => ['pageSize' => 50]]); $dataProvider->setSort(['attributes' => ['user.profile.firstname' => ['asc' => ['profile.firstname' => SORT_ASC], 'desc' => ['profile.firstname' => SORT_DESC]], 'user.profile.lastname' => ['asc' => ['profile.lastname' => SORT_ASC], 'desc' => ['profile.lastname' => SORT_DESC]], 'user.username', 'last_visit', 'group_id']]); $this->load($params); if (!$this->validate()) { $query->where('0=1'); return $dataProvider; } $query->andWhere(['space_membership.space_id' => $this->space_id]); $query->andFilterWhere(['space_membership.group_id' => $this->group_id]); $query->andFilterWhere(['like', 'profile.lastname', $this->getAttribute('user.profile.lastname')]); $query->andFilterWhere(['like', 'profile.firstname', $this->getAttribute('user.profile.firstname')]); $query->andFilterWhere(['like', 'user.username', $this->getAttribute('user.username')]); return $dataProvider; }
/** * Callback to validate module database records. * * @param Event $event */ public static function onIntegrityCheck($event) { $integrityController = $event->sender; $integrityController->showTestHeadline("Space Module - Spaces (" . Space::find()->count() . " entries)"); foreach (Space::find()->all() as $space) { foreach ($space->applicants as $applicant) { if ($applicant->user == null) { if ($integrityController->showFix("Deleting applicant record id " . $applicant->id . " without existing user!")) { $applicant->delete(); } } } } $integrityController->showTestHeadline("Space Module - Module (" . models\Module::find()->count() . " entries)"); foreach (models\Module::find()->joinWith('space')->all() as $module) { if ($module->space == null) { if ($integrityController->showFix("Deleting space module" . $module->id . " without existing space!")) { $module->delete(); } } } $integrityController->showTestHeadline("Space Module - Memberships (" . models\Membership::find()->count() . " entries)"); foreach (models\Membership::find()->joinWith('space')->all() as $membership) { if ($membership->space == null) { if ($integrityController->showFix("Deleting space membership" . $membership->space_id . " without existing space!")) { $membership->delete(); } } if ($membership->user == null) { if ($integrityController->showFix("Deleting space membership" . $membership->user_id . " without existing user!")) { $membership->delete(); } } } }