API_USER::api_edit PHP Method

api_edit() public method

api_edit function.
public api_edit ( ) : void
return void
    function api_edit()
    {
        $this->app_check("post");
        if (!isset($this->appAllow["user"]["edit"])) {
            //无权限并记录日志
            $_arr_return = array("alert" => "x050308");
            $_arr_logTarget[] = array("app_id" => $this->appRequest["app_id"]);
            $_arr_logType = array("user", "edit");
            $this->log_do($_arr_logTarget, "app", $_arr_return, $_arr_logType);
            $this->obj_api->halt_re($_arr_return);
        }
        $_arr_userSubmit = $this->mdl_user->input_edit_api();
        if ($_arr_userSubmit["alert"] != "ok") {
            $this->obj_api->halt_re($_arr_userSubmit);
        }
        $_arr_sign = array("act_post" => $GLOBALS["act_post"], $_arr_userSubmit["user_by"] => $_arr_userSubmit["user_str"]);
        if (isset($_arr_userSubmit["user_check_pass"]) && $_arr_userSubmit["user_check_pass"] == true) {
            $_arr_sign["user_check_pass"] = true;
            $_arr_sign["user_pass"] = $_arr_userSubmit["user_pass"];
        } else {
            $_arr_sign["user_check_pass"] = false;
        }
        if (isset($_arr_userSubmit["user_pass_new"]) && $_arr_userSubmit["user_pass_new"]) {
            $_arr_sign["user_pass_new"] = $_arr_userSubmit["user_pass_new"];
        }
        if (isset($_arr_userSubmit["user_mail_new"]) && $_arr_userSubmit["user_mail_new"]) {
            $_arr_sign["user_mail_new"] = $_arr_userSubmit["user_mail_new"];
        }
        if (isset($_arr_userSubmit["user_nick"]) && $_arr_userSubmit["user_nick"]) {
            $_arr_sign["user_nick"] = $_arr_userSubmit["user_nick"];
        }
        if (isset($_arr_userSubmit["user_contactStr"]) && $_arr_userSubmit["user_contactStr"]) {
            $_arr_sign["user_contact"] = $_arr_userSubmit["user_contactStr"];
        }
        if (isset($_arr_userSubmit["user_extendStr"]) && $_arr_userSubmit["user_extendStr"]) {
            $_arr_sign["user_extend"] = $_arr_userSubmit["user_extendStr"];
        }
        //print_r($_arr_userSubmit);
        //print_r(array_merge($this->appRequest, $_arr_sign));
        if (!$this->obj_sign->sign_check(array_merge($this->appRequest, $_arr_sign), $this->appRequest["signature"])) {
            $_arr_return = array("alert" => "x050403");
            $this->obj_api->halt_re($_arr_return);
        }
        $_arr_userRow = $this->mdl_user->mdl_read($_arr_userSubmit["user_str"], $_arr_userSubmit["user_by"]);
        if ($_arr_userRow["alert"] != "y010102") {
            $this->obj_api->halt_re($_arr_userRow);
        }
        if ($_arr_userRow["user_status"] == "disable") {
            $_arr_return = array("alert" => "x010401");
            $this->obj_api->halt_re($_arr_return);
        }
        $_is_pass = false;
        if ($_arr_userSubmit["user_check_pass"] == true) {
            //是否验证密码
            if (fn_baigoEncrypt($_arr_userSubmit["user_pass"], $_arr_userRow["user_rand"], true) != $_arr_userRow["user_pass"]) {
                $_arr_return = array("alert" => "x010213");
                $this->obj_api->halt_re($_arr_return);
            } else {
                $_is_pass = true;
            }
        }
        if (!isset($this->appAllow["user"]["global"]) && !$_is_pass) {
            //是否授权
            $_arr_belongRow = $this->mdl_belong->mdl_read($_arr_userRow["user_id"], $this->appRequest["app_id"]);
            if ($_arr_belongRow["alert"] != "y070102") {
                $_arr_return = array("alert" => "x050308");
                $this->obj_api->halt_re($_arr_return);
            }
        }
        if ((BG_REG_ONEMAIL == "false" || BG_LOGIN_MAIL == "on") && isset($_arr_userSubmit["user_mail_new"]) && $_arr_userSubmit["user_mail_new"]) {
            $_arr_userCheck = $this->mdl_user->mdl_read($_arr_userSubmit["user_mail_new"], "user_mail", $_arr_userRow["user_id"]);
            //检查邮箱
            if ($_arr_userCheck["alert"] == "y010102") {
                return array("alert" => "x010211");
            }
        }
        //file_put_contents(BG_PATH_ROOT . "test.txt", $_str_userPass . "||" . $_str_rand);
        $_arr_userEdit = $this->mdl_user->mdl_edit($_arr_userRow["user_id"]);
        $_arr_userEdit["user_name"] = $_arr_userRow["user_name"];
        //unset($_arr_userEdit["alert"]);
        $_str_src = fn_jsonEncode($_arr_userEdit, "encode");
        $_str_code = $this->obj_crypt->encrypt($_str_src, $this->appRow["app_key"]);
        $_arr_return = array("code" => $_str_code);
        $_tm_time = time();
        //通知
        foreach ($this->appRows as $_key => $_value) {
            $_arr_data = array("act_post" => "edit", "code" => $this->obj_crypt->encrypt($_str_src, $_value["app_key"]), "time" => $_tm_time, "app_id" => $_value["app_id"], "app_key" => $_value["app_key"]);
            $_arr_data["signature"] = $this->obj_sign->sign_make($_arr_data);
            if (stristr($_value["app_url_notify"], "?")) {
                $_str_conn = "&";
            } else {
                $_str_conn = "?";
            }
            if (stristr($_value["app_url_notify"], "?")) {
                $_str_conn = "&";
            } else {
                $_str_conn = "?";
            }
            fn_http($_value["app_url_notify"] . $_str_conn . "mod=notify", $_arr_data, "post");
        }
        $_arr_return["alert"] = $_arr_userEdit["alert"];
        $this->obj_api->halt_re($_arr_return);
    }

Usage Example

Example #1
0
include_once BG_PATH_FUNC . "init.func.php";
//管理员通用
fn_init(true, false, "Content-type: application/json", true, "ajax");
include_once BG_PATH_CONTROL . "api/user.class.php";
//载入商家控制器
$api_user = new API_USER();
//初始化商家
switch ($GLOBALS["act_post"]) {
    case "reg":
        $api_user->api_reg();
        break;
    case "login":
        $api_user->api_login();
        break;
    case "edit":
        $api_user->api_edit();
        break;
    case "mailbox":
        $api_user->api_mailbox();
        break;
    case "nomail":
        $api_user->api_nomail();
        break;
    case "forgot":
        $api_user->api_forgot();
        break;
    case "del":
        $api_user->api_del();
        break;
    default:
        switch ($GLOBALS["act_get"]) {