%PDF- %PDF-
Direktori : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/group-membership/models/ |
Current File : /home/vacivi36/intranet.vacivitta.com.br/protected/modules/group-membership/models/Group.php |
<?php /** * Group membership * @link https://github.com/cuzy-app/humhub-modules-group-membership * @license https://github.com/cuzy-app/humhub-modules-group-membership/blob/master/docs/LICENCE.md * @author [Marc FARRE](https://marc.fun) for [CUZY.APP](https://www.cuzy.app) */ namespace humhub\modules\groupMembership\models; use humhub\modules\user\models\User; use Yii; use yii\base\InvalidConfigException; class Group extends \humhub\modules\user\models\Group { /** * User is allowed to become member of this group himself * @param null|User $user * @return bool * @throws InvalidConfigException */ public function canSelfBecomeMember($user = null) { if ($user === null) { if (Yii::$app->user->isGuest) { return false; } $user = Yii::$app->user->identity; } if (!$this->usersManageTheirMembership()) { return false; } // Can become member if not yet a member return !$this->isMember($user); } /** * Users are allowed to manage their membership to this group * @return boolean * @throws InvalidConfigException */ public function usersManageTheirMembership() { $permission = Yii::$app->user->permissionManager->getById('users_manage_their_membership', 'group-membership'); return (bool)Yii::$app->user->permissionManager->getGroupState($this->id, $permission); } /** * User is allowed to remove his membership himself of this group himself * @param null|User $user * @return bool * @throws InvalidConfigException */ public function canSelfRemoveMembership($user = null) { if ($user === null) { if (Yii::$app->user->isGuest) { return false; } $user = Yii::$app->user->identity; } if (!$this->usersManageTheirMembership()) { return false; } // Cannot remove his membership if member of only this group if ((int)$user->getGroups()->count() <= 1) { return false; } // Can remove his membership if already a member return $this->isMember($user); } }