Пример #1
0
<?php

//codigo por jpcoseani
//script que devuelve el listado de modulos de un rol determinado
global $ari;
$ari->popup = 1;
// no mostrar el main_frame
//falta controlar si viene el id del rol y validar si el rol se crea correctamente
if (isset($_POST['id'])) {
    $role = new seguridad_role($_POST['id']);
} else {
    throw new OOB_Exception_400("La variable [id] no esta definida");
}
//ARRAY CON LOS MODULOS DEL ROLE
$modules_role = false;
$modules_role = seguridad_role::listModulesFor($role, false);
$modulos = array();
if ($modules = OOB_module::listModules()) {
    foreach ($modules as $m) {
        $padre = array();
        $padre['leaf'] = false;
        $padre['id'] = "m_" . $m->name();
        $padre['text'] = $m->nicename();
        $padre['expanded'] = true;
        $padre['iconCls'] = 'Clsmodule';
        $name = '';
        $name = $m->name();
        //VEO SI EL MODULO ESTA EN EL ROL
        if ($modules_role) {
            if (in_array($name, $modules_role)) {
                $padre['checked'] = true;
Пример #2
0
 public static function adminFullMenu()
 {
     global $ari;
     //		$return  = OOB_module::listModules ('enabled', false);
     $roles = array();
     $mismodulos = array();
     $return = false;
     if ($ari->get('user') == false) {
         return false;
     }
     //-----------
     // cache del menu para cada usuario
     // Set a id for this cache
     $id = 'admin_fullmenu__' . $ari->agent->getLang() . '__' . $ari->user->get('user') . '.php';
     //Set cache options
     $options = array('cacheDir' => $ari->cachedir . DIRECTORY_SEPARATOR, 'lifeTime' => 9000, 'fileNameProtection' => false, 'automaticSerialization' => true);
     // 'onlyMemoryCaching' => true,
     //  'memoryCaching' => true
     // Create a Cache_Lite object
     $Cache_Lite = new Cache_Lite($options);
     // Test if thereis a valide cache for this id
     if ($return = $Cache_Lite->get($id)) {
         return $return;
     } else {
         // No valid cache found
         if ($roles = seguridad_role::myRoles($ari->get('user'))) {
             foreach ($roles as $role) {
                 if ($mods = seguridad_role::listModulesFor($role)) {
                     $mismodulos = array_merge($mismodulos, $mods);
                 }
             }
         }
         // in some weird situations array_unique doesn't work, probably because
         // it s an object array
         $out = array();
         $list = array();
         foreach ($mismodulos as $key => $so) {
             if (!in_array($so->name(), $list)) {
                 $list[] = $so->name();
                 $out[$key] = $so;
             }
         }
         $mismodulos = $out;
         if (count($mismodulos) > 0) {
             $i = 0;
             foreach ($mismodulos as $modula) {
                 $menu = $modula->adminMenu();
                 if ($modula->isenabled() && count($menu)) {
                     $return[$i]["name"] = $modula->nicename();
                     $return[$i]["id"] = $modula->name();
                     $return[$i]['menu'] = $menu;
                     $i++;
                 }
             }
         }
         $Cache_Lite->save($return);
         return $return;
     }
 }