Added MyMembership info widget

This commit is contained in:
Faeze Moradi 2020-10-06 19:23:59 +02:00
parent f2f05b2531
commit 5c0c9438cc
2 changed files with 67 additions and 0 deletions

View File

@ -0,0 +1,45 @@
<?php
namespace humhub\modules\space\widgets;
use humhub\modules\space\models\Membership;
use humhub\modules\space\models\Space;
use humhub\widgets\TimeAgo;
use Yii;
use yii\base\Widget;
class MyMembership extends Widget
{
/** @var Space */
public $space;
public function run()
{
$membership = Membership::find()->where([
'space_id' => $this->space->id,
'user_id' => Yii::$app->user->id,
'status' => Membership::STATUS_MEMBER
])->one();
return $this->render('myMembership', [
'role' => $this->space->getUserGroup(),
'permissions' => $this->getPermissions(),
'memberSince' => empty($membership) ? '-' : TimeAgo::widget(['timestamp' => $membership->created_at])
]);
}
public function getPermissions()
{
$userPermissions = [];
$permissions = $this->space->permissionManager->getPermissions();
$group_id = $this->space->getUserGroup();
foreach ($permissions as $permission) {
if ($this->space->permissionManager->getGroupState($group_id, $permission))
$userPermissions[] = $permission->title;
}
return $userPermissions;
}
}

View File

@ -0,0 +1,22 @@
<?php
use humhub\widgets\PanelMenu;
/**
* @var string $role
* @var array $permissions
* @var string $memberSince
*/
?>
<div class="panel panel-default panel-my-membership" id="my-membership-panel">
<?= PanelMenu::widget(['id' => 'space-my-membership-panel']); ?>
<div class="panel-heading"><?= Yii::t('SpaceModule.base', '<strong>My Membership Info</strong>'); ?></div>
<div class="panel-body">
<div><b><?= Yii::t('SpaceModule.base', 'Current Role') ?>: </b><?= ucfirst($role) ?></div>
<div><b><?= Yii::t('SpaceModule.base', 'Permissions') ?>: </b>
<div><?= empty($permissions) ? '-' : implode(", ", $permissions) ?></div>
</div>
<div><b><?= Yii::t('SpaceModule.base', 'Member Since') ?>: </b><?= $memberSince ?></div>
</div>
</div>