protected function _getPermissionListFromKey($key, $permissions = null)
 {
     if ($permissions === null) {
         $permissions = TBGContext::getAvailablePermissions();
     }
     foreach ($permissions as $pkey => $permission) {
         if ($pkey == $key) {
             return array_key_exists('details', $permission) ? $permission['details'] : array();
         } elseif (array_key_exists('details', $permission) && count($permission['details']) > 0 && ($plist = $this->_getPermissionListFromKey($key, $permission['details']))) {
             return $plist;
         }
     }
     return array();
 }
 <span class="faded_out smaller"><?php 
        echo $project->getKey();
        ?>
</span></a>
						<ul style="display: none;" id="project_permission_details_<?php 
        echo $project->getID();
        ?>
">
							<?php 
        include_template('configuration/permissionsblock', array('base_id' => $base_id . 'project_' . $project->getID() . '_project_permissions', 'permissions_list' => TBGContext::getAvailablePermissions('project'), 'mode' => 'general', 'target_id' => $project->getID(), 'module' => 'core', 'user_id' => $user_id, 'access_level' => $access_level));
        ?>
							<?php 
        include_template('configuration/permissionsblock', array('base_id' => $base_id . 'project_' . $project->getID() . '_page_permissions', 'permissions_list' => TBGContext::getAvailablePermissions('project_pages'), 'mode' => 'project_pages', 'target_id' => $project->getID(), 'module' => 'core', 'user_id' => $user_id, 'access_level' => $access_level));
        ?>
							<?php 
        include_template('configuration/permissionsblock', array('base_id' => $base_id . 'project_' . $project->getID() . '_issue_permissions', 'permissions_list' => TBGContext::getAvailablePermissions('issues'), 'mode' => 'general', 'target_id' => $project->getID(), 'module' => 'core', 'user_id' => $user_id, 'access_level' => $access_level));
        ?>
						</ul>
					</li>
				<?php 
    }
    ?>
			</ul>
		<?php 
} else {
    ?>
			<div class="faded_out" style="padding: 2px;"><?php 
    echo __('There are no projects');
    ?>
</div>
		<?php 
echo htmlentities($role->getName(), ENT_COMPAT, TBGContext::getI18n()->getCharset());
?>
" style="width: 300px;"><br>
	<div style="margin-top: 10px; font-weight: bold;"><?php 
echo __('Role permissions');
?>
</div>
	<ul class="simple_list" style="display: block; width: auto;">
	<?php 
include_template('configuration/rolepermissionseditlist', array('role' => $role, 'permissions_list' => TBGContext::getAvailablePermissions('project'), 'module' => 'core', 'target_id' => null));
?>
	<?php 
include_template('configuration/rolepermissionseditlist', array('role' => $role, 'permissions_list' => TBGContext::getAvailablePermissions('project_pages'), 'module' => 'core', 'target_id' => null));
?>
	<?php 
include_template('configuration/rolepermissionseditlist', array('role' => $role, 'permissions_list' => TBGContext::getAvailablePermissions('issues'), 'module' => 'core', 'target_id' => null));
?>
	<?php 
TBGEvent::createNew('core', 'rolepermissionsedit', $role)->trigger();
?>
	</ul>
	<input type="submit" value="<?php 
echo __('Save role');
?>
" style="float: right;">
	<?php 
echo image_tag('spinning_16.gif', array('id' => "role_{$role->getID()}_form_indicator", 'style' => 'display: none; float: right; margin-right: 5px;'));
?>
	<br style="clear: both;">
</form>