diff --git a/app/Events/ConfigureAdminMenu.php b/app/Events/ConfigureAdminMenu.php new file mode 100644 index 00000000..9cbce16c --- /dev/null +++ b/app/Events/ConfigureAdminMenu.php @@ -0,0 +1,19 @@ +menu = &$menu; + } +} diff --git a/app/Events/UserAuthenticated.php b/app/Events/UserAuthenticated.php new file mode 100644 index 00000000..396aaceb --- /dev/null +++ b/app/Events/UserAuthenticated.php @@ -0,0 +1,21 @@ +user = $user; + } + +} diff --git a/app/Events/UserLoggedIn.php b/app/Events/UserLoggedIn.php index f738dedf..c5bc3d23 100644 --- a/app/Events/UserLoggedIn.php +++ b/app/Events/UserLoggedIn.php @@ -2,12 +2,10 @@ namespace App\Events; -use Illuminate\Queue\SerializesModels; +use App\Models\User; class UserLoggedIn extends Event { - use SerializesModels; - public $user; /** @@ -15,7 +13,7 @@ class UserLoggedIn extends Event * * @return void */ - public function __construct(\App\Models\User $user) + public function __construct(User $user) { $this->user = $user; } diff --git a/app/Events/UserRegistered.php b/app/Events/UserRegistered.php new file mode 100644 index 00000000..e8019032 --- /dev/null +++ b/app/Events/UserRegistered.php @@ -0,0 +1,21 @@ +user = $user; + } + +} diff --git a/app/Http/Controllers/AuthController.php b/app/Http/Controllers/AuthController.php index b392a404..7ed02941 100644 --- a/app/Http/Controllers/AuthController.php +++ b/app/Http/Controllers/AuthController.php @@ -9,6 +9,7 @@ use Utils; use Cookie; use Option; use Session; +use App\Events; use App\Models\User; use App\Models\UserModel; use Illuminate\Http\Request; @@ -34,7 +35,7 @@ class AuthController extends Controller // guess type of identification $auth_type = (validate($identification, 'email')) ? "email" : "username"; - event(new \App\Events\UserTryToLogin($identification, $auth_type)); + event(new Events\UserTryToLogin($identification, $auth_type)); // Get user instance from repository. // If the given identification is not registered yet, @@ -58,7 +59,7 @@ class AuthController extends Controller // time in minutes $time = $request->input('keep') == true ? 10080 : 60; - event(new \App\Events\UserLoggedIn($user)); + event(new Events\UserLoggedIn($user)); return json(trans('auth.login.success'), 0, [ 'token' => $user->getToken() @@ -140,6 +141,8 @@ class AuthController extends Controller return json(trans('auth.register.registered'), 5); } + event(new Events\UserRegistered($user)); + return json([ 'errno' => 0, 'msg' => trans('auth.register.success'), diff --git a/app/Http/Controllers/PlayerController.php b/app/Http/Controllers/PlayerController.php index 481a74d1..b958839f 100644 --- a/app/Http/Controllers/PlayerController.php +++ b/app/Http/Controllers/PlayerController.php @@ -114,8 +114,7 @@ class PlayerController extends Controller $old_name = $this->player->player_name; - $this->player->player_name = $new_name; - $this->player->save(); + $this->player->rename($new_name); return json(trans('user.player.rename.success', ['old' => $old_name, 'new' => $new_name]), 0); } diff --git a/app/Http/Controllers/UserController.php b/app/Http/Controllers/UserController.php index c1bab5e8..e3a88de8 100644 --- a/app/Http/Controllers/UserController.php +++ b/app/Http/Controllers/UserController.php @@ -112,7 +112,7 @@ class UserController extends Controller setcookie('uid', '', time() - 3600, '/'); setcookie('token', '', time() - 3600, '/'); - Session::flush(); + session()->flush(); return json(trans('user.profile.delete.success'), 0); } diff --git a/app/Http/Middleware/CheckAuthenticated.php b/app/Http/Middleware/CheckAuthenticated.php index 6d35b127..4e9ca710 100644 --- a/app/Http/Middleware/CheckAuthenticated.php +++ b/app/Http/Middleware/CheckAuthenticated.php @@ -8,6 +8,7 @@ use Http; use Cookie; use Session; use App\Models\User; +use App\Events\UserAuthenticated; use App\Exceptions\PrettyPageException; class CheckAuthenticated @@ -53,6 +54,8 @@ class CheckAuthenticated if ($return_user) return $user; + event(new UserAuthenticated($user)); + return $next($request); } else { return redirect('auth/login')->with('msg', trans('auth.check.anonymous')); diff --git a/app/Services/Hook.php b/app/Services/Hook.php index 5e762001..1b9f361c 100644 --- a/app/Services/Hook.php +++ b/app/Services/Hook.php @@ -8,6 +8,7 @@ use Illuminate\Support\Arr; use Illuminate\Support\Str; use App\Events\ConfigureRoutes; use App\Events\ConfigureUserMenu; +use App\Events\ConfigureAdminMenu; class Hook { @@ -26,12 +27,14 @@ class Hook */ public static function addMenuItem($category, $position, array $menu) { - Event::listen(ConfigureUserMenu::class, function ($event) use ($menu, $position) + $class = $category == "user" ? ConfigureUserMenu::class : ConfigureAdminMenu::class; + + Event::listen($class, function ($event) use ($menu, $position, $category) { $new = []; $offset = 0; - foreach ($event->menu['user'] as $item) { + foreach ($event->menu[$category] as $item) { // push new menu items at the given position if ($offset == $position) { $new[] = $menu; @@ -41,7 +44,7 @@ class Hook $offset++; } - $event->menu['user'] = $new; + $event->menu[$category] = $new; }); } diff --git a/app/Services/Repositories/UserRepository.php b/app/Services/Repositories/UserRepository.php index 999af9fb..e417cd82 100644 --- a/app/Services/Repositories/UserRepository.php +++ b/app/Services/Repositories/UserRepository.php @@ -20,8 +20,11 @@ class UserRepository extends Repository if ($type == "uid") { return Arr::has($this->items, $identification); } else { - Arr::where((array) $this->items, function($key, $value) use ($identification, $type) { - return ($user->$type == $identification); + return Arr::where((array) $this->items, function($key, $value) use ($identification, $type) { + if (property_exists($value, $type)) + return false; + + return ($value->$type == $identification); }); } } @@ -57,4 +60,9 @@ class UserRepository extends Repository return Arr::get($this->items, $identification, null); } + + public function getCurrentUser() + { + return $this->get(session('uid')); + } } diff --git a/app/helpers.php b/app/helpers.php index 291398b5..9733ec2b 100644 --- a/app/helpers.php +++ b/app/helpers.php @@ -143,7 +143,8 @@ if (! function_exists('bs_menu')) { { $menu = require BASE_DIR."/config/menu.php"; - event(new App\Events\ConfigureUserMenu($menu)); + event($type == "user" ? new App\Events\ConfigureUserMenu($menu) + : new App\Events\ConfigureAdminMenu($menu)); if (!isset($menu[$type])) { throw new InvalidArgumentException; diff --git a/resources/assets/src/sass/admin.scss b/resources/assets/src/sass/admin.scss index 948ea737..a3aedf43 100644 --- a/resources/assets/src/sass/admin.scss +++ b/resources/assets/src/sass/admin.scss @@ -2,7 +2,7 @@ * @Author: printempw * @Date: 2016-07-22 14:08:41 * @Last Modified by: printempw - * @Last Modified time: 2016-08-06 18:52:47 + * @Last Modified time: 2016-11-17 15:06:22 */ @import "style.scss"; @@ -14,17 +14,6 @@ } } -.key { - vertical-align: middle !important; -} -.value { - width: 70%; -} - -td[class='key'], td[class='value'] { - border-top: 0 !important; -} - .btn-group { .btn { margin-right: 10px; diff --git a/resources/assets/src/sass/style.scss b/resources/assets/src/sass/style.scss index 3ae7ba94..849ada28 100644 --- a/resources/assets/src/sass/style.scss +++ b/resources/assets/src/sass/style.scss @@ -2,7 +2,7 @@ * @Author: printempw * @Date: 2016-06-04 20:55:09 * @Last Modified by: printempw - * @Last Modified time: 2016-09-26 22:09:14 + * @Last Modified time: 2016-11-17 15:06:31 */ $font_stack: Ubuntu, 'Segoe UI', 'Microsoft Yahei', 'Microsoft Jhenghei', sans-serif; @@ -204,3 +204,14 @@ input:-webkit-autofill { } } } + +.key { + vertical-align: middle !important; +} +.value { + width: 70%; +} + +td[class='key'], td[class='value'] { + border-top: 0 !important; +} diff --git a/resources/lang/en/user.yml b/resources/lang/en/user.yml index 755ad569..d7e19afb 100644 --- a/resources/lang/en/user.yml +++ b/resources/lang/en/user.yml @@ -131,7 +131,7 @@ profile: delete: title: Delete Account - notice: Sure to delete your account on :sitename? + notice: Sure to delete your account on :site? admin: Admin account can not be deleted. button: Delete My Account diff --git a/resources/lang/en/validation.yml b/resources/lang/en/validation.yml index 09a1d391..aba499cb 100644 --- a/resources/lang/en/validation.yml +++ b/resources/lang/en/validation.yml @@ -92,4 +92,5 @@ attributes: file: File name: Name player_name: 'Player Name' + new_player_name: 'Player Name' identification: Email or player name diff --git a/resources/lang/zh-CN/user.yml b/resources/lang/zh-CN/user.yml index d934168f..6c9b94c9 100644 --- a/resources/lang/zh-CN/user.yml +++ b/resources/lang/zh-CN/user.yml @@ -137,7 +137,7 @@ profile: delete: title: 删除账号 - notice: 确定要删除你在 :sitename 上的账号吗? + notice: 确定要删除你在 :site 上的账号吗? admin: 管理员账号不能被删除哟 button: 删除我的账户 diff --git a/resources/lang/zh-CN/validation.yml b/resources/lang/zh-CN/validation.yml index cf207a51..b564445c 100644 --- a/resources/lang/zh-CN/validation.yml +++ b/resources/lang/zh-CN/validation.yml @@ -83,6 +83,7 @@ attributes: file: 文件 username: 用户名 identification: 邮箱或角色名 + new_player_name: 角色名 nickname: 昵称 player_name: 角色名 email: 邮箱 diff --git a/resources/views/vendor/option-form/select.tpl b/resources/views/vendor/option-form/select.tpl index bb20da8a..ad27a4c6 100644 --- a/resources/views/vendor/option-form/select.tpl +++ b/resources/views/vendor/option-form/select.tpl @@ -2,7 +2,7 @@ @foreach ((array) $items as $item) - "; + @endforeach