disable links based on permissions

This commit is contained in:
coderkun 2014-04-09 00:07:37 +02:00
commit fbc377f25a
4 changed files with 43 additions and 6 deletions

View file

@ -24,7 +24,7 @@
*
* @var array
*/
public $models = array('seminaries', 'users', 'questgroupshierarchy', 'questgroups', 'media');
public $models = array('seminaries', 'users', 'userseminaryroles', 'questgroupshierarchy', 'questgroups', 'media');
/**
* User permissions
*
@ -71,6 +71,15 @@
if(!is_null($seminary['media_id'])) {
$seminary['media'] = $this->Media->getMediaById($seminary['media_id']);
}
// Character of currently logged-in user
try {
$seminary['usercharacter'] = $this->Characters->getCharacterForUserAndSeminary($this->Auth->getUserId(), $seminary['id']);
}
catch(\nre\exceptions\IdNotFoundException $e) {
}
$seminary['userroles'] = $this->Userseminaryroles->getUserseminaryrolesForUserById(IntermediateController::$user['id'], $seminary['id']);
}

View file

@ -6,7 +6,7 @@
<h1><a href="<?=$linker->link(array('seminaries',$seminary['url']))?>"><?=$seminary['title']?></a></h1>
<h2><?=_('Characters')?></h2>
<ul>
<ul class="gchars cf">
<?php foreach($characters as &$character) : ?>
<li>
<?php if(array_key_exists('small_avatar', $character)) : ?>

View file

@ -1,16 +1,32 @@
<h1><?=_('Seminaries')?></h1>
<?php if(count(array_intersect(array('admin','moderator'),\hhu\z\controllers\IntermediateController::$user['roles'])) > 0) : ?>
<nav>
<li><a href="<?=$linker->link('create', 1)?>"><?=_('Create new seminary')?></a></li>
</nav>
<?php endif ?>
<ul>
<?php foreach($seminaries as &$seminary) : ?>
<li>
<?php if(array_key_exists('media', $seminary)) : ?>
<img src="<?=$linker->link(array('media','index',$seminary['media']['url']))?>" />
<?php endif ?>
<h2><a href="<?=$linker->link(array('seminary', $seminary['url']), 1)?>"><?=$seminary['title']?></a></h2>
<h2>
<?php if(count($seminary['userroles']) > 0) : ?>
<a href="<?=$linker->link(array('seminary', $seminary['url']), 1)?>"><?=$seminary['title']?></a>
<?php else : ?>
<?=$seminary['title']?>
<?php endif ?>
</h2>
<details>
<summary><?=sprintf(_('created by %s on %s'), $seminary['creator']['username'], $dateFormatter->format(new \DateTime($seminary['created'])))?></summary>
<summary>
<?=\hhu\z\Utils::t($seminary['description'])?><br />
<?=sprintf(_('created by %s on %s'), $seminary['creator']['username'], $dateFormatter->format(new \DateTime($seminary['created'])))?><br />
<?php if(!array_key_exists('usercharacter', $seminary)) : ?>
<a href="<?=$linker->link(array('characters','register',$seminary['url']))?>"><?=_('Create a Character')?></a>
<?php elseif(count($seminary['userroles']) == 0) : ?>
<?=sprintf(_('Your Character “%s” has not been activated yet'), $seminary['usercharacter']['name'])?>
<?php endif ?>
</summary>
</details>
</li>
<?php endforeach ?>

View file

@ -11,9 +11,21 @@
</p>
<h2><?=_('Characters')?></h2>
<ul>
<ul class="gchars cf">
<?php foreach($characters as &$character) : ?>
<li><a href="<?=$linker->link(array('characters','character',$character['seminary_url'],$character['url']))?>"><?=$character['name']?></a> (<?=$character['xps']?> XPs, <?=_('Level')?> <?=$character['xplevel']['level']?><?php if(!is_null($character['xplevel']['name'])) : ?>: <?=$character['xplevel']['name']?><?php endif ?>) (<a href="<?=$linker->link(array('seminaries',$character['seminary_url']))?>"><?=$character['seminary_title']?></a>)</li>
<li>
<?php if(array_key_exists('small_avatar', $character)) : ?>
<p><img src="<?=$linker->link(array('media','seminary',$character['seminary_url'],$character['small_avatar']['url']))?>"></p>
<?php endif ?>
<p>
<?php if(count($character['user_seminaryroles']) > 0) : ?>
<a href="<?=$linker->link(array('characters','character',$character['seminary_url'],$character['url']))?>"><?=$character['name']?></a>
<?php else : ?>
<?=$character['name']?>
<?php endif ?>
</p>
<p><small><?=_('Level')?> <?=$character['xplevel']['level']?></small></p>
</li>
<?php endforeach ?>
</ul>