Пример #1
0
 function createUser($userID, $privilegeID, $accessID, $pwd, $attrs = array(), $site = SITENAME)
 {
     if (!isset($_SESSION['SESS_PRIVILEGE_ID']) || $_SESSION['SESS_PRIVILEGE_ID'] > ROLE_PRIME) {
         $site = SITENAME;
     }
     if (checkUserID($userID, $site)) {
         return array("error" => "UserID Exists");
     }
     //Check PrivilegeID
     $sql = _db(true)->_selectQ(_dbTable("privileges", true), "count(*) as cnt")->_where(array("id" => $privilegeID))->_raw(" AND (site='" . SITENAME . "' OR site='*')");
     $res = _dbQuery($sql, true);
     if (!$res) {
         return array("error" => "PrivilegeID Query Error");
     }
     $data = _dbData($res, true);
     _dbFree($res, true);
     if ($data[0]['cnt'] <= 0) {
         return array("error" => "PrivilegeID Not Found This Site {$site}");
     }
     //Check AccessID
     $sql = _db(true)->_selectQ(_dbTable("access", true), "count(*) as cnt")->_where(array("blocked" => 'false', "id" => $accessID))->_raw(" AND (FIND_IN_SET('" . SITENAME . "',sites) OR sites='*')");
     $res = _dbQuery($sql, true);
     if (!$res) {
         return array("error" => "AccessID Query Error");
     }
     $data = _dbData($res, true);
     _dbFree($res, true);
     if ($data[0]['cnt'] <= 0) {
         return array("error" => "AccessID Not Found For This Site {$site}");
     }
     $params = getDefaultParams($userID, $pwd, $privilegeID, $accessID);
     $data = array_merge($params, $attrs);
     $reqParams = explode(",", getConfig("USER_CREATE_REQUIRED_FIELDS"));
     foreach ($reqParams as $vx) {
         if (!isset($data[$vx]) || $data[$vx] == null || strlen($data[$vx]) <= 0) {
             return array("error" => "Missing Field", "field" => $vx);
         }
     }
     $sql = _db(true)->_insertQ1(_dbtable("users", true), $data);
     $res = _dbQuery($sql, true);
     if ($res) {
         return true;
     }
     return array("error" => "Error In User Creation", "details" => _db(true)->get_error());
 }
Пример #2
0
 function createUser($userID, $privilegeID, $accessID, $pwd, $attrs = array(), $site = SITENAME)
 {
     if (!isset($_SESSION['SESS_PRIVILEGE_ID']) || $_SESSION['SESS_PRIVILEGE_ID'] > ROLE_PRIME) {
         $site = SITENAME;
     }
     if (checkUserID($userID, $site)) {
         return array("error" => "UserID Exists");
     }
     //Check PrivilegeID
     $sql = _db(true)->_selectQ(_dbTable("privileges", true), "count(*) as cnt")->_where(array("id" => $privilegeID))->_whereOR("site", [SITENAME, '*']);
     $resData = $sql->_GET();
     if (!$resData) {
         return array("error" => "PrivilegeID Query Error");
     } elseif ($resData[0]['cnt'] <= 0) {
         return array("error" => "PrivilegeID Not Found For Site");
     }
     $sql = _db(true)->_selectQ(_dbTable("access", true), "count(*) as cnt")->_where(array("blocked" => 'false', "id" => $accessID))->_whereMulti([["sites", [SITENAME, "FIND"]], ["sites", '*']], "AND", "OR");
     $resData = $sql->_GET();
     if (!$resData) {
         return array("error" => "AccessID Query Error");
     } elseif ($resData[0]['cnt'] <= 0) {
         return array("error" => "AccessID Not Found For Site");
     }
     $params = getDefaultParams($userID, $pwd, $privilegeID, $accessID);
     //code added by Mita
     if (isset($attrs['pwd'])) {
         unset($attrs['pwd']);
     }
     if (isset($attrs['pwd_salt'])) {
         unset($attrs['pwd_salt']);
     }
     //End of Mita's Code
     $data = array_merge($params, $attrs);
     //If custom guid is there, then no default guid
     if (isset($data['guid'])) {
         $data['guid'] = generateGUID($data['guid']);
     } else {
         $data['guid'] = generateGUID($params['guid']);
     }
     $reqParams = explode(",", getConfig("USER_CREATE_REQUIRED_FIELDS"));
     foreach ($reqParams as $vx) {
         if (!isset($data[$vx]) || $data[$vx] == null || strlen($data[$vx]) <= 0) {
             return array("error" => "Missing Field", "field" => $vx);
         }
     }
     $sql = _db(true)->_insertQ1(_dbTable("users", true), $data);
     $res = _dbQuery($sql, true);
     if ($res) {
         return array("guid" => $data['guid'], "userid" => $data['userid'], "name" => $data['name'], "email" => $data['email'], "status" => "success");
     }
     $errMsg = _db(true)->get_error();
     if (strpos(strtolower("###" . $errMsg), "duplicate") > 2) {
         return array("error" => "UserID Duplicate Across Sites");
     } else {
         return array("error" => "Error In User Creation", "details" => $errMsg);
     }
 }