From f0532dcc6cd560bf6b8f1867992558b092ad09a1 Mon Sep 17 00:00:00 2001 From: printempw Date: Sun, 2 Oct 2016 20:30:27 +0800 Subject: [PATCH] fix minimal length of password --- app/Http/Controllers/AuthController.php | 30 ++++++++----------------- app/helpers.php | 16 +++++++++++++ resources/assets/src/js/auth.js | 19 +++++----------- resources/lang/en/skinlib.yml | 2 +- resources/lang/zh-CN/validation.yml | 3 +++ resources/views/auth/login.tpl | 2 +- setup/index.php | 2 +- 7 files changed, 37 insertions(+), 37 deletions(-) diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index b917b36b..250ce9b1 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -22,23 +22,16 @@ class AuthController extends Controller public function handleLogin(Request $request) { $this->validate($request, [ - 'email' => 'sometimes|required|email', - 'username' => 'sometimes|required|username', - 'password' => 'required|min:8|max:16' + 'identification' => 'required', + 'password' => 'required|min:6|max:16' ]); - if ($request->has('email')) { - $auth_type = "email"; - } elseif ($request->has('username')) { - $auth_type = "username"; - } else { - return json(trans('auth.validation.identification'), 3); - } + $identification = $request->input('identification'); + + $auth_type = (validate($request->input('identification'), 'email')) ? "email" : "username"; // instantiate user - $user = ($auth_type == 'email') ? - new User(null, ['email' => $request->input('email')]) : - new User(null, ['username' => $request->input('username')]); + $user = new User(null, [$auth_type => $identification]); if (session('login_fails', 0) > 3) { if (strtolower($request->input('captcha')) != strtolower(session('phrase'))) @@ -59,18 +52,13 @@ class AuthController extends Controller setcookie('uid', $user->uid, time()+$time, '/'); setcookie('token', $user->getToken(), time()+$time, '/'); - return json([ - 'errno' => 0, - 'msg' => trans('auth.login.success'), + return json(trans('auth.login.success'), 0, [ 'token' => $user->getToken() ]); } else { - $fails = session('login_fails', 0); - Session::put('login_fails', $fails + 1); + Session::put('login_fails', session('login_fails', 0) + 1); - return json([ - 'errno' => 1, - 'msg' => trans('auth.validation.password'), + return json(trans('auth.validation.password'), 1, [ 'login_fails' => session('login_fails') ]); } diff --git a/app/helpers.php b/app/helpers.php index 74001d75..46b3e016 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -232,3 +232,19 @@ if (! function_exists('menv')) { return $value; } } + +if (! function_exists('validate')) { + + function validate($value, $type) + { + switch ($type) { + case 'email': + return (bool) filter_var($value, FILTER_VALIDATE_EMAIL); + break; + + default: + # code... + break; + } + } +} diff --git a/resources/assets/src/js/auth.js b/resources/assets/src/js/auth.js index d9f492ed..cd6dbef4 100644 --- a/resources/assets/src/js/auth.js +++ b/resources/assets/src/js/auth.js @@ -1,8 +1,8 @@ /* * @Author: printempw * @Date: 2016-07-17 10:54:22 - * @Last Modified by: printempw - * @Last Modified time: 2016-09-15 10:09:52 + * @Last Modified by: prpr + * @Last Modified time: 2016-10-02 20:27:13 */ 'use strict'; @@ -21,22 +21,15 @@ function freshCaptcha() { var login_fails = 0; $('#login-button').click(function() { - var data = new Object(); - var email_or_uname = $('#email_or_username').val(); - - if (/\S+@\S+\.\S+/.test($('#email_or_username').val())) { - data.email = email_or_uname; - } else { - data.username = email_or_uname; - } + var data = new Object(); + data.identification = $('#identification').val(); data.password = $('#password').val(); data.keep = $('#keep').prop('checked') ? true : false; - if (email_or_uname == "") { + if (data.identification == "") { showMsg(trans('auth.emptyIdentification')); - $('#email_or_username').focus(); - // check valid email address + $('#identification').focus(); } else if (data.password == "") { showMsg(trans('auth.emptyPassword')); $('#password').focus(); diff --git a/resources/lang/en/skinlib.yml b/resources/lang/en/skinlib.yml index 687197a0..8ede33ad 100644 --- a/resources/lang/en/skinlib.yml +++ b/resources/lang/en/skinlib.yml @@ -1,6 +1,6 @@ general: filter: Filter - my-upload: My Uploaded + my-upload: Uploaded by Me sort: Sort search-textures: Search For Textures upload-new-skin: Upload New Skin diff --git a/resources/lang/zh-CN/validation.yml b/resources/lang/zh-CN/validation.yml index 843bcc79..e59ab0ba 100644 --- a/resources/lang/zh-CN/validation.yml +++ b/resources/lang/zh-CN/validation.yml @@ -75,10 +75,13 @@ url: ':attribute 格式不正确。' custom: attribute-name: { rule-name: custom-message } + identification: + required: 邮箱或角色名格式错误 attributes: name: 名称 username: 用户名 + identification: 邮箱或角色名 nickname: 昵称 player_name: 角色名 email: 邮箱 diff --git a/resources/views/auth/login.tpl b/resources/views/auth/login.tpl index 9be4ac30..9312c1e0 100644 --- a/resources/views/auth/login.tpl +++ b/resources/views/auth/login.tpl @@ -14,7 +14,7 @@
- +
diff --git a/setup/index.php b/setup/index.php index bdcaa9d6..9daab4a6 100644 --- a/setup/index.php +++ b/setup/index.php @@ -37,7 +37,7 @@ switch ($step) { $password = $_POST['password']; $sitename = isset($_POST['sitename']) ? $_POST['sitename'] : "Blessing Skin Server"; - if (filter_var($email, FILTER_VALIDATE_EMAIL)) { + if (validate($email, 'email')) { if (!check_password($password)) { redirect_to('index.php?step=2', '无效的密码。密码长度应该大于 8 并小于 16。');