} } } } $ari->t->assign("arrModulo", $arrModulo); $ari->t->assign("arrIdModulo", $arrIdModulo); $ari->t->assign("modSelect", $modSelect); if (!isset($_POST['guardar'])) { $ari->t->assign("newName", ""); $ari->t->assign("newNiceName", ""); } else { //verificar datos enviados duplicados if (!$sp->Validar()) { $ari->error->addError('seguridad_permission', 'SENT_DUPLICATE_DATA'); } $permiso = new seguridad_permission(); $permiso->set('modulename', $_POST['cboModulo']); $permiso->set('name', $_POST['txtName']); $permiso->set('nicename', $_POST['txtNiceName']); //stores? if ($permiso->store()) { header("Location: " . $ari->get("adminaddress") . '/seguridad/permission/new'); exit; } else { $ari->t->assign("form", true); $ari->t->assign("error", true); $errores = $ari->error->getErrorsfor("seguridad_permission"); foreach ($errores as $error) { $ari->t->assign($error, true); } //refrescar template
/** Devuelve el objeto permiso que se corresponde con el nombre del permiso ($permissionName) y el nombre del modulo ($moduleName) */ public static function nameConstructor($permissionName, $moduleName) { global $ari; $name = $ari->db->qMagic($permissionName); $moduleName = $ari->db->qMagic($moduleName); $sql = "SELECT ID, ModuleName, Name, NiceName \n\t\t\t\tFROM Security_Permission \n \t\tWHERE ModuleName = {$moduleName} \n\t\t\t\tAND Name = {$name}\n\t\t\t "; //echo $sql;exit; $savem = $ari->db->SetFetchMode(ADODB_FETCH_ASSOC); $rs = $ari->db->Execute($sql); $ari->db->SetFetchMode($savem); if ($rs && !$rs->EOF) { $return = new seguridad_permission(ID_UNDEFINED); $return->set("permission", $rs->fields["ID"]); $return->set("name", $rs->fields["Name"]); $return->set("nicename", $rs->fields["NiceName"]); $return->set("modulename", $rs->fields["ModuleName"]); $rs->Close(); } else { $return = false; } return $return; }
throw new OOB_exception("Acceso Denegado", "403", "Acceso Denegado. Consulte con su Administrador!", true); } $i = 0; $modSelect = ''; $arrModulo = array(); $arrIdModulo = array(); if ($objModulo = OOB_module::listModules()) { //cargar modulos foreach ($objModulo as $m) { $modules[$i]['name'] = $m->nicename(); //nombre $modules[$i]['id'] = $m->name(); //id $perm_name = array(); $perm_id = array(); if ($objPermiso = seguridad_permission::listPermissionsFor($m, true)) { $j = 0; //cargar permisos para modulo actual foreach ($objPermiso as $p) { $perm_name[$j] = $p->get("nicename") . " (" . $p->get("name") . ")"; $perm_id[$j] = $p->get("permission"); $j++; } } $refrescados = array(); //vemos si tenemos q refrescar algo if (isset($_POST['modulo']) && isset($_POST['permiso']) && isset($_POST['accion']) && isset($_POST['nicename']) && isset($_POST['inmenu'])) { //cargo el array refrescados $r = 0; for ($k = 0; $k < count($_POST['modulo']); $k++) { //me fijo si el elemento posteado actual es del modulo q recorro
$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; } else { $padre['checked'] = false; } } else { $padre['checked'] = false; } $padre['children'] = array(); if ($permisos = seguridad_permission::listPermissionsFor($m)) { foreach ($permisos as $p) { $permiso = array(); $permiso['leaf'] = false; $permiso['expanded'] = true; $permiso['id'] = "p_" . $p->get("permission"); $permiso['text'] = $p->get("nicename"); $permiso['children'] = array(); $permiso['iconCls'] = 'Clspermiso'; if ($acciones = seguridad_action::listActionsFor($p, ALL_MENU)) { foreach ($acciones as $a) { $accion = array(); $accion['leaf'] = true; $accion['id'] = "a_" . $a->get("action"); $accion['text'] = $a->get("nicename"); $accion['iconCls'] = 'Clsaccion';
/** returns the module admin menu */ public function adminMenu() { global $ari; if ($ari->get('user') == false || is_a($ari->module, 'OOB_module') == false) { return false; } $menu = ""; $array_menu = array(); // loads localized array @(include $this->admindir() . DIRECTORY_SEPARATOR . 'menu' . DIRECTORY_SEPARATOR . $ari->agent->getLang() . '.php'); // cache del menu para cada modulo en cada usuario // Set a id for this cache $id = 'menu__' . $ari->agent->getLang() . '__' . $ari->user->get('user') . '-' . $this->name() . '.php'; //Set cache options $options = array('cacheDir' => $ari->cachedir . DIRECTORY_SEPARATOR, 'lifeTime' => SQL_CACHE, 'fileNameProtection' => false, 'automaticSerialization' => true); // Create a Cache_Lite object $Cache_Lite = new Cache_Lite($options); // Test if thereis a valide cache for this id if ($menu = $Cache_Lite->get($id)) { return $menu; } else { // No valid cache found if ($permissions = seguridad_permission::listPermissionsFor($this)) { $menu = array(); $i = 0; foreach ($permissions as $p) { if ($actions = seguridad_action::listActionsFor($p, IN_MENU)) { foreach ($actions as $a) { if (seguridad::isAllowed($a, $ari->perspective)) { if (!count($array_menu) == 0) { $menu[$i]['name'] = $array_menu[$p->get("name") . $a->get("name")]; } else { $menu[$i]['name'] = $a->get("nicename"); } $menu[$i]['link'] = $this->name() . "/" . $p->get("name") . "/" . $a->get("name"); $i++; } } //end foreach $actions } } //end foreach $permissions } if (count($menu) == 0) { $menu = false; } $Cache_Lite->save($menu); return $menu; } // end cache }
$filtros = false; if ($_POST['data'] != "") { $filtros = admin_session_state::cache_filters(json_decode($_POST['data'], true)); } //FIN DE FILTROS $i = 0; $return = array(); if (!$filtros) { $filtros[] = array("field" => "status", "type" => "list", "value" => "1"); } if ($list_permisos = seguridad_permission::listPermission()) { foreach ($list_permisos as $permiso) { $return[$i]['id'] = $permiso->get('permission'); $return[$i]['nombre'] = $permiso->get('name'); $return[$i]['descripcion'] = $permiso->get('nicename'); // if($modulo = new OOB_module($permiso->get('modulename'))){ // $return[$i]['module'] = $modulo->name(); // es como el id // $return[$i]['modulenicename'] = $modulo->nicename(); //detalle // } $i++; } //end each } //end if $result = array(); $result["totalCount"] = seguridad_permission::permissionCount(); $result["topics"] = $return; //RESULTADO $obj_comunication = new OOB_ext_comunication(); $obj_comunication->set_data($result); $obj_comunication->send(true, true);