} if (!isset($_POST['limit'])) { $_POST['limit'] = PAGE_SIZE; } if (!isset($_POST['data'])) { $_POST['data'] = ""; } $start = $_POST["start"]; $count = $_POST["limit"]; //Para eliminar Roles if (isset($_POST['DeleteRolData'])) { //se decodifica el json en un array y hacemos each para recorrer los roles que desea eliminar el usuario $change_status = json_decode($_POST['DeleteRolData'], true); $ari->db->StartTrans(); foreach ($change_status as $id_rol) { $rol = new seguridad_role($id_rol['id']); $rol->delete(); } if ($ari->db->CompleteTrans()) { $ari->clearCache(); } } //FILTRO POR COLUMNAS $where = ""; if (trim($_POST['data']) != "") { $filtros = false; $filtros = admin_session_state::cache_filters(json_decode($_POST['data'], true)); $operadores = array(); $operadores["eq"] = "="; $operadores["lt"] = "<"; $operadores["gt"] = ">";
$tmpUser = new oob_user($real_members_users[$i]); $role->removeUser($tmpUser); } } for ($i = 0; $i < count($miebros_usuarios); $i++) { if (!in_array($miebros_usuarios[$i], $real_members_users)) { $tmpUser = new oob_user($miebros_usuarios[$i]); $role->addUser($tmpUser); } } } if (isset($_POST['grupos'])) { //GRUPOS $miebros_grupos = split(",", $_POST['grupos']); $real_members_groups = array(); if ($grupos = seguridad_role::listGroupsFor($role)) { foreach ($grupos as $g) { $real_members_groups[] = $g->get('group'); } } for ($i = 0; $i < count($real_members_groups); $i++) { if (!in_array($real_members_groups[$i], $miebros_grupos)) { $tmpGroup = new seguridad_group($real_members_groups[$i]); $role->removeGroup($tmpGroup); } } for ($i = 0; $i < count($miebros_grupos); $i++) { if (!in_array($miebros_grupos[$i], $real_members_groups)) { $tmpGroup = new seguridad_group($miebros_grupos[$i]); $role->addGroup($tmpGroup); }
if (!in_array($real_members_users[$i], $miebros_usuarios)) { $tmpUser = new oob_user($real_members_users[$i]); $role->removeUser($tmpUser); } } for ($i = 0; $i < count($miebros_usuarios); $i++) { if (!in_array($miebros_usuarios[$i], $real_members_users)) { $tmpUser = new oob_user($miebros_usuarios[$i]); $role->addUser($tmpUser); } } } $return = array(); $i = 0; if ($value != "") { if ($usuarios = seguridad_role::searchNoMembers($value, DELETED, OPERATOR_DISTINCT, $role, USER)) { foreach ($usuarios as $u) { $return[$i]['id'] = $u->get('user'); $return[$i]['uname'] = $u->name(); $i++; } } } $result["totalCount"] = $i; $result["topics"] = $return; } else { throw new OOB_Exception_400("La variable [id] no esta definida"); } //RESULTADO $obj_comunication = new OOB_ext_comunication(); $obj_comunication->set_data($result);
/** metodo privado que hace la busqueda de permiso en el arbol */ private static function isObjectAllowedByInheritance($action, &$currentUserRoles, &$tree) { if (!is_array($tree)) { return false; } $tree = array_reverse($tree); foreach ($tree as $elemento) { // veamos q no tenga permisos propios, y si tiene cortamos ahi if ($roles = seguridad_role::listRoles(USED, 'name', OPERATOR_EQUAL)) { $arrayRoles = array(); foreach ($roles as $r) { //verifico si tiene permiso de ver if (seguridad::getObjectPermission($action, $r, $elemento->object())) { $arrayRoles[] = true; } } } //end if reload de seguridad if (seguridad::getPermissionForAnyObject($action, $currentUserRoles, $elemento->object())) { return true; } else { if (count($arrayRoles) > 0) { return false; } } } return false; }
<?php //codigo por jpcoseani //script que devuelve el listrado de grupos no miembros de un rol global $ari; $ari->popup = 1; // no mostrar el main_frame $i = 0; $return = array(); if (isset($_POST['id'])) { $role = new seguridad_role($_POST['id']); if ($grupos = seguridad_role::searchNoMembers('', DELETED, OPERATOR_DISTINCT, $role, GROUP)) { foreach ($grupos as $u) { $return[$i]['id'] = $u->get('group'); $return[$i]['uname'] = $u->get('name'); $i++; } } } else { throw new OOB_Exception_400("La variable [id] no esta definida"); } $result = array(); $result["totalCount"] = $i; $result["topics"] = $return; //RESULTADO $obj_comunication = new OOB_ext_comunication(); $obj_comunication->set_data($result); $obj_comunication->send(true, true);
/** Lista Roles para la lista de confiados */ public static function listRolesForTrustees($trustees = YES, $sort = 'name', $operator = OPERATOR_EQUAL) { global $ari; if (trim($trustees) != "") { $trustees = $ari->db->qMagic($trustees); $trustees = " AND `Trustees` {$operator} {$trustees} "; } if (in_array($sort, seguridad_role::getOrders())) { $sortby = "ORDER BY `{$sort}`"; } else { $sortby = "ORDER BY `Name`"; } $savem = $ari->db->SetFetchMode(ADODB_FETCH_ASSOC); $sql = "SELECT `ID`, `Name`, `Description`, `Status`, `Anonymous`, `Trustees`\n\t\t\t FROM `Security_Role`\n\t\t\t WHERE Status = '" . USED . "' \n\t\t\t {$trustees} {$sortby}"; $rs = $ari->db->Execute($sql); $ari->db->SetFetchMode($savem); $i = 0; if ($rs && !$rs->EOF) { while (!$rs->EOF) { $return[$i] = new seguridad_role(ID_UNDEFINED); $return[$i]->set("role", $rs->fields["ID"]); $return[$i]->set("name", $rs->fields["Name"]); $return[$i]->set("description", $rs->fields["Description"]); $return[$i]->set("status", $rs->fields["Status"]); $return[$i]->set("anonymous", $rs->fields["Anonymous"]); $return[$i]->set("trustees", $rs->fields["Trustees"]); $i++; $rs->MoveNext(); } } else { $return = false; } $rs->Close(); return $return; }
<?php //codigo por jpcoseani //script que devuelve el listado de usuarios miembros de un rol global $ari; $ari->popup = 1; // no mostrar el main_frame $i = 0; $return = array(); $result = array(); if (isset($_POST['id'])) { $role = new seguridad_role($_POST['id']); if ($usuarios = seguridad_role::listUsersFor($role)) { foreach ($usuarios as $u) { $return[$i]['id'] = $u->get('user'); $return[$i]['uname'] = $u->name(); $i++; } } $result["totalCount"] = $i; $result["topics"] = $return; } else { throw new OOB_Exception_400("La variable [id] no esta definida"); } //RESULTADO $obj_comunication = new OOB_ext_comunication(); $obj_comunication->set_data($result); $obj_comunication->send(true, true);
<?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;
$return = array(); foreach ($roles_miembros as $m) { $m = new seguridad_role($m); $return[$i]['id'] = $m->get('role'); $return[$i]['name'] = $m->get('name'); ++$i; } $ari->t->assign("roles_miembros", $return); } //end if //search roles no members if ($roles = oob_perspective::searchNoMembers("", DELETED, OPERATOR_DISTINCT, $perspective->name(), ROLE)) { $i = 0; $return = array(); foreach ($roles as $r) { $r = new seguridad_role($r); $return[$i]['id'] = $r->get('role'); $return[$i]['name'] = $r->get('name'); ++$i; } $ari->t->assign("roles", $return); } //end if //Adds the selected modules if (isset($_POST['AddModule']) && isset($_POST['modules_select'])) { foreach ($_POST['modules_select'] as $name_module) { $perspective->addModule($name_module); } } // end if isset //Removes the selected modules
include_once 'PhpExt/Tree/TreePanel.php'; include_once 'PhpExt/Tree/AsyncTreeNode.php'; include_once 'PhpExt/Tree/TreeLoader.php'; include_once 'PhpExt/Tree/MultiSelectionModel.php'; include_once 'PhpExt/Tree/TreeNode.php'; include_once 'PhpExt/Element.php'; include_once 'PhpExt/Form/Hidden.php'; include_once 'PhpExt/Form/Checkbox.php'; include_once 'PhpExtUx/App/SearchField.php'; global $ari; $ari->popup = 1; // no mostrar el main_frame $grid_id = ''; $role = ''; if (isset($_POST['id'])) { $role = new seguridad_role($_POST['id']); } else { throw new OOB_Exception_400("La variable [id] no esta definida"); } PhpExt_Javascript::sendContentType(); if (isset($_POST['gid'])) { $grid_id = $_POST['gid']; } $field_width = 180; //ancho de los controles $page_size = PAGE_SIZE; //CONTROLES //nombre del role $txt_nombre = PhpExt_Form_TextField::createTextField("txt_nombre", "Nombre")->setWidth($field_width)->setMsgTarget(PhpExt_Form_FormPanel::MSG_TARGET_SIDE)->setValue($role->get("name")); //descripcion del role $txt_descripcion = PhpExt_Form_TextArea::createTextArea("txt_descripcion", "Descripción")->setMsgTarget(PhpExt_Form_FormPanel::MSG_TARGET_SIDE)->setWidth($field_width)->setValue($role->get("description"));
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; } }
<?php #OOB/N1 Framework [2008 - Nutus] - PM // Código por JPC // Script que PROCESA LOS DATOS DEL FORM NUEVO ROL global $ari; $ari->popup = 1; $resultado = array(); $resultado["errors"] = array(); $resultado["success"] = false; $role = new seguridad_role(); if (isset($_POST['txt_descripcion'])) { $role->set('description', $_POST['txt_descripcion']); } else { throw new OOB_Exception_400("La variable [txt_descripcion] no esta definida"); } if (isset($_POST['txt_nombre'])) { $role->set('name', $_POST['txt_nombre']); } else { throw new OOB_Exception_400("La variable [txt_nombre] no esta definida"); } if (isset($_POST['chk_anonimo'])) { $role->set('anonymous', ANONIMO); } else { $role->set('anonymous', NO_ANONIMO); } //confiable if (isset($_POST['chk_confiados'])) { $role->set('trustees', YES); } else { $role->set('trustees', NO);