/** * @ajax */ public function addClick() { extract(dbm()->argv(array("GRP" => array("req" => true, "type" => "digit")))); if (isset($_SESSION["vfs_forms_Users_Group"][$GRP])) { return; } $_SESSION["vfs_forms_Users_Group"][$GRP] = vfs_Service::getGroupName($GRP); ksort($_SESSION["vfs_forms_Users_Group"]); $gr = null; foreach ($_SESSION["vfs_forms_Users_Group"] as $GRP => $NAME) { $gr[] = array(array("value" => $GRP, "align" => "center"), $NAME, array("value" => "DELETE", "callback" => "vfs/forms/UsersGroupsT/delClick", "params" => "GRP=" . $GRP, "align" => "center")); } $_env = env(); $_env->callback()->call(array("GRP")); $_env->data(array("USER_GROUPS" => $gr)); return $_env; }
private function createNamespace($_USR, $NAME, $AREA_CODE, $AREA_SUB_CODE, $POSITION) { $c0 = DB::lookup("vfs", true); $_GID = array(); $_PKG = array(); $_CID = array(); $_ACL = array(); $r2 = $c0->executeQuery("SELECT GRP, NAME FROM vfs_groups WHERE GRP='1100'"); while ($r2->next()) { $_GID[$r2->getInt("GRP")] = $r2->get("NAME"); } // only if not expired if ($_SESSION["EXP"] == false) { $r2 = $c0->executeQuery("SELECT GRP, NAME FROM vfs_users_groups WHERE USR='******'", $_USR); while ($r2->next()) { $_GID[$r2->getInt("GRP")] = $r2->get("NAME"); } } $r3 = $c0->executeQuery("SELECT * FROM vfs_users_groups_classes WHERE GRP IN (%s)", implode(",", array_keys($_GID))); while ($r3->next()) { $PKG = $r3->getInt("PKG"); $PID = $r3->getInt("PID"); $CID = $r3->getInt("PKC"); if ($r3->getInt("FTR")) { $this->features[] = $CID; } if (!isset($this->CID[$PKG])) { $this->CID[$PKG] = array(); } if (!isset($_PKG[$r3->get("CODE")])) { $_PKG[$r3->get("CODE")] = $r3->get("PKG_NAME"); } if (!isset($_ACL[$PKG])) { $_ACL[$PKG] = array(); } $_ACL[$PKG][$CID] = $r3->get("ACL"); $Ga = $r3->get("DISP"); $this->CID[$PKG][$CID] = array("B" => $PID, "C" => $CID, "D" => $_ACL[$PKG][$CID], "G" => $r3->get("PKC_NAME"), "Ga" => $Ga, "H" => $r3->get("TYPE"), "PT" => $r3->get("TITLE"), "PD" => $r3->get("DESC"), "P" => $PID == 0 ? $r3->get("CODE") : $r3->get("PKC_NAME")); } foreach ($this->CID as $a => $b) { foreach ($b as $k => $v) { if ($v["B"]) { if (isset($this->CID[$a][$v["B"]])) { if (is_null($v["Ga"]) || empty($v["Ga"])) { $v["Ga"] = $v["G"]; } $this->CID[$a][$k]["P"] = $this->CID[$a][$v["B"]]["P"] . "/" . $v["G"] . "|" . $v["Ga"] . "@" . $v["H"]; } else { unset($this->CID[$a][$k]); } } } } $this->node = new api_TreeHelper(); foreach ($this->CID as $a => $thiz) { foreach ($thiz as $k => $v) { $key = $v["C"]; $this->TDA[$key] = array("T" => $v["PT"], "D" => $v["PD"]); $clz = $this->configure($v); if ($v["H"] != "C" && $v["H"] != "O") { $acl = $this->toACL($v["D"]); if (isset($this->ACL[$key])) { $tmp = $this->mergeACL($this->ACL[$key], $acl); $acl = $tmp; } $this->ACL[$clz] = $acl; } } } $_SESSION["ACL"] = $this->ACL; $_SESSION["TrH"] = $this->postProccess($this->node->pack()); $_SESSION["SPC"] = $this->SPC; $_SESSION["context"] = $_PKG; $_SESSION["ATR"] = array("NAME" => $NAME, "LOKER" => sprintf("%s: %s, %s: %s (%s)", inf()->term->AREA, $AREA_CODE, inf()->term->AREA_SUB, $AREA_SUB_CODE, vfs_Service::subAreaName($AREA_CODE, $AREA_SUB_CODE)), "UNIT" => $POSITION); $_SESSION["USR"] = $_USR; $_SESSION["EXT"] = null; $ex = $c0->executeQuery("SELECT * FROM vfs_users_ext WHERE USR='******'", $_USR); while ($ex->next()) { $_SESSION["EXT"][$ex->get("AREA")][] = $ex->get("AREA_SUB"); } }