<?php
namespace web\admin\rigger;

class chgpass {
    public static function json_update() {
        global $db;
        $rsuser = verifyfast();
        global $tokensalt;
        $post = new \ciy\post();
        if($rsuser['id'] == 10)
            return errjson('演示账号不能操作');
        $oldpass = $post->get('oldpass');
        if (empty($oldpass))
            return errjson('请输入原密码.');
        $newpass = $post->get('newpass');
        if (empty($newpass))
            return errjson('请输入新密码.');
        if (strlen($newpass) < 6)
            return errjson('密码应至少6位');
        // if (!preg_match('/[@#$%^&*()_+!]/', $newpass))
        //     return errjson('密码应包含特殊符号@#$%^&*()_+!等');
        // if (!preg_match('/[a-z]/', $newpass))
        //     return errjson('密码应包含小写字母');
        // if (!preg_match('/[A-Z]/', $newpass))
        //     return errjson('密码应包含大写字母');
        // if (!preg_match('/[0-9]/', $newpass))
        //     return errjson('密码应包含数字');
        $csql = new \ciy\sql('zc_admin');
        $csql->where('id', $rsuser['id']);
        $userrow = $db->getone($csql);
        if (!is_array($userrow))
            return errjson('用户不存在');
        if ($userrow['password'] != md5($oldpass . $tokensalt))
            return errjson('原密码错误.');
        try {
            $db->begin();
            $updata = array();
            $updata['password'] = md5($newpass . $tokensalt);
            $csql = new \ciy\sql('zc_admin');
            $csql->where('id', $rsuser['id']);
            if ($db->update($csql, $updata) === false)
                throw new \Exception('更新失败:' . $db->error);
            savelog($db, $rsuser['id'], 'PASSWORD', '修改密码:' . $updata['password']);
            $db->commit();
        } catch (\Exception $ex) {
            $db->rollback();
            return errjson($ex->getMessage());
        }
        return succjson();
    }
}