示例#1
0
 /**
  * @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;
 }
示例#2
0
文件: SSO.php 项目: wilaheng/wila
 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");
     }
 }