partial #1964 - option to see the user's permissions

This commit is contained in:
Daniel Camargo 2013-10-31 16:13:02 -02:00
parent 52c79421ab
commit 71a86482fa
3 changed files with 119 additions and 0 deletions

View File

@ -11,7 +11,17 @@ class Crunchbutton_Admin extends Cana_Table {
}
return $this->_timezone;
}
public function getPermissionsByGroups(){
return c::db()->get( "SELECT ap.*, g.name as group_name FROM admin_permission ap
INNER JOIN admin_group ag ON ap.id_group = ap.id_group and ag.id_admin = {$this->id_admin}
INNER JOIN `group` g ON g.id_group = ag.id_group ORDER BY group_name, permission ASC" );
}
public function getPermissionsByUser(){
return c::db()->get( "SELECT * FROM admin_permission WHERE id_admin = {$this->id_admin}" );
}
public function permission() {
if (!isset($this->_permission)) {
$this->_permission = new Crunchbutton_Acl_Admin($this);

View File

@ -61,6 +61,7 @@
</div>
</div>
<?php } ?>
<?php if( $group->id_group ) { ?>
<div class="box">
<div class="box-header">
<span class="title">Access</span>
@ -73,6 +74,7 @@
</ul>
</div>
</div>
<?php } ?>
</div>
</div>
</div>

View File

@ -8,6 +8,7 @@
$admin = $this->admin;
$_permissions = new Crunchbutton_Admin_Permission();
?>
<div class="container-fluid padded">
<div class="row-fluid">
@ -120,6 +121,112 @@
</div>
</div>
<?php if( $admin->id_admin ) { ?>
<div class="accordion" id="accordion">
<?php
$userPermissions = $admin->getPermissionsByUser();
if( $userPermissions->count() > 0 ){
?>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapse<?php echo $admin->id_admin; ?>">
Permissions of the user
</a>
</div>
<div id="collapse<?php echo $admin->id_admin; ?>" class="accordion-body collapse" style="height: 0px;">
<div class="accordion-inner">
<ul>
<?php foreach( $userPermissions as $permission ) { ?>
<li>
<?php
$info = $_permissions->getPermissionInfo( $permission->permission );
if( $info ){
echo $info[ 'description' ];
}
?>
&nbsp;<span class="note"><?php echo $permission->permission ?></span>
</li>
<?php } ?>
</ul>
</div>
</div>
</div>
<?php
}
$groups = $admin->groups();
if( $groups->count() > 0 ){
foreach( $groups as $group ){
$groupPermissions = $group->permissions();
?>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapse<?php echo str_replace( ' ' , '', $group->name); ?>">
Permissions of the group "<?php echo $group->name ?>"
</a>
</div>
<div id="collapse<?php echo str_replace( ' ' , '', $group->name); ?>" class="accordion-body collapse" style="height: 0px;">
<div class="accordion-inner">
<ul>
<?php foreach( $groupPermissions as $permission ) { ?>
<li>
<?php
$info = $_permissions->getPermissionInfo( $permission->permission );
if( $info ){
echo $info[ 'description' ];
}
?>
&nbsp;<span class="note"><?php echo $permission->permission ?></span>
</li>
<?php } ?>
</ul>
</div>
</div>
</div>
<?php
}
}
?><!--
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseTwo">
Collapsible Group Item #2
</a>
</div>
<div id="collapseTwo" class="accordion-body collapse" style="height: 0px;">
<div class="accordion-inner">
Anim pariatur cliche reprehenderit, enim eiusmod high life accusamus terry richardson ad squid. 3 wolf moon officia aute, non cupidatat skateboard dolor brunch. Food truck quinoa nesciunt laborum eiusmod. Brunch 3 wolf moon tempor, sunt aliqua put a bird on it squid single-origin coffee nulla assumenda shoreditch et. Nihil anim keffiyeh helvetica, craft beer labore wes anderson cred nesciunt sapiente ea proident. Ad vegan excepteur butcher vice lomo. Leggings occaecat craft beer farm-to-table, raw denim aesthetic synth nesciunt you probably haven't heard of them accusamus labore sustainable VHS.
</div>
</div>
</div>
<div class="accordion-group">
<div class="accordion-heading">
<a class="accordion-toggle" data-toggle="collapse" data-parent="#accordion" href="#collapseThree">
Collapsible Group Item #3
</a>
</div>
<div id="collapseThree" class="accordion-body in collapse" style="height: auto;">
<div class="accordion-inner">
<ul >
<li>
<span>Login</span>
<span class="pull-right">
<input type="text" name="login" <?php if( $admin->id_admin ) { echo 'readonly="readonly"'; } ?> maxlength="40" id="login" value="<?php echo $admin->login; ?>" />
</span>
</li>
</ul>
</div>
</div>
</div>-->
</div>
<?php } ?>
</div>
</div>
<script>