├── .bowerrc ├── .env.example ├── .gitattributes ├── .gitignore ├── README.md ├── app ├── Console │ ├── Commands │ │ └── Inspire.php │ └── Kernel.php ├── Events │ └── Event.php ├── Exceptions │ └── Handler.php ├── Http │ ├── Controllers │ │ ├── Admin │ │ │ ├── DashboardController.php │ │ │ ├── PermissionController.php │ │ │ ├── RoleController.php │ │ │ └── UserController.php │ │ ├── AdminController.php │ │ ├── Auth │ │ │ ├── ForgotPasswordController.php │ │ │ ├── LoginController.php │ │ │ ├── RegisterController.php │ │ │ └── ResetPasswordController.php │ │ ├── CaptchaController.php │ │ ├── Controller.php │ │ └── HomeController.php │ ├── Kernel.php │ ├── Middleware │ │ ├── Admin.php │ │ ├── Api.php │ │ ├── AuthOnce.php │ │ ├── Authenticate.php │ │ ├── EncryptCookies.php │ │ ├── RedirectIfAuthenticated.php │ │ └── VerifyCsrfToken.php │ ├── Requests │ │ ├── Admin │ │ │ ├── RoleRequest.php │ │ │ └── UserRequest.php │ │ ├── Request.php │ │ └── UploadRequest.php │ └── routes.php ├── Jobs │ ├── Job.php │ └── SendMail.php ├── Listeners │ └── .gitkeep ├── Models │ ├── Permission.php │ ├── Role.php │ └── User.php ├── Policies │ └── .gitkeep └── Providers │ ├── AppServiceProvider.php │ ├── AuthServiceProvider.php │ ├── EventServiceProvider.php │ └── RouteServiceProvider.php ├── artisan ├── bootstrap ├── app.php ├── autoload.php └── cache │ └── .gitignore ├── bower.json ├── composer.json ├── config ├── app.php ├── auth.php ├── broadcasting.php ├── cache.php ├── captcha.php ├── compile.php ├── database.php ├── datatables.php ├── debugbar.php ├── entrust.php ├── filesystems.php ├── image.php ├── mail.php ├── queue.php ├── services.php ├── session.php └── view.php ├── database ├── .gitignore ├── factories │ └── ModelFactory.php ├── migrations │ ├── .gitkeep │ ├── 2017_05_23_114608_create_users_table.php │ └── 2017_05_23_132446_entrust_setup_tables.php └── seeds │ ├── .gitkeep │ ├── DatabaseSeeder.php │ ├── RoleUserTableSeeder.php │ ├── RolesTableSeeder.php │ └── UsersTableSeeder.php ├── gulpfile.js ├── package.json ├── phpunit.xml ├── public ├── .htaccess ├── MP_verify_4TFEzxL69ppeinx8.txt ├── css │ ├── admin.css │ ├── custom-admin.css │ ├── font │ │ ├── summernote.eot │ │ ├── summernote.ttf │ │ └── summernote.woff │ ├── images │ │ ├── controls.png │ │ └── loading.gif │ ├── login.css │ ├── main.css │ ├── register.css │ ├── site.css │ └── swiper.css ├── favicon.ico ├── favicon │ ├── android-icon-144x144.png │ ├── android-icon-192x192.png │ ├── android-icon-36x36.png │ ├── android-icon-48x48.png │ ├── android-icon-72x72.png │ ├── android-icon-96x96.png │ ├── apple-icon-114x114.png │ ├── apple-icon-120x120.png │ ├── apple-icon-144x144.png │ ├── apple-icon-152x152.png │ ├── apple-icon-180x180.png │ ├── apple-icon-57x57.png │ ├── apple-icon-60x60.png │ ├── apple-icon-72x72.png │ ├── apple-icon-76x76.png │ ├── apple-icon-precomposed.png │ ├── apple-icon.png │ ├── browserconfig.xml │ ├── favicon-16x16.png │ ├── favicon-32x32.png │ ├── favicon-96x96.png │ ├── favicon.ico │ ├── manifest.json │ ├── ms-icon-144x144.png │ ├── ms-icon-150x150.png │ ├── ms-icon-310x310.png │ └── ms-icon-70x70.png ├── fonts │ ├── FontAwesome.otf │ ├── fontawesome-webfont.eot │ ├── fontawesome-webfont.svg │ ├── fontawesome-webfont.ttf │ ├── fontawesome-webfont.woff │ ├── glyphicons-halflings-regular.eot │ ├── glyphicons-halflings-regular.svg │ ├── glyphicons-halflings-regular.ttf │ ├── glyphicons-halflings-regular.woff │ └── glyphicons-halflings-regular.woff2 ├── image │ ├── 20170515143919_4092.jpg │ ├── a.jpeg │ ├── b.jpeg │ ├── banner.png │ ├── best.png │ ├── beston.png │ ├── cata.png │ ├── check.png │ ├── checkfail.png │ ├── edit.png │ ├── eye-black.png │ ├── goback.png │ ├── index.png │ ├── jinb.png │ ├── link.png │ ├── login │ │ ├── login.png │ │ ├── logintitle.png │ │ ├── pass.png │ │ └── user.png │ ├── login_img │ │ ├── aaa.png │ │ ├── body.png │ │ ├── bodybg.png │ │ ├── check.png │ │ ├── checkon.png │ │ ├── loginbg.png │ │ ├── loginleft.png │ │ ├── logintitle.png │ │ ├── logo.png │ │ ├── logo2.png │ │ ├── logoa.png │ │ ├── logoimg.jpg │ │ ├── logoimg.png │ │ ├── logoimg00.png │ │ ├── logoimg1.png │ │ ├── logoimgf.png │ │ ├── pass.png │ │ ├── transparent.png │ │ ├── u37.png │ │ ├── user.png │ │ └── user.psd │ ├── loginbg.png │ ├── logo.png │ ├── m1.png │ ├── m2.png │ ├── m3.png │ ├── pro01.png │ ├── pro02.png │ ├── pro03.png │ ├── search.png │ ├── search1.png │ ├── titlebg.png │ ├── tongb.png │ ├── yinb.png │ ├── zhuce.png │ ├── 一等奖.jpg │ ├── 三等奖.jpg │ └── 二等奖.jpg ├── img │ ├── bootstrap-colorpicker │ │ ├── alpha-horizontal.png │ │ ├── alpha.png │ │ ├── hue-horizontal.png │ │ ├── hue.png │ │ └── saturation.png │ ├── cgpi.jpg │ ├── logo_transparent.jpg │ └── pattern.png ├── index.php ├── js │ ├── admin.js │ ├── jquery-1.8.3.min.js │ ├── jquery.spinner.js │ ├── site.js │ ├── swiper.min.js │ └── zepto.min.js ├── robots.txt └── web.config ├── resources ├── assets │ └── sass │ │ └── app.scss ├── lang │ ├── en │ │ ├── auth.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ └── validation.php │ └── zh-CN │ │ ├── admin │ │ ├── admin.php │ │ ├── language.php │ │ ├── modal.php │ │ ├── nav.php │ │ ├── permissions.php │ │ ├── roles.php │ │ └── users.php │ │ ├── auth.php │ │ ├── email.php │ │ ├── pagination.php │ │ ├── passwords.php │ │ ├── photos.php │ │ ├── reminders.php │ │ ├── site │ │ ├── login.php │ │ ├── register.php │ │ ├── site.php │ │ ├── user.php │ │ └── verify.php │ │ ├── table.php │ │ └── validation.php └── views │ ├── admin │ ├── dashboard │ │ └── index.blade.php │ ├── layouts │ │ ├── default_name_column.blade.php │ │ └── modal.blade.php │ ├── permission │ │ ├── create_edit.blade.php │ │ ├── delete.blade.php │ │ └── index.blade.php │ ├── role │ │ ├── create_edit.blade.php │ │ ├── delete.blade.php │ │ └── index.blade.php │ └── user │ │ ├── create_edit.blade.php │ │ ├── delete.blade.php │ │ └── index.blade.php │ ├── auth │ ├── emails │ │ └── password.blade.php │ ├── login.blade.php │ ├── passwords │ │ ├── email.blade.php │ │ └── reset.blade.php │ └── register.blade.php │ ├── emails │ └── auth │ │ ├── password.blade.php │ │ └── verify.blade.php │ ├── errors │ └── 503.blade.php │ ├── home.blade.php │ └── layouts │ ├── app.blade.php │ └── guest.blade.php ├── server.php ├── storage ├── app │ ├── .gitignore │ └── public │ │ └── .gitignore ├── debugbar │ └── .gitignore ├── framework │ ├── .gitignore │ ├── cache │ │ └── .gitignore │ ├── sessions │ │ └── .gitignore │ └── views │ │ └── .gitignore └── logs │ └── .gitignore └── tests ├── ExampleTest.php └── TestCase.php /.bowerrc: -------------------------------------------------------------------------------- 1 | { 2 | "directory": "resources/assets/bower" 3 | } 4 | -------------------------------------------------------------------------------- /.env.example: -------------------------------------------------------------------------------- 1 | APP_ENV=local 2 | APP_KEY=SomeRandomString 3 | APP_DEBUG=false 4 | APP_LOG_LEVEL=debug 5 | APP_URL=http://localhost 6 | 7 | DB_CONNECTION=mysql 8 | DB_HOST=127.0.0.1 9 | DB_PORT=3306 10 | DB_DATABASE=laravel-admin 11 | DB_USERNAME=dbname 12 | DB_PASSWORD=dbpassword 13 | 14 | CACHE_DRIVER=file 15 | SESSION_DRIVER=file 16 | QUEUE_DRIVER=database 17 | 18 | REDIS_HOST=127.0.0.1 19 | REDIS_PASSWORD=null 20 | REDIS_PORT=6379 21 | 22 | MAIL_DRIVER=smtp 23 | MAIL_HOST=mailtrap.io 24 | MAIL_PORT=2525 25 | MAIL_USERNAME=null 26 | MAIL_PASSWORD=null 27 | MAIL_ENCRYPTION=null 28 | -------------------------------------------------------------------------------- /.gitattributes: -------------------------------------------------------------------------------- 1 | * text=auto 2 | *.js linguist-language=php 3 | *.css linguist-language=php 4 | *.html linguist-language=php 5 | -------------------------------------------------------------------------------- /.gitignore: -------------------------------------------------------------------------------- 1 | vendor 2 | node_modules 3 | resources/assets/bower 4 | Homestead.yaml 5 | Homestead.json 6 | .env 7 | .DS_Store 8 | composer.lock 9 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # Laravel Framework 5.5 Admin Site 2 | 3 | -------------------------------------------------------------------------------- 4 | 5 | ## 系统要求 6 | 7 | ``` 8 | PHP >= 7.1.3 9 | OpenSSL PHP Extension 10 | Mbstring PHP Extension 11 | PDO PHP Extension 12 | Tokenizer PHP Extension 13 | XML PHP Extension 14 | Ctype PHP Extension 15 | JSON PHP Extension 16 | Composer 17 | Node.js 18 | ``` 19 | 20 | -------------------------------------------------------------------------------- 21 | 22 | # 系统截图 23 | 24 | ![pic1](http://s3.schoid.cn/laravel-admin/public/QQ20190808-154300%402x.png) 25 | ![pic2](http://s3.schoid.cn/laravel-admin/public/QQ20190808-154311%402x.png) 26 | 27 | -------------------------------------------------------------------------------- 28 | ## 系统功能 29 | 30 | - Laravel 5.5 31 | - 后台 32 | 33 | - 用户管理 34 | - 角色管理 35 | - 权限管理(空) 36 | 37 | - 前台 38 | 39 | - 用户登录 40 | - 用户注册 41 | - 首页(空) 42 | 43 | - 组件 44 | 45 | - UI框架:sb-admin-2 46 | - 权限:entrust 47 | - 表单:laravel-datatables 48 | - 图形验证码 49 | - 标签颜色选择器 50 | - 语义化的form表单 51 | 52 | -------------------------------------------------------------------------------- 53 | 54 | ## 安装步骤: 55 | 56 | - [Step 1: 获取代码](#step-1-获取代码) 57 | - [Step 2: 生成配置文件](#step-2-生成配置文件) 58 | - [Step 3: 新建数据库](#step-3-新建数据库) 59 | - [Step 4: 初始化系统](#step-4-初始化系统) 60 | - [Step 5: 创建表并生成数据](#step-5-创建表并生成数据) 61 | - [Step 6: 访问页面](#step-6-访问页面) 62 | 63 | -------------------------------------------------------------------------------- 64 | 65 | ### Step 1: 获取代码 66 | 67 | ``` 68 | git clone https://github.com/njwangchuan/laravel-admin.git 69 | ``` 70 | 71 | ### Step 2: 生成配置文件 72 | 73 | 拷贝`.env.example`文件为`.env`,根据实际情况配置`.env`中的变量 74 | 75 | ### Step 3: 新建数据库 76 | 77 | 根据步骤2中的配置信息,新建数据库,字符编码使用utf-8((uft8_general_ci) 78 | 79 | ### Step 4: 初始化系统 80 | 81 | 在项目根目录执行: 82 | 83 | ``` 84 | composer update 85 | ``` 86 | 87 | 然后: 88 | 89 | ``` 90 | php artisan key:generate 91 | ``` 92 | 93 | ### Step 5 创建表并生成数据 94 | 95 | 创建表: 96 | 97 | ``` 98 | php artisan migrate 99 | ``` 100 | 101 | 然后生成数据: 102 | 103 | ``` 104 | php artisan db:seed 105 | ``` 106 | 107 | 修改web服务器访问配置,入口为: 108 | 109 | ``` 110 | http://localhost/laravel-admin/public 111 | ``` 112 | 113 | ### Step 6: 访问页面 114 | 115 | 你现在可以登录系统,具有`admin`角色的用户登录后会默认跳转至后台管理页面,一般用户登录后会跳转至前台首页 116 | 117 | ``` 118 | username: admin 119 | password: 123456 120 | ``` 121 | 122 | -------------------------------------------------------------------------------- 123 | 124 | ## 故障排查 125 | 126 | ``` 127 | composer dump-autoload --optimize 128 | ``` 129 | 130 | 或者 131 | 132 | ``` 133 | php artisan dump-autoload 134 | ``` 135 | 136 | -------------------------------------------------------------------------------- 137 | 138 | ## License 139 | 140 | MIT license 141 | -------------------------------------------------------------------------------- /app/Console/Commands/Inspire.php: -------------------------------------------------------------------------------- 1 | comment(PHP_EOL.Inspiring::quote().PHP_EOL); 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/Console/Kernel.php: -------------------------------------------------------------------------------- 1 | command('inspire') 28 | // ->hourly(); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Events/Event.php: -------------------------------------------------------------------------------- 1 | route()&&$request->route()->getPrefix() == '/api') { 50 | return response()->json([ 51 | 'error' => 'Server error', 52 | 'message' => $e->getMessage(), 53 | ], 500); 54 | } else if ($e instanceof HttpException) { 55 | $statusCode = $e->getStatusCode(); 56 | if ($statusCode == 403) { 57 | return redirect()->guest('/login'); 58 | } 59 | } 60 | return parent::render($request, $e); 61 | } 62 | } 63 | -------------------------------------------------------------------------------- /app/Http/Controllers/Admin/DashboardController.php: -------------------------------------------------------------------------------- 1 | share('type', ''); 16 | } 17 | 18 | public function index() 19 | { 20 | $title = 'Dashboard'; 21 | $users = User::count(); 22 | $roles = Role::count(); 23 | 24 | return view('admin.dashboard.index', compact('title', 'users', 'roles')); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/Http/Controllers/Admin/PermissionController.php: -------------------------------------------------------------------------------- 1 | share('type', 'permission'); 15 | } 16 | 17 | /** 18 | * Display a listing of the resource. 19 | * 20 | * @return \Illuminate\Http\Response 21 | */ 22 | public function index() 23 | { 24 | // Show the page 25 | return view('admin.permission.index'); 26 | } 27 | 28 | /** 29 | * Show the form for creating a new resource. 30 | * 31 | * @return \Illuminate\Http\Response 32 | */ 33 | public function create() 34 | { 35 | return view('admin.permission.create_edit'); 36 | } 37 | 38 | /** 39 | * Store a newly created resource in storage. 40 | * 41 | * @param \Illuminate\Http\Request $request 42 | * 43 | * @return \Illuminate\Http\Response 44 | */ 45 | public function store(PermissionRequest $request) 46 | { 47 | $permission = new Permission ($request->except('permission_name','permission_code')); 48 | $permission->permission_name = $request->permission_name; 49 | $permission->permission_code = $request->permission_code; 50 | $permission->save(); 51 | } 52 | 53 | /** 54 | * Display the specified resource. 55 | * 56 | * @param int $id 57 | * 58 | * @return \Illuminate\Http\Response 59 | */ 60 | public function show($id) 61 | { 62 | // 63 | } 64 | 65 | /** 66 | * Show the form for editing the specified resource. 67 | * 68 | * @param int $id 69 | * 70 | * @return \Illuminate\Http\Response 71 | */ 72 | public function edit(Permission $permission) 73 | { 74 | return view('admin.permission.create_edit', compact('permission')); 75 | } 76 | 77 | /** 78 | * Update the specified resource in storage. 79 | * 80 | * @param \Illuminate\Http\Request $request 81 | * @param int $id 82 | * 83 | * @return \Illuminate\Http\Response 84 | */ 85 | public function update(PermissionRequest $request, Permission $permission) 86 | { 87 | $permission->update($request->except('permission_name','permission_code')); 88 | } 89 | 90 | /** 91 | * Remove the specified resource from storage. 92 | * 93 | * @param int $id 94 | * 95 | * @return \Illuminate\Http\Response 96 | */ 97 | public function destroy(Permission $permission) 98 | { 99 | $permission->delete(); 100 | } 101 | 102 | /** 103 | * Show a list of all the languages posts formatted for Datatables. 104 | * 105 | * @return Datatables JSON 106 | */ 107 | public function data() 108 | { 109 | $permissions = Permission::all(); 110 | //$permissions = Permission::select(array('permissions.id', 'permissions.name', 'permissions.display_name','permissions.description','permissions.created_at')); 111 | return Datatables::of($permissions) 112 | ->add_column('actions', '@if ($id!="1") {{ trans("admin/modal.edit") }} 113 | {{ trans("admin/modal.delete") }} 114 | @endif') 115 | ->make(true); 116 | } 117 | 118 | } 119 | -------------------------------------------------------------------------------- /app/Http/Controllers/Admin/RoleController.php: -------------------------------------------------------------------------------- 1 | share('type', 'role'); 15 | } 16 | 17 | /** 18 | * Display a listing of the resource. 19 | * 20 | * @return \Illuminate\Http\Response 21 | */ 22 | public function index() 23 | { 24 | // Show the page 25 | return view('admin.role.index'); 26 | } 27 | 28 | /** 29 | * Show the form for creating a new resource. 30 | * 31 | * @return \Illuminate\Http\Response 32 | */ 33 | public function create() 34 | { 35 | return view('admin.role.create_edit'); 36 | } 37 | 38 | /** 39 | * Store a newly created resource in storage. 40 | * 41 | * @param \Illuminate\Http\Request $request 42 | * 43 | * @return \Illuminate\Http\Response 44 | */ 45 | public function store(RoleRequest $request) 46 | { 47 | $role = new Role(); 48 | $role->name = $request->input('name'); 49 | $role->display_name = $request->input('display_name'); 50 | $role->description = $request->input('description'); 51 | $role->tag_color = $request->input('tag_color'); 52 | $role->save(); 53 | } 54 | 55 | /** 56 | * Display the specified resource. 57 | * 58 | * @param int $id 59 | * 60 | * @return \Illuminate\Http\Response 61 | */ 62 | public function show($id) 63 | { 64 | // 65 | } 66 | 67 | /** 68 | * Show the form for editing the specified resource. 69 | * 70 | * @param int $id 71 | * 72 | * @return \Illuminate\Http\Response 73 | */ 74 | public function edit(Role $role) 75 | { 76 | return view('admin.role.create_edit', compact('role')); 77 | } 78 | 79 | /** 80 | * Update the specified resource in storage. 81 | * 82 | * @param \Illuminate\Http\Request $request 83 | * @param int $id 84 | * 85 | * @return \Illuminate\Http\Response 86 | */ 87 | public function update(RoleRequest $request, Role $role) 88 | { 89 | $role->name = $request->input('name'); 90 | $role->display_name = $request->input('display_name'); 91 | $role->description = $request->input('description'); 92 | $role->tag_color = $request->input('tag_color'); 93 | $role->save(); 94 | } 95 | 96 | public function delete(Role $role) 97 | { 98 | return view('admin.role.delete', compact('role')); 99 | } 100 | 101 | /** 102 | * Remove the specified resource from storage. 103 | * 104 | * @param int $id 105 | * 106 | * @return \Illuminate\Http\Response 107 | */ 108 | public function destroy(Role $role) 109 | { 110 | $role->delete(); 111 | } 112 | 113 | /** 114 | * Show a list of all the languages posts formatted for Datatables. 115 | * 116 | * @return Datatables JSON 117 | */ 118 | public function data() 119 | { 120 | //$roles = Role::select(array('roles.id', 'roles.name', 'roles.display_name', 'roles.description', 'roles.tag_color', 'roles.created_at')); 121 | $roles = Role::with('users'); 122 | 123 | $data = Datatables::of($roles) 124 | ->addColumn('actions', '@if ($id!="1") {{ trans("admin/modal.edit") }} 125 | {{ trans("admin/modal.delete") }} 126 | @endif') 127 | ->addColumn('users_count', function($role){ 128 | return count($role->users); 129 | }) 130 | ->editColumn('tag_color', '{{ $name}}') 131 | ->make(true); 132 | return $data; 133 | } 134 | } 135 | -------------------------------------------------------------------------------- /app/Http/Controllers/Admin/UserController.php: -------------------------------------------------------------------------------- 1 | share('type', 'user'); 19 | } 20 | 21 | /* 22 | * Display a listing of the resource. 23 | * 24 | * @return Response 25 | */ 26 | public function index(Request $request) 27 | { 28 | // Show the page 29 | $mode = 'create'; 30 | $querystring = $request->getQueryString(); 31 | if (isset($querystring)) { 32 | return view('admin.user.index', compact('mode','querystring')); 33 | } else { 34 | return view('admin.user.index', compact('mode')); 35 | } 36 | } 37 | 38 | /** 39 | * Show the form for creating a new resource. 40 | * 41 | * @return Response 42 | */ 43 | public function create(Request $request) 44 | { 45 | $mode = 'create'; 46 | if ($request->has('role')) { 47 | $role = Role::where('name', $request->input('role'))->first(); 48 | return view('admin.user.create_edit', compact('user', 'role', 'mode')); 49 | } else { 50 | $roles = Role::where('name','!=','owner')->get(); 51 | return view('admin.user.create_edit', compact('user', 'roles', 'mode')); 52 | } 53 | } 54 | 55 | /** 56 | * Store a newly created resource in storage. 57 | * 58 | * @return Response 59 | */ 60 | public function store(UserRequest $request) 61 | { 62 | Log::info($request); 63 | $user = new User($request->except('password', 'password_confirmation')); 64 | $user->password = bcrypt($request->password); 65 | if (!$user->confirmed) { 66 | //Send a confirm email to new user; 67 | //$user->confirmation_code = str_random(32); 68 | //$this->dispatch(new SendMail($user)); 69 | } 70 | $roleIds = $request->roles; 71 | $user->save(); 72 | $user->roles()->sync($roleIds); 73 | } 74 | 75 | /** 76 | * Show the form for editing the specified resource. 77 | * 78 | * @param $user 79 | * 80 | * @return Response 81 | */ 82 | public function edit(Request $request,User $user) 83 | { 84 | Log::info($request); 85 | $mode = 'edit'; 86 | if ($request->has('role')) { 87 | $role = Role::where('name', $request->input('role'))->first(); 88 | return view('admin.user.create_edit', compact('user', 'role', 'mode')); 89 | } else { 90 | $roles = Role::where('name','!=','owner')->get(); 91 | return view('admin.user.create_edit', compact('user', 'roles', 'mode')); 92 | } 93 | } 94 | 95 | /** 96 | * Update the specified resource in storage. 97 | * 98 | * @param $user 99 | * 100 | * @return Response 101 | */ 102 | public function update(UserRequest $request, User $user) 103 | { 104 | if (empty($request->email)) { 105 | $request->merge(array('email' => null)); 106 | } 107 | $password = $request->password; 108 | $passwordConfirmation = $request->password_confirmation; 109 | 110 | if (!empty($password)) { 111 | if ($password === $passwordConfirmation) { 112 | $user->password = bcrypt($password); 113 | } 114 | } 115 | $roleIds = $request->roles; 116 | if (!isset($roleIds)){ 117 | $roleIds=[]; 118 | } 119 | $user->roles()->sync($roleIds); 120 | $user->update($request->except('password', 'password_confirmation')); 121 | } 122 | 123 | /** 124 | * Remove the specified resource from storage. 125 | * 126 | * @param $user 127 | * 128 | * @return Response 129 | */ 130 | public function delete(User $user) 131 | { 132 | return view('admin.user.delete', compact('user')); 133 | } 134 | 135 | /** 136 | * Remove the specified resource from storage. 137 | * 138 | * @param $user 139 | * 140 | * @return Response 141 | */ 142 | public function destroy(User $user) 143 | { 144 | $user->roles()->sync([]); 145 | $user->delete(); 146 | } 147 | 148 | /** 149 | * Show a list of all the languages posts formatted for Datatables. 150 | * 151 | * @return Datatables JSON 152 | */ 153 | public function data(Request $request) 154 | { 155 | $users = User::with('roles'); 156 | $datas = Datatables::of($users) 157 | ->edit_column('confirmed', '@if ($confirmed=="1") @else @endif') 158 | ->add_column('actions', '@if ($id!="1") {{ trans("admin/modal.edit") }} 159 | {{ trans("admin/modal.delete") }} 160 | @endif') 161 | ->edit_column('roles', function($user){ 162 | $resp = ''; 163 | foreach ($user->roles as $key => $value) { 164 | $resp .= ''.$value->display_name.''; 165 | } 166 | return $resp; 167 | }) 168 | ->make(true); 169 | return $datas; 170 | } 171 | } 172 | -------------------------------------------------------------------------------- /app/Http/Controllers/AdminController.php: -------------------------------------------------------------------------------- 1 | middleware('auth'); 13 | $this->middleware('admin'); 14 | } 15 | 16 | } 17 | -------------------------------------------------------------------------------- /app/Http/Controllers/Auth/ForgotPasswordController.php: -------------------------------------------------------------------------------- 1 | middleware('guest'); 31 | } 32 | } 33 | -------------------------------------------------------------------------------- /app/Http/Controllers/Auth/LoginController.php: -------------------------------------------------------------------------------- 1 | middleware('guest', ['except' => 'logout']); 41 | } 42 | 43 | public function username() 44 | { 45 | return 'username'; 46 | } 47 | 48 | /** 49 | * Validate the user login request. 50 | * 51 | * @param \Illuminate\Http\Request $request 52 | * @return void 53 | */ 54 | protected function validateLogin(Request $request) 55 | { 56 | $this->validate($request, [ 57 | 'username' => 'required', 58 | 'password' => 'required', 59 | 'captcha' => 'required|captcha' 60 | ]); 61 | } 62 | 63 | public function redirectPath() 64 | { 65 | // Logic that determines where to send the user 66 | if (\Auth::user()->hasRole('owner') || \Auth::user()->hasRole('admin')) { 67 | return 'admin/dashboard'; 68 | } else { 69 | return '/'; 70 | } 71 | } 72 | 73 | public function logout(Request $request) 74 | { 75 | $this->guard()->logout(); 76 | 77 | $request->session()->invalidate(); 78 | 79 | return redirect('/home'); 80 | } 81 | } 82 | -------------------------------------------------------------------------------- /app/Http/Controllers/Auth/RegisterController.php: -------------------------------------------------------------------------------- 1 | middleware('guest'); 43 | } 44 | 45 | /** 46 | * Get a validator for an incoming registration request. 47 | * 48 | * @param array $data 49 | * @return \Illuminate\Contracts\Validation\Validator 50 | */ 51 | protected function validator(array $data) 52 | { 53 | if (Captcha::check($data['captcha'])) { 54 | return Validator::make($data, [ 55 | 'username' => 'required|min:6|max:20|unique:users', 56 | 'display_name' => 'required|min:2|max:20|unique:users', 57 | 'password' => 'required|min:6|max:20|confirmed', 58 | 'email' => 'unique:users|email', 59 | 'phone' => 'unique:users|phone:CN,mobile' 60 | ]); 61 | } else { 62 | return Validator::make($data, [ 63 | 'captcha' => 'required|captcha', 64 | ]); 65 | } 66 | } 67 | 68 | /** 69 | * Create a new user instance after a valid registration. 70 | * 71 | * @param array $data 72 | * @return User 73 | */ 74 | protected function create(array $data) 75 | { 76 | $webuser = Role::where('name','webuser')->first(); 77 | $data['password'] = bcrypt($data['password']); 78 | $user = User::create($data); 79 | $user->attachRole($webuser); 80 | return $user; 81 | } 82 | } 83 | -------------------------------------------------------------------------------- /app/Http/Controllers/Auth/ResetPasswordController.php: -------------------------------------------------------------------------------- 1 | middleware('guest'); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /app/Http/Controllers/CaptchaController.php: -------------------------------------------------------------------------------- 1 | middleware('auth'); 16 | } 17 | 18 | public function index(Request $request) 19 | { 20 | $action = $request->input('action'); 21 | if ($action) { 22 | return view('home', compact('action')); 23 | } else { 24 | return view('home'); 25 | } 26 | } 27 | 28 | public function copyright() 29 | { 30 | return view('copyright'); 31 | } 32 | 33 | public function autoLogin(Request $request) 34 | { 35 | if ($request->has('phone')){ 36 | $user = User::where('phone',$request->input('phone'))->first(); 37 | if ($user){ 38 | Auth::login($user, true); 39 | if ($user->hasRole('owner') || $user->hasRole('admin')){ 40 | return redirect('admin/dashboard'); 41 | } else { 42 | return redirect('home'); 43 | } 44 | } 45 | } 46 | return redirect('register'); 47 | } 48 | } 49 | -------------------------------------------------------------------------------- /app/Http/Kernel.php: -------------------------------------------------------------------------------- 1 | [ 29 | \App\Http\Middleware\EncryptCookies::class, 30 | \Illuminate\Cookie\Middleware\AddQueuedCookiesToResponse::class, 31 | \App\Http\Middleware\VerifyCsrfToken::class, 32 | \Illuminate\Routing\Middleware\SubstituteBindings::class, 33 | 'throttle:60,1', 34 | ], 35 | 36 | 'api' => [ 37 | \Illuminate\Routing\Middleware\SubstituteBindings::class, 38 | \App\Http\Middleware\AuthOnce::class, 39 | \App\Http\Middleware\Api::class, 40 | ], 41 | ]; 42 | 43 | /** 44 | * The application's route middleware. 45 | * 46 | * These middleware may be assigned to groups or used individually. 47 | * 48 | * @var array 49 | */ 50 | protected $routeMiddleware = [ 51 | 'auth' => \App\Http\Middleware\Authenticate::class, 52 | 'auth.basic' => \Illuminate\Auth\Middleware\AuthenticateWithBasicAuth::class, 53 | 'admin' => \App\Http\Middleware\Admin::class, 54 | 'guest' => \App\Http\Middleware\RedirectIfAuthenticated::class, 55 | 'throttle' => \Illuminate\Routing\Middleware\ThrottleRequests::class, 56 | 'role' => \Zizaco\Entrust\Middleware\EntrustRole::class, 57 | 'permission' => \Zizaco\Entrust\Middleware\EntrustPermission::class, 58 | 'ability' => \Zizaco\Entrust\Middleware\EntrustAbility::class, 59 | 'bindings' => \Illuminate\Routing\Middleware\SubstituteBindings::class, 60 | ]; 61 | } 62 | -------------------------------------------------------------------------------- /app/Http/Middleware/Admin.php: -------------------------------------------------------------------------------- 1 | hasRole('admin')) { 22 | return $next($request); 23 | } else { 24 | return redirectTo()->intended('home'); 25 | } 26 | } 27 | } 28 | -------------------------------------------------------------------------------- /app/Http/Middleware/Api.php: -------------------------------------------------------------------------------- 1 | hasRole('api')) { 22 | return $next($request); 23 | } else { 24 | return response()->json([ 25 | 'error' => 'Forbidden', 26 | 'message' => 'Auth user dose not have role:{api}', 27 | ], 403); 28 | } 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Http/Middleware/AuthOnce.php: -------------------------------------------------------------------------------- 1 | guest()) { 22 | if ($request->ajax() || $request->wantsJson()) { 23 | return response('Unauthorized.', 401); 24 | } else { 25 | return redirect()->guest('login'); 26 | } 27 | } 28 | return $next($request); 29 | } 30 | } 31 | -------------------------------------------------------------------------------- /app/Http/Middleware/EncryptCookies.php: -------------------------------------------------------------------------------- 1 | check()) { 22 | return redirect('/home'); 23 | } 24 | return $next($request); 25 | } 26 | } 27 | -------------------------------------------------------------------------------- /app/Http/Middleware/VerifyCsrfToken.php: -------------------------------------------------------------------------------- 1 | segment(3)!="") { 27 | $role = Role::find($this->segment(3)); 28 | } 29 | 30 | switch($this->method()) 31 | { 32 | case 'GET': 33 | case 'DELETE': 34 | { 35 | return []; 36 | } 37 | case 'POST': 38 | { 39 | return [ 40 | 'name' => 'required|min:2', 41 | 'display_name' => 'required|min:2', 42 | ]; 43 | } 44 | case 'PUT': 45 | case 'PATCH': 46 | { 47 | return [ 48 | 'name' => 'required|min:2', 49 | 'display_name' => 'required|min:2', 50 | ]; 51 | } 52 | default:break; 53 | } 54 | } 55 | } 56 | -------------------------------------------------------------------------------- /app/Http/Requests/Admin/UserRequest.php: -------------------------------------------------------------------------------- 1 | segment(3)!="") { 16 | $user = User::find($this->segment(3)); 17 | } 18 | 19 | switch($this->method()) 20 | { 21 | case 'GET': 22 | case 'DELETE': 23 | { 24 | return []; 25 | } 26 | case 'POST': 27 | { 28 | return [ 29 | 'username' => 'required|min:8', 30 | 'display_name' => 'min:4|unique:users', 31 | 'email' => 'email|unique:users', 32 | 'phone' => 'phone:CN,mobile', 33 | 'password' => 'required', 34 | ]; 35 | } 36 | case 'PUT': 37 | case 'PATCH': 38 | { 39 | return [ 40 | 'username' => 'required|min:8', 41 | 'display_name' => 'min:4|unique:users,display_name,'.$user->id, 42 | 'email' => 'email|unique:users,email,'.$user->id, 43 | 'phone' => 'phone:CN,mobile|unique:users,phone,'.$user->id, 44 | ]; 45 | } 46 | default:break; 47 | } 48 | } 49 | 50 | /** 51 | * Determine if the user is authorized to make this request. 52 | * 53 | * @return bool 54 | */ 55 | public function authorize() 56 | { 57 | return true; 58 | } 59 | 60 | } 61 | -------------------------------------------------------------------------------- /app/Http/Requests/Request.php: -------------------------------------------------------------------------------- 1 | method()) { 18 | case 'GET': 19 | case 'DELETE': 20 | { 21 | return []; 22 | } 23 | case 'POST': 24 | { 25 | return [ 26 | 'type' => 'required', 27 | 'photo' => 'image|mimes:png,jpg,jpeg,gif,bmp', 28 | 'logo' => 'image|mimes:png,jpg,jpeg,gif,bmp', 29 | 'banner' => 'image|mimes:png,jpg,jpeg,gif,bmp', 30 | ]; 31 | } 32 | case 'PUT': 33 | case 'PATCH': 34 | { 35 | return [ 36 | 'type' => 'required', 37 | 'photo' => 'image|mimes:png,jpg,jpeg,gif,bmp', 38 | 'logo' => 'image|mimes:png,jpg,jpeg,gif,bmp', 39 | 'banner' => 'image|mimes:png,jpg,gif,jpeg,bmp', 40 | ]; 41 | } 42 | default:break; 43 | } 44 | } 45 | 46 | /** 47 | * Determine if the category is authorized to make this request. 48 | * 49 | * @return bool 50 | */ 51 | public function authorize() 52 | { 53 | return true; 54 | } 55 | 56 | protected function formatErrors(Validator $validator) 57 | { 58 | return $validator->errors()->all(); 59 | } 60 | } 61 | -------------------------------------------------------------------------------- /app/Http/routes.php: -------------------------------------------------------------------------------- 1 | ['web']], function () { 15 | 16 | Auth::routes(); 17 | Route::get('/logout', 'Auth\LoginController@logout'); 18 | Route::get('home', 'HomeController@index'); 19 | Route::get('auto-login', 'HomeController@autoLogin'); 20 | Route::get('copyright', 'HomeController@copyright'); 21 | Route::get('captcha/create', ['as' => 'captcha.create', 'uses' => 'CaptchaController@create']); 22 | Route::get('/', function () { 23 | return redirect('home'); 24 | })->middleware('guest'); 25 | 26 | /*************** Admin routes **********************************/ 27 | Route::group(['prefix' => 'admin', 'middleware' => 'role:admin|owner'], function () { 28 | 29 | # Admin Dashboard 30 | Route::get('dashboard', 'Admin\DashboardController@index'); 31 | 32 | # User 33 | Route::get('user/data', 'Admin\UserController@data'); 34 | Route::get('user/{user}/show', 'Admin\UserController@show'); 35 | Route::get('user/{user}/edit', 'Admin\UserController@edit'); 36 | Route::get('user/{user}/delete', 'Admin\UserController@delete'); 37 | Route::resource('user', 'Admin\UserController'); 38 | 39 | # Role 40 | Route::get('role/data', 'Admin\RoleController@data'); 41 | Route::get('role/{role}/show', 'Admin\RoleController@show'); 42 | Route::get('role/{role}/edit', 'Admin\RoleController@edit'); 43 | Route::get('role/{role}/delete', 'Admin\RoleController@delete'); 44 | Route::resource('role', 'Admin\RoleController'); 45 | 46 | # Permission 47 | Route::get('permission/data', 'Admin\PermissionController@data'); 48 | Route::get('permission/{permission}/show', 'Admin\PermissionController@show'); 49 | Route::get('permission/{permission}/edit', 'Admin\PermissionController@edit'); 50 | Route::get('permission/{permission}/delete', 'Admin\PermissionController@delete'); 51 | Route::resource('permission', 'Admin\PermissionController'); 52 | 53 | }); 54 | 55 | }); 56 | -------------------------------------------------------------------------------- /app/Jobs/Job.php: -------------------------------------------------------------------------------- 1 | user = $user; 29 | } 30 | 31 | /** 32 | * Execute the job. 33 | * 34 | * @param Mailer $mailer 35 | * @return void 36 | */ 37 | public function handle(Mailer $mailer) 38 | { 39 | $data = [ 40 | 'title' => trans('site/verify.email-title'), 41 | 'intro' => trans('site/verify.email-intro'), 42 | 'link' => trans('site/verify.email-link'), 43 | 'confirmation_code' => $this->user->confirmation_code 44 | ]; 45 | 46 | $mailer->send('emails.auth.verify', $data, function($message) { 47 | $message->to($this->user->email, $this->user->username) 48 | ->subject(trans('site/verify.email-title')); 49 | }); 50 | } 51 | } 52 | -------------------------------------------------------------------------------- /app/Listeners/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/Models/Permission.php: -------------------------------------------------------------------------------- 1 | hasOne('App\Models\WechatUser'); 21 | } 22 | } 23 | -------------------------------------------------------------------------------- /app/Policies/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /app/Providers/AppServiceProvider.php: -------------------------------------------------------------------------------- 1 | app->environment() == 'local') { 28 | $this->app->register('Laracasts\Generators\GeneratorsServiceProvider'); 29 | } 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/Providers/AuthServiceProvider.php: -------------------------------------------------------------------------------- 1 | 'App\Policies\ModelPolicy', 17 | ]; 18 | 19 | /** 20 | * Register any application authentication / authorization services. 21 | * 22 | * @param \Illuminate\Contracts\Auth\Access\Gate $gate 23 | * @return void 24 | */ 25 | public function boot(GateContract $gate) 26 | { 27 | $this->registerPolicies($gate); 28 | 29 | // 30 | } 31 | } 32 | -------------------------------------------------------------------------------- /app/Providers/EventServiceProvider.php: -------------------------------------------------------------------------------- 1 | [ 17 | 'App\Listeners\EventListener', 18 | ], 19 | ]; 20 | 21 | /** 22 | * Register any other events for your application. 23 | * 24 | * @param \Illuminate\Contracts\Events\Dispatcher $events 25 | * @return void 26 | */ 27 | public function boot() 28 | { 29 | parent::boot(); 30 | 31 | // 32 | } 33 | } 34 | -------------------------------------------------------------------------------- /app/Providers/RouteServiceProvider.php: -------------------------------------------------------------------------------- 1 | mapWebRoutes($router); 39 | 40 | // 41 | } 42 | 43 | /** 44 | * Define the "web" routes for the application. 45 | * 46 | * These routes all receive session state, CSRF protection, etc. 47 | * 48 | * @param \Illuminate\Routing\Router $router 49 | * @return void 50 | */ 51 | protected function mapWebRoutes(Router $router) 52 | { 53 | $router->group([ 54 | 'namespace' => $this->namespace, 'middleware' => 'web', 55 | ], function ($router) { 56 | require app_path('Http/routes.php'); 57 | }); 58 | } 59 | } 60 | -------------------------------------------------------------------------------- /artisan: -------------------------------------------------------------------------------- 1 | #!/usr/bin/env php 2 | make(Illuminate\Contracts\Console\Kernel::class); 32 | 33 | $status = $kernel->handle( 34 | $input = new Symfony\Component\Console\Input\ArgvInput, 35 | new Symfony\Component\Console\Output\ConsoleOutput 36 | ); 37 | 38 | /* 39 | |-------------------------------------------------------------------------- 40 | | Shutdown The Application 41 | |-------------------------------------------------------------------------- 42 | | 43 | | Once Artisan has finished running. We will fire off the shutdown events 44 | | so that any final work may be done by the application before we shut 45 | | down the process. This is the last thing to happen to the request. 46 | | 47 | */ 48 | 49 | $kernel->terminate($input, $status); 50 | 51 | exit($status); 52 | -------------------------------------------------------------------------------- /bootstrap/app.php: -------------------------------------------------------------------------------- 1 | singleton( 30 | Illuminate\Contracts\Http\Kernel::class, 31 | App\Http\Kernel::class 32 | ); 33 | 34 | $app->singleton( 35 | Illuminate\Contracts\Console\Kernel::class, 36 | App\Console\Kernel::class 37 | ); 38 | 39 | $app->singleton( 40 | Illuminate\Contracts\Debug\ExceptionHandler::class, 41 | App\Exceptions\Handler::class 42 | ); 43 | 44 | /* 45 | |-------------------------------------------------------------------------- 46 | | Return The Application 47 | |-------------------------------------------------------------------------- 48 | | 49 | | This script returns the application instance. The instance is given to 50 | | the calling script so we can separate the building of the instances 51 | | from the actual running of the application and sending responses. 52 | | 53 | */ 54 | 55 | return $app; 56 | -------------------------------------------------------------------------------- /bootstrap/autoload.php: -------------------------------------------------------------------------------- 1 | =7.0.0", 9 | "laravel/framework": "5.5.*", 10 | "Zizaco/entrust": "dev-laravel-5", 11 | "laravelcollective/html": "^5.4", 12 | "yajra/laravel-datatables-oracle": "^6.11", 13 | "intervention/image": "^2.3", 14 | "cviebrock/image-validator": "^2.0", 15 | "predis/predis": "^1.0", 16 | "jenssegers/imagehash": "^0.4.0", 17 | "mews/captcha": "^2.1", 18 | "barryvdh/laravel-debugbar": "^2.2", 19 | "propaganistas/laravel-phone": "^2.8", 20 | "orangehill/iseed": "dev-master", 21 | "laravel/tinker": "^1.0" 22 | }, 23 | "require-dev": { 24 | "fzaninotto/faker": "~1.4", 25 | "mockery/mockery": "0.9.*", 26 | "phpunit/phpunit": "~6.0", 27 | "symfony/css-selector": "3.1.*", 28 | "symfony/dom-crawler": "3.1.*", 29 | "laracasts/generators": "^1.1", 30 | "filp/whoops": "~2.0" 31 | }, 32 | "autoload": { 33 | "classmap": [ 34 | "database" 35 | ], 36 | "psr-4": { 37 | "App\\": "app/" 38 | } 39 | }, 40 | "autoload-dev": { 41 | "classmap": [ 42 | "tests/TestCase.php" 43 | ] 44 | }, 45 | "scripts": { 46 | "post-root-package-install": [ 47 | "php -r \"copy('.env.example', '.env');\"" 48 | ], 49 | "post-create-project-cmd": [ 50 | "php artisan key:generate" 51 | ], 52 | "post-install-cmd": [ 53 | "Illuminate\\Foundation\\ComposerScripts::postInstall", 54 | "php artisan optimize" 55 | ], 56 | "post-update-cmd": [ 57 | "Illuminate\\Foundation\\ComposerScripts::postUpdate", 58 | "php artisan optimize" 59 | ], 60 | "post-autoload-dump": [ 61 | "Illuminate\\Foundation\\ComposerScripts::postAutoloadDump", 62 | "@php artisan package:discover" 63 | ] 64 | }, 65 | "config": { 66 | "preferred-install": "dist" 67 | } 68 | } 69 | -------------------------------------------------------------------------------- /config/auth.php: -------------------------------------------------------------------------------- 1 | [ 17 | 'guard' => 'web', 18 | 'passwords' => 'users', 19 | ], 20 | 21 | /* 22 | |-------------------------------------------------------------------------- 23 | | Authentication Guards 24 | |-------------------------------------------------------------------------- 25 | | 26 | | Next, you may define every authentication guard for your application. 27 | | Of course, a great default configuration has been defined for you 28 | | here which uses session storage and the Eloquent user provider. 29 | | 30 | | All authentication drivers have a user provider. This defines how the 31 | | users are actually retrieved out of your database or other storage 32 | | mechanisms used by this application to persist your user's data. 33 | | 34 | | Supported: "session", "token" 35 | | 36 | */ 37 | 38 | 'guards' => [ 39 | 'web' => [ 40 | 'driver' => 'session', 41 | 'provider' => 'users', 42 | ], 43 | 44 | 'api' => [ 45 | 'driver' => 'token', 46 | 'provider' => 'users', 47 | ], 48 | ], 49 | 50 | /* 51 | |-------------------------------------------------------------------------- 52 | | User Providers 53 | |-------------------------------------------------------------------------- 54 | | 55 | | All authentication drivers have a user provider. This defines how the 56 | | users are actually retrieved out of your database or other storage 57 | | mechanisms used by this application to persist your user's data. 58 | | 59 | | If you have multiple user tables or models you may configure multiple 60 | | sources which represent each model / table. These sources may then 61 | | be assigned to any extra authentication guards you have defined. 62 | | 63 | | Supported: "database", "eloquent" 64 | | 65 | */ 66 | 67 | 'providers' => [ 68 | 'users' => [ 69 | 'driver' => 'eloquent', 70 | 'model' => App\Models\User::class, 71 | 'table' => 'users', 72 | ], 73 | 74 | // 'users' => [ 75 | // 'driver' => 'database', 76 | // 'table' => 'users', 77 | // ], 78 | ], 79 | 80 | /* 81 | |-------------------------------------------------------------------------- 82 | | Resetting Passwords 83 | |-------------------------------------------------------------------------- 84 | | 85 | | Here you may set the options for resetting passwords including the view 86 | | that is your password reset e-mail. You may also set the name of the 87 | | table that maintains all of the reset tokens for your application. 88 | | 89 | | You may specify multiple password reset configurations if you have more 90 | | than one user table or model in the application and you want to have 91 | | separate password reset settings based on the specific user types. 92 | | 93 | | The expire time is the number of minutes that the reset token should be 94 | | considered valid. This security feature keeps tokens short-lived so 95 | | they have less time to be guessed. You may change this as needed. 96 | | 97 | */ 98 | 99 | 'passwords' => [ 100 | 'users' => [ 101 | 'provider' => 'users', 102 | 'email' => 'auth.emails.password', 103 | 'table' => 'password_resets', 104 | 'expire' => 60, 105 | ], 106 | ], 107 | 108 | 'model' => App\Models\User::class, 109 | 'table' => 'users', 110 | ]; 111 | -------------------------------------------------------------------------------- /config/broadcasting.php: -------------------------------------------------------------------------------- 1 | env('BROADCAST_DRIVER', 'pusher'), 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Broadcast Connections 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Here you may define all of the broadcast connections that will be used 26 | | to broadcast events to other systems or over websockets. Samples of 27 | | each available type of connection are provided inside this array. 28 | | 29 | */ 30 | 31 | 'connections' => [ 32 | 33 | 'pusher' => [ 34 | 'driver' => 'pusher', 35 | 'key' => env('PUSHER_KEY'), 36 | 'secret' => env('PUSHER_SECRET'), 37 | 'app_id' => env('PUSHER_APP_ID'), 38 | 'options' => [ 39 | // 40 | ], 41 | ], 42 | 43 | 'redis' => [ 44 | 'driver' => 'redis', 45 | 'connection' => 'default', 46 | ], 47 | 48 | 'log' => [ 49 | 'driver' => 'log', 50 | ], 51 | 52 | ], 53 | 54 | ]; 55 | -------------------------------------------------------------------------------- /config/cache.php: -------------------------------------------------------------------------------- 1 | env('CACHE_DRIVER', 'file'), 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Cache Stores 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Here you may define all of the cache "stores" for your application as 26 | | well as their drivers. You may even define multiple stores for the 27 | | same cache driver to group types of items stored in your caches. 28 | | 29 | */ 30 | 31 | 'stores' => [ 32 | 33 | 'apc' => [ 34 | 'driver' => 'apc', 35 | ], 36 | 37 | 'array' => [ 38 | 'driver' => 'array', 39 | ], 40 | 41 | 'database' => [ 42 | 'driver' => 'database', 43 | 'table' => 'cache', 44 | 'connection' => null, 45 | ], 46 | 47 | 'file' => [ 48 | 'driver' => 'file', 49 | 'path' => storage_path('framework/cache'), 50 | ], 51 | 52 | 'memcached' => [ 53 | 'driver' => 'memcached', 54 | 'servers' => [ 55 | [ 56 | 'host' => env('MEMCACHED_HOST', '127.0.0.1'), 57 | 'port' => env('MEMCACHED_PORT', 11211), 58 | 'weight' => 100, 59 | ], 60 | ], 61 | ], 62 | 63 | 'redis' => [ 64 | 'driver' => 'redis', 65 | 'connection' => 'default', 66 | ], 67 | 68 | ], 69 | 70 | /* 71 | |-------------------------------------------------------------------------- 72 | | Cache Key Prefix 73 | |-------------------------------------------------------------------------- 74 | | 75 | | When utilizing a RAM based store such as APC or Memcached, there might 76 | | be other applications utilizing the same cache. So, we'll specify a 77 | | value to get prefixed to all our keys so we can avoid collisions. 78 | | 79 | */ 80 | 81 | 'prefix' => 'laravel', 82 | 83 | ]; 84 | -------------------------------------------------------------------------------- /config/captcha.php: -------------------------------------------------------------------------------- 1 | [ 6 | 'length' => 5, 7 | 'width' => 120, 8 | 'height' => 36, 9 | 'quality' => 90, 10 | ], 11 | 12 | 'flat' => [ 13 | 'length' => 6, 14 | 'width' => 160, 15 | 'height' => 46, 16 | 'quality' => 90, 17 | 'lines' => 6, 18 | 'bgImage' => false, 19 | 'bgColor' => '#ecf2f4', 20 | 'fontColors'=> ['#2c3e50', '#c0392b', '#16a085', '#c0392b', '#8e44ad', '#303f9f', '#f57c00', '#795548'], 21 | 'contrast' => -5, 22 | ], 23 | 24 | 'mini' => [ 25 | 'length' => 3, 26 | 'width' => 60, 27 | 'height' => 32, 28 | ], 29 | 30 | 'inverse' => [ 31 | 'length' => 5, 32 | 'width' => 120, 33 | 'height' => 36, 34 | 'quality' => 90, 35 | 'sensitive' => true, 36 | 'angle' => 12, 37 | 'sharpen' => 10, 38 | 'blur' => 2, 39 | 'invert' => true, 40 | 'contrast' => -5, 41 | ] 42 | 43 | ]; 44 | -------------------------------------------------------------------------------- /config/compile.php: -------------------------------------------------------------------------------- 1 | [ 17 | // 18 | ], 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Compiled File Providers 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Here you may list service providers which define a "compiles" function 26 | | that returns additional files that should be compiled, providing an 27 | | easy way to get common files from any packages you are utilizing. 28 | | 29 | */ 30 | 31 | 'providers' => [ 32 | // 33 | ], 34 | 35 | ]; 36 | -------------------------------------------------------------------------------- /config/database.php: -------------------------------------------------------------------------------- 1 | PDO::FETCH_CLASS, 17 | 18 | /* 19 | |-------------------------------------------------------------------------- 20 | | Default Database Connection Name 21 | |-------------------------------------------------------------------------- 22 | | 23 | | Here you may specify which of the database connections below you wish 24 | | to use as your default connection for all database work. Of course 25 | | you may use many connections at once using the Database library. 26 | | 27 | */ 28 | 29 | 'default' => env('DB_CONNECTION', 'mysql'), 30 | 31 | /* 32 | |-------------------------------------------------------------------------- 33 | | Database Connections 34 | |-------------------------------------------------------------------------- 35 | | 36 | | Here are each of the database connections setup for your application. 37 | | Of course, examples of configuring each database platform that is 38 | | supported by Laravel is shown below to make development simple. 39 | | 40 | | 41 | | All database work in Laravel is done through the PHP PDO facilities 42 | | so make sure you have the driver for your particular database of 43 | | choice installed on your machine before you begin development. 44 | | 45 | */ 46 | 47 | 'connections' => [ 48 | 49 | 'sqlite' => [ 50 | 'driver' => 'sqlite', 51 | 'database' => env('DB_DATABASE', database_path('database.sqlite')), 52 | 'prefix' => '', 53 | ], 54 | 55 | 'mysql' => [ 56 | 'driver' => 'mysql', 57 | 'host' => env('DB_HOST', 'localhost'), 58 | 'port' => env('DB_PORT', '3306'), 59 | 'database' => env('DB_DATABASE', 'forge'), 60 | 'username' => env('DB_USERNAME', 'forge'), 61 | 'password' => env('DB_PASSWORD', ''), 62 | 'charset' => 'utf8', 63 | 'collation' => 'utf8_general_ci', 64 | 'prefix' => '', 65 | 'strict' => false, 66 | 'engine' => null, 67 | ], 68 | 69 | 'pgsql' => [ 70 | 'driver' => 'pgsql', 71 | 'host' => env('DB_HOST', 'localhost'), 72 | 'port' => env('DB_PORT', '5432'), 73 | 'database' => env('DB_DATABASE', 'forge'), 74 | 'username' => env('DB_USERNAME', 'forge'), 75 | 'password' => env('DB_PASSWORD', ''), 76 | 'charset' => 'utf8', 77 | 'prefix' => '', 78 | 'schema' => 'public', 79 | ], 80 | 81 | ], 82 | 83 | /* 84 | |-------------------------------------------------------------------------- 85 | | Migration Repository Table 86 | |-------------------------------------------------------------------------- 87 | | 88 | | This table keeps track of all the migrations that have already run for 89 | | your application. Using this information, we can determine which of 90 | | the migrations on disk haven't actually been run in the database. 91 | | 92 | */ 93 | 94 | 'migrations' => 'migrations', 95 | 96 | /* 97 | |-------------------------------------------------------------------------- 98 | | Redis Databases 99 | |-------------------------------------------------------------------------- 100 | | 101 | | Redis is an open source, fast, and advanced key-value store that also 102 | | provides a richer set of commands than a typical key-value systems 103 | | such as APC or Memcached. Laravel makes it easy to dig right in. 104 | | 105 | */ 106 | 107 | 'redis' => [ 108 | 109 | 'cluster' => false, 110 | 111 | 'default' => [ 112 | 'host' => env('REDIS_HOST', 'localhost'), 113 | 'password' => env('REDIS_PASSWORD', null), 114 | 'port' => env('REDIS_PORT', 6379), 115 | 'database' => 0, 116 | ], 117 | 118 | ], 119 | 120 | ]; 121 | -------------------------------------------------------------------------------- /config/datatables.php: -------------------------------------------------------------------------------- 1 | [ 8 | /** 9 | * Smart search will enclose search keyword with wildcard string "%keyword%". 10 | * SQL: column LIKE "%keyword%" 11 | */ 12 | 'smart' => true, 13 | 14 | /** 15 | * Case insensitive will search the keyword in lower case format. 16 | * SQL: LOWER(column) LIKE LOWER(keyword) 17 | */ 18 | 'case_insensitive' => true, 19 | 20 | /** 21 | * Wild card will add "%" in between every characters of the keyword. 22 | * SQL: column LIKE "%k%e%y%w%o%r%d%" 23 | */ 24 | 'use_wildcards' => false, 25 | ], 26 | 27 | /** 28 | * DataTables fractal configurations. 29 | */ 30 | 'fractal' => [ 31 | /** 32 | * Request key name to parse includes on fractal. 33 | */ 34 | 'includes' => 'include', 35 | 36 | /** 37 | * Default fractal serializer. 38 | */ 39 | 'serializer' => 'League\Fractal\Serializer\DataArraySerializer', 40 | ], 41 | 42 | /** 43 | * DataTables script view template. 44 | */ 45 | 'script_template' => 'datatables::script', 46 | 47 | /** 48 | * DataTables internal index id response column name. 49 | */ 50 | 'index_column' => 'DT_Row_Index', 51 | 52 | /** 53 | * Namespaces used by the generator. 54 | */ 55 | 'namespace' => [ 56 | /** 57 | * Base namespace/directory to create the new file. 58 | * This is appended on default Laravel namespace. 59 | * 60 | * Usage: php artisan datatables:make User 61 | * Output: App\DataTables\UserDataTable 62 | * With Model: App\User (default model) 63 | * Export filename: users_timestamp 64 | */ 65 | 'base' => 'DataTables', 66 | 67 | /** 68 | * Base namespace/directory where your model's are located. 69 | * This is appended on default Laravel namespace. 70 | * 71 | * Usage: php artisan datatables:make Post --model 72 | * Output: App\DataTables\PostDataTable 73 | * With Model: App\Post 74 | * Export filename: posts_timestamp 75 | */ 76 | 'model' => '', 77 | ], 78 | 79 | /** 80 | * PDF generator to be used when converting the table to pdf. 81 | * Available generators: excel, snappy 82 | * Snappy package: barryvdh/laravel-snappy 83 | * Excel package: maatwebsite/excel 84 | */ 85 | 'pdf_generator' => 'excel', 86 | ]; 87 | -------------------------------------------------------------------------------- /config/entrust.php: -------------------------------------------------------------------------------- 1 | 'App\Models\Role', 23 | 24 | /* 25 | |-------------------------------------------------------------------------- 26 | | Entrust Roles Table 27 | |-------------------------------------------------------------------------- 28 | | 29 | | This is the roles table used by Entrust to save roles to the database. 30 | | 31 | */ 32 | 'roles_table' => 'roles', 33 | 34 | /* 35 | |-------------------------------------------------------------------------- 36 | | Entrust Permission Model 37 | |-------------------------------------------------------------------------- 38 | | 39 | | This is the Permission model used by Entrust to create correct relations. 40 | | Update the permission if it is in a different namespace. 41 | | 42 | */ 43 | 'permission' => 'App\Models\Permission', 44 | 45 | /* 46 | |-------------------------------------------------------------------------- 47 | | Entrust Permissions Table 48 | |-------------------------------------------------------------------------- 49 | | 50 | | This is the permissions table used by Entrust to save permissions to the 51 | | database. 52 | | 53 | */ 54 | 'permissions_table' => 'permissions', 55 | 56 | /* 57 | |-------------------------------------------------------------------------- 58 | | Entrust permission_role Table 59 | |-------------------------------------------------------------------------- 60 | | 61 | | This is the permission_role table used by Entrust to save relationship 62 | | between permissions and roles to the database. 63 | | 64 | */ 65 | 'permission_role_table' => 'permission_role', 66 | 67 | /* 68 | |-------------------------------------------------------------------------- 69 | | Entrust role_user Table 70 | |-------------------------------------------------------------------------- 71 | | 72 | | This is the role_user table used by Entrust to save assigned roles to the 73 | | database. 74 | | 75 | */ 76 | 'role_user_table' => 'role_user', 77 | 78 | ]; 79 | -------------------------------------------------------------------------------- /config/filesystems.php: -------------------------------------------------------------------------------- 1 | 'local', 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Default Cloud Filesystem Disk 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Many applications store files both locally and in the cloud. For this 26 | | reason, you may specify a default "cloud" driver here. This driver 27 | | will be bound as the Cloud disk implementation in the container. 28 | | 29 | */ 30 | 31 | 'cloud' => 's3', 32 | 33 | /* 34 | |-------------------------------------------------------------------------- 35 | | Filesystem Disks 36 | |-------------------------------------------------------------------------- 37 | | 38 | | Here you may configure as many filesystem "disks" as you wish, and you 39 | | may even configure multiple disks of the same driver. Defaults have 40 | | been setup for each driver as an example of the required options. 41 | | 42 | */ 43 | 44 | 'disks' => [ 45 | 46 | 'local' => [ 47 | 'driver' => 'local', 48 | 'root' => storage_path('app'), 49 | ], 50 | 51 | 'public' => [ 52 | 'driver' => 'local', 53 | 'root' => storage_path('app/public'), 54 | 'visibility' => 'public', 55 | ], 56 | 57 | 's3' => [ 58 | 'driver' => 's3', 59 | 'key' => 'your-key', 60 | 'secret' => 'your-secret', 61 | 'region' => 'your-region', 62 | 'bucket' => 'your-bucket', 63 | ], 64 | 65 | ], 66 | 67 | ]; 68 | -------------------------------------------------------------------------------- /config/image.php: -------------------------------------------------------------------------------- 1 | 'gd' 19 | 20 | ); 21 | -------------------------------------------------------------------------------- /config/mail.php: -------------------------------------------------------------------------------- 1 | env('MAIL_DRIVER', 'smtp'), 20 | 21 | /* 22 | |-------------------------------------------------------------------------- 23 | | SMTP Host Address 24 | |-------------------------------------------------------------------------- 25 | | 26 | | Here you may provide the host address of the SMTP server used by your 27 | | applications. A default option is provided that is compatible with 28 | | the Mailgun mail service which will provide reliable deliveries. 29 | | 30 | */ 31 | 32 | 'host' => env('MAIL_HOST', 'smtp.mailgun.org'), 33 | 34 | /* 35 | |-------------------------------------------------------------------------- 36 | | SMTP Host Port 37 | |-------------------------------------------------------------------------- 38 | | 39 | | This is the SMTP port used by your application to deliver e-mails to 40 | | users of the application. Like the host we have set this value to 41 | | stay compatible with the Mailgun e-mail application by default. 42 | | 43 | */ 44 | 45 | 'port' => env('MAIL_PORT', 587), 46 | 47 | /* 48 | |-------------------------------------------------------------------------- 49 | | Global "From" Address 50 | |-------------------------------------------------------------------------- 51 | | 52 | | You may wish for all e-mails sent by your application to be sent from 53 | | the same address. Here, you may specify a name and address that is 54 | | used globally for all e-mails that are sent by your application. 55 | | 56 | */ 57 | 58 | 'from' => ['address' => null, 'name' => null], 59 | 60 | /* 61 | |-------------------------------------------------------------------------- 62 | | E-Mail Encryption Protocol 63 | |-------------------------------------------------------------------------- 64 | | 65 | | Here you may specify the encryption protocol that should be used when 66 | | the application send e-mail messages. A sensible default using the 67 | | transport layer security protocol should provide great security. 68 | | 69 | */ 70 | 71 | 'encryption' => env('MAIL_ENCRYPTION', 'tls'), 72 | 73 | /* 74 | |-------------------------------------------------------------------------- 75 | | SMTP Server Username 76 | |-------------------------------------------------------------------------- 77 | | 78 | | If your SMTP server requires a username for authentication, you should 79 | | set it here. This will get used to authenticate with your server on 80 | | connection. You may also set the "password" value below this one. 81 | | 82 | */ 83 | 84 | 'username' => env('MAIL_USERNAME'), 85 | 86 | /* 87 | |-------------------------------------------------------------------------- 88 | | SMTP Server Password 89 | |-------------------------------------------------------------------------- 90 | | 91 | | Here you may set the password required by your SMTP server to send out 92 | | messages from your application. This will be given to the server on 93 | | connection so that the application will be able to send messages. 94 | | 95 | */ 96 | 97 | 'password' => env('MAIL_PASSWORD'), 98 | 99 | /* 100 | |-------------------------------------------------------------------------- 101 | | Sendmail System Path 102 | |-------------------------------------------------------------------------- 103 | | 104 | | When using the "sendmail" driver to send e-mails, we will need to know 105 | | the path to where Sendmail lives on this server. A default path has 106 | | been provided here, which will work well on most of your systems. 107 | | 108 | */ 109 | 110 | 'sendmail' => '/usr/sbin/sendmail -bs', 111 | 112 | ]; 113 | -------------------------------------------------------------------------------- /config/queue.php: -------------------------------------------------------------------------------- 1 | env('QUEUE_DRIVER', 'sync'), 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Queue Connections 23 | |-------------------------------------------------------------------------- 24 | | 25 | | Here you may configure the connection information for each server that 26 | | is used by your application. A default configuration has been added 27 | | for each back-end shipped with Laravel. You are free to add more. 28 | | 29 | */ 30 | 31 | 'connections' => [ 32 | 33 | 'sync' => [ 34 | 'driver' => 'sync', 35 | ], 36 | 37 | 'database' => [ 38 | 'driver' => 'database', 39 | 'table' => 'jobs', 40 | 'queue' => 'default', 41 | 'expire' => 90, 42 | ], 43 | 44 | 'beanstalkd' => [ 45 | 'driver' => 'beanstalkd', 46 | 'host' => 'localhost', 47 | 'queue' => 'default', 48 | 'ttr' => 90, 49 | ], 50 | 51 | 'sqs' => [ 52 | 'driver' => 'sqs', 53 | 'key' => 'your-public-key', 54 | 'secret' => 'your-secret-key', 55 | 'prefix' => 'https://sqs.us-east-1.amazonaws.com/your-account-id', 56 | 'queue' => 'your-queue-name', 57 | 'region' => 'us-east-1', 58 | ], 59 | 60 | 'redis' => [ 61 | 'driver' => 'redis', 62 | 'connection' => 'default', 63 | 'queue' => 'default', 64 | 'expire' => 90, 65 | ], 66 | 67 | ], 68 | 69 | /* 70 | |-------------------------------------------------------------------------- 71 | | Failed Queue Jobs 72 | |-------------------------------------------------------------------------- 73 | | 74 | | These options configure the behavior of failed queue job logging so you 75 | | can control which database and table are used to store the jobs that 76 | | have failed. You may change them to any database / table you wish. 77 | | 78 | */ 79 | 80 | 'failed' => [ 81 | 'database' => env('DB_CONNECTION', 'mysql'), 82 | 'table' => 'failed_jobs', 83 | ], 84 | 85 | ]; 86 | -------------------------------------------------------------------------------- /config/services.php: -------------------------------------------------------------------------------- 1 | [ 18 | 'domain' => env('MAILGUN_DOMAIN'), 19 | 'secret' => env('MAILGUN_SECRET'), 20 | ], 21 | 22 | 'mandrill' => [ 23 | 'secret' => env('MANDRILL_SECRET'), 24 | ], 25 | 26 | 'ses' => [ 27 | 'key' => env('SES_KEY'), 28 | 'secret' => env('SES_SECRET'), 29 | 'region' => 'us-east-1', 30 | ], 31 | 32 | 'sparkpost' => [ 33 | 'secret' => env('SPARKPOST_SECRET'), 34 | ], 35 | 36 | 'stripe' => [ 37 | 'model' => App\User::class, 38 | 'key' => env('STRIPE_KEY'), 39 | 'secret' => env('STRIPE_SECRET'), 40 | ], 41 | 42 | ]; 43 | -------------------------------------------------------------------------------- /config/view.php: -------------------------------------------------------------------------------- 1 | [ 17 | realpath(base_path('resources/views')), 18 | ], 19 | 20 | /* 21 | |-------------------------------------------------------------------------- 22 | | Compiled View Path 23 | |-------------------------------------------------------------------------- 24 | | 25 | | This option determines where all the compiled Blade templates will be 26 | | stored for your application. Typically, this is within the storage 27 | | directory. However, as usual, you are free to change this value. 28 | | 29 | */ 30 | 31 | 'compiled' => realpath(storage_path('framework/views')), 32 | 33 | ]; 34 | -------------------------------------------------------------------------------- /database/.gitignore: -------------------------------------------------------------------------------- 1 | *.sqlite 2 | -------------------------------------------------------------------------------- /database/factories/ModelFactory.php: -------------------------------------------------------------------------------- 1 | define(App\User::class, function (Faker\Generator $faker) { 15 | return [ 16 | 'name' => $faker->name, 17 | 'email' => $faker->safeEmail, 18 | 'password' => bcrypt(str_random(10)), 19 | 'remember_token' => str_random(10), 20 | ]; 21 | }); 22 | -------------------------------------------------------------------------------- /database/migrations/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /database/migrations/2017_05_23_114608_create_users_table.php: -------------------------------------------------------------------------------- 1 | increments('id')->unsigned(); 17 | $table->string('username')->unique(); 18 | $table->string('display_name'); 19 | $table->string('email')->unique()->nullable(); 20 | $table->string('phone',60)->unique()->nullable(); 21 | $table->string('password', 60); 22 | $table->string('api_token', 60)->nullable(); 23 | $table->string('confirmation_code')->nullable(); 24 | $table->boolean('confirmed')->default(false); 25 | $table->rememberToken(); 26 | $table->timestamps(); 27 | }); 28 | } 29 | 30 | /** 31 | * Reverse the migrations. 32 | * 33 | * @return void 34 | */ 35 | public function down() 36 | { 37 | Schema::drop('users'); 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /database/migrations/2017_05_23_132446_entrust_setup_tables.php: -------------------------------------------------------------------------------- 1 | increments('id'); 17 | $table->string('name')->unique(); 18 | $table->string('display_name')->nullable(); 19 | $table->string('tag_color',50)->nullable(); 20 | $table->string('description')->nullable(); 21 | $table->timestamps(); 22 | }); 23 | 24 | // Create table for associating roles to users (Many-to-Many) 25 | Schema::create('role_user', function (Blueprint $table) { 26 | $table->integer('user_id')->unsigned(); 27 | $table->integer('role_id')->unsigned(); 28 | 29 | $table->foreign('user_id')->references('id')->on('users') 30 | ->onUpdate('cascade')->onDelete('cascade'); 31 | $table->foreign('role_id')->references('id')->on('roles') 32 | ->onUpdate('cascade')->onDelete('cascade'); 33 | 34 | $table->primary(['user_id', 'role_id']); 35 | }); 36 | 37 | // Create table for storing permissions 38 | Schema::create('permissions', function (Blueprint $table) { 39 | $table->increments('id'); 40 | $table->string('name')->unique(); 41 | $table->string('display_name')->nullable(); 42 | $table->string('tag_color',50)->nullable(); 43 | $table->string('description')->nullable(); 44 | $table->timestamps(); 45 | }); 46 | 47 | // Create table for associating permissions to roles (Many-to-Many) 48 | Schema::create('permission_role', function (Blueprint $table) { 49 | $table->integer('permission_id')->unsigned(); 50 | $table->integer('role_id')->unsigned(); 51 | 52 | $table->foreign('permission_id')->references('id')->on('permissions') 53 | ->onUpdate('cascade')->onDelete('cascade'); 54 | $table->foreign('role_id')->references('id')->on('roles') 55 | ->onUpdate('cascade')->onDelete('cascade'); 56 | 57 | $table->primary(['permission_id', 'role_id']); 58 | }); 59 | } 60 | 61 | /** 62 | * Reverse the migrations. 63 | * 64 | * @return void 65 | */ 66 | public function down() 67 | { 68 | Schema::drop('permission_role'); 69 | Schema::drop('permissions'); 70 | Schema::drop('role_user'); 71 | Schema::drop('roles'); 72 | } 73 | } 74 | -------------------------------------------------------------------------------- /database/seeds/.gitkeep: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /database/seeds/DatabaseSeeder.php: -------------------------------------------------------------------------------- 1 | call('UsersTableSeeder'); 15 | $this->call('RolesTableSeeder'); 16 | $this->call('RoleUserTableSeeder'); 17 | } 18 | } 19 | -------------------------------------------------------------------------------- /database/seeds/RoleUserTableSeeder.php: -------------------------------------------------------------------------------- 1 | delete(); 18 | 19 | \DB::table('role_user')->insert(array ( 20 | 0 => 21 | array ( 22 | 'user_id' => 1, 23 | 'role_id' => 1, 24 | ), 25 | 1 => 26 | array ( 27 | 'user_id' => 1, 28 | 'role_id' => 2, 29 | ), 30 | )); 31 | 32 | 33 | } 34 | } 35 | -------------------------------------------------------------------------------- /database/seeds/RolesTableSeeder.php: -------------------------------------------------------------------------------- 1 | delete(); 18 | 19 | \DB::table('roles')->insert(array ( 20 | 0 => 21 | array ( 22 | 'id' => 1, 23 | 'name' => 'owner', 24 | 'display_name' => '站长', 25 | 'description' => '网站站长', 26 | 'tag_color' => '#418aab', 27 | 'created_at' => '2016-02-18 15:38:20', 28 | 'updated_at' => '2016-07-21 19:05:41', 29 | ), 30 | 1 => 31 | array ( 32 | 'id' => 2, 33 | 'name' => 'admin', 34 | 'display_name' => '管理员', 35 | 'description' => '网站管理员', 36 | 'tag_color' => '#bf216d', 37 | 'created_at' => '2016-02-18 15:52:05', 38 | 'updated_at' => '2017-05-02 10:32:56', 39 | ), 40 | )); 41 | 42 | 43 | } 44 | } 45 | -------------------------------------------------------------------------------- /database/seeds/UsersTableSeeder.php: -------------------------------------------------------------------------------- 1 | delete(); 18 | 19 | \DB::table('users')->insert(array ( 20 | 0 => 21 | array ( 22 | 'id' => 1, 23 | 'username' => 'admin', 24 | 'display_name' => '管理员', 25 | 'email' => 'admin@domain.com', 26 | 'phone' => NULL, 27 | 'password' => bcrypt('123456'), 28 | 'api_token' => NULL, 29 | 'confirmed' => 1, 30 | 'confirmation_code' => NULL, 31 | 'remember_token' => NULL, 32 | 'created_at' => '2016-02-18 16:38:09', 33 | 'updated_at' => '2017-05-19 11:15:06', 34 | ), 35 | )); 36 | 37 | 38 | } 39 | } 40 | -------------------------------------------------------------------------------- /package.json: -------------------------------------------------------------------------------- 1 | { 2 | "private": true, 3 | "scripts": { 4 | "prod": "gulp --production", 5 | "dev": "gulp watch" 6 | }, 7 | "devDependencies": { 8 | "gulp": "^3.9.1", 9 | "laravel-elixir": "^5.0.0" 10 | } 11 | } 12 | -------------------------------------------------------------------------------- /phpunit.xml: -------------------------------------------------------------------------------- 1 | 2 | 11 | 12 | 13 | ./tests 14 | 15 | 16 | 17 | 18 | ./app 19 | 20 | ./app/Http/routes.php 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | -------------------------------------------------------------------------------- /public/.htaccess: -------------------------------------------------------------------------------- 1 | 2 | 3 | Options -MultiViews 4 | 5 | 6 | RewriteEngine On 7 | 8 | # Redirect Trailing Slashes If Not A Folder... 9 | RewriteCond %{REQUEST_FILENAME} !-d 10 | RewriteRule ^(.*)/$ /$1 [L,R=301] 11 | 12 | # Handle Front Controller... 13 | RewriteCond %{REQUEST_FILENAME} !-d 14 | RewriteCond %{REQUEST_FILENAME} !-f 15 | RewriteRule ^ index.php [L] 16 | 17 | # Handle Authorization Header 18 | RewriteCond %{HTTP:Authorization} . 19 | RewriteRule .* - [E=HTTP_AUTHORIZATION:%{HTTP:Authorization}] 20 | 21 | -------------------------------------------------------------------------------- /public/MP_verify_4TFEzxL69ppeinx8.txt: -------------------------------------------------------------------------------- 1 | 4TFEzxL69ppeinx8 -------------------------------------------------------------------------------- /public/css/custom-admin.css: -------------------------------------------------------------------------------- 1 | .page-header { 2 | padding-bottom: 9px; 3 | margin: 10px 0; 4 | border-bottom: 1px solid #eee; 5 | } 6 | 7 | .breadcrumb { 8 | margin-bottom: 0px; 9 | } 10 | -------------------------------------------------------------------------------- /public/css/font/summernote.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/css/font/summernote.eot -------------------------------------------------------------------------------- /public/css/font/summernote.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/css/font/summernote.ttf -------------------------------------------------------------------------------- /public/css/font/summernote.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/css/font/summernote.woff -------------------------------------------------------------------------------- /public/css/images/controls.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/css/images/controls.png -------------------------------------------------------------------------------- /public/css/images/loading.gif: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/css/images/loading.gif -------------------------------------------------------------------------------- /public/css/login.css: -------------------------------------------------------------------------------- 1 | section { 2 | padding: 100px 0; 3 | } 4 | 5 | /* Media Queries */ 6 | 7 | @media screen and (max-width: 767px) { 8 | .container> header { 9 | text-align: center; 10 | } 11 | p.codrops-demos { 12 | position: relative; 13 | top: auto; 14 | left: auto; 15 | } 16 | } 17 | .index-login { 18 | border-radius: 6px; 19 | margin-top: 10px; 20 | border: 1px solid #e1e8ed; 21 | background-color: #ffffff; 22 | } 23 | .index-login-form { 24 | margin: 20px 5px; 25 | } 26 | -------------------------------------------------------------------------------- /public/css/swiper.css: -------------------------------------------------------------------------------- 1 | @charset "utf-8"; 2 | /* CSS Document */ 3 | /*-导航菜单拖动点击切换--*/ 4 | .menu_swiper{ height:50px; background:#fff; border-bottom:1px solid #ccc;} 5 | .swiper-container { 6 | margin: 0 auto; 7 | position: relative; 8 | overflow: hidden; 9 | z-index: 1 10 | } 11 | .swiper-container { 12 | width: 100%; 13 | height: 100%; 14 | margin-left: auto; 15 | margin-right: auto; 16 | } 17 | .swiper-wrapper { 18 | position: relative; 19 | width: 100%; 20 | height: 100%; 21 | z-index: 1; 22 | display: -webkit-box; 23 | display: -moz-box; 24 | display: -ms-flexbox; 25 | display: -webkit-flex; 26 | display: flex; 27 | -webkit-transition-property: -webkit-transform; 28 | -moz-transition-property: -moz-transform; 29 | -o-transition-property: -o-transform; 30 | -ms-transition-property: -ms-transform; 31 | transition-property: transform; 32 | -webkit-box-sizing: content-box; 33 | -moz-box-sizing: content-box; 34 | box-sizing: content-box 35 | } 36 | .swiper-container-android .swiper-slide, .swiper-wrapper { 37 | -webkit-transform: translate3d(0, 0, 0); 38 | -moz-transform: translate3d(0, 0, 0); 39 | -o-transform: translate(0, 0); 40 | -ms-transform: translate3d(0, 0, 0); 41 | transform: translate3d(0, 0, 0) 42 | } 43 | .swiper-container-fade.swiper-container-free-mode .swiper-slide { 44 | -webkit-transition-timing-function: ease-out; 45 | -moz-transition-timing-function: ease-out; 46 | -ms-transition-timing-function: ease-out; 47 | -o-transition-timing-function: ease-out; 48 | transition-timing-function: ease-out 49 | } 50 | .swiper-container-fade .swiper-slide { 51 | pointer-events: none 52 | } 53 | .swiper-slide {flex-shrink: 0; 54 | height: 100%; 55 | position: relative; 56 | width: 100%; 57 | text-align: center; 58 | font-size: 18px; 59 | background: #fff; 60 | display: -webkit-box; 61 | display: -ms-flexbox; 62 | display: -webkit-flex; 63 | display: flex; width:100%; 64 | -webkit-box-pack: center; 65 | -ms-flex-pack: center; 66 | -webkit-justify-content: center; 67 | justify-content: center; 68 | -webkit-box-align: center; 69 | -ms-flex-align: center; 70 | -webkit-align-items: center; 71 | align-items: center; 72 | } 73 | .swiper-slide { 74 | -webkit-flex-shrink: 0; 75 | -ms-flex: 0 0 auto; 76 | flex-shrink: 0; 77 | width: 100%; 78 | height: 100%; 79 | position: relative 80 | } 81 | .swiper-sliden:nth-last-child(2){} 82 | .swiper-button-next, .swiper-button-prev {font-size:24px; 83 | position: absolute; 84 | top: 50%; 85 | width: 15px; 86 | height:34px; 87 | margin-top: -15px; 88 | z-index: 10; 89 | cursor: pointer; 90 | background-position: center; 91 | background-repeat: no-repeat 92 | } 93 | .swiper-button-next.swiper-button-disabled, .swiper-button-prev.swiper-button-disabled { 94 | opacity:0.9; 95 | cursor: auto; 96 | pointer-events: none 97 | } 98 | .swiper-button-prev{ 99 | background:url(../image/pre.png) no-repeat left top; 100 | left:10px; 101 | right: auto 102 | } 103 | 104 | .swiper-button-next{ background:url(../image/next.png) no-repeat left top; 105 | right:10px; 106 | left: auto 107 | } 108 | 109 | .swiper-pagination {bottom: 10px; 110 | left: 0; 111 | width: 100%; 112 | position: absolute; 113 | text-align: center; 114 | transform: translate3d(0px, 0px, 0px); 115 | transition: all 0.3s ease 0s; 116 | z-index: 10; 117 | } 118 | -------------------------------------------------------------------------------- /public/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon.ico -------------------------------------------------------------------------------- /public/favicon/android-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/android-icon-144x144.png -------------------------------------------------------------------------------- /public/favicon/android-icon-192x192.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/android-icon-192x192.png -------------------------------------------------------------------------------- /public/favicon/android-icon-36x36.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/android-icon-36x36.png -------------------------------------------------------------------------------- /public/favicon/android-icon-48x48.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/android-icon-48x48.png -------------------------------------------------------------------------------- /public/favicon/android-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/android-icon-72x72.png -------------------------------------------------------------------------------- /public/favicon/android-icon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/android-icon-96x96.png -------------------------------------------------------------------------------- /public/favicon/apple-icon-114x114.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/apple-icon-114x114.png -------------------------------------------------------------------------------- /public/favicon/apple-icon-120x120.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/apple-icon-120x120.png -------------------------------------------------------------------------------- /public/favicon/apple-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/apple-icon-144x144.png -------------------------------------------------------------------------------- /public/favicon/apple-icon-152x152.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/apple-icon-152x152.png -------------------------------------------------------------------------------- /public/favicon/apple-icon-180x180.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/apple-icon-180x180.png -------------------------------------------------------------------------------- /public/favicon/apple-icon-57x57.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/apple-icon-57x57.png -------------------------------------------------------------------------------- /public/favicon/apple-icon-60x60.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/apple-icon-60x60.png -------------------------------------------------------------------------------- /public/favicon/apple-icon-72x72.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/apple-icon-72x72.png -------------------------------------------------------------------------------- /public/favicon/apple-icon-76x76.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/apple-icon-76x76.png -------------------------------------------------------------------------------- /public/favicon/apple-icon-precomposed.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/apple-icon-precomposed.png -------------------------------------------------------------------------------- /public/favicon/apple-icon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/apple-icon.png -------------------------------------------------------------------------------- /public/favicon/browserconfig.xml: -------------------------------------------------------------------------------- 1 | 2 | #ffffff -------------------------------------------------------------------------------- /public/favicon/favicon-16x16.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/favicon-16x16.png -------------------------------------------------------------------------------- /public/favicon/favicon-32x32.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/favicon-32x32.png -------------------------------------------------------------------------------- /public/favicon/favicon-96x96.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/favicon-96x96.png -------------------------------------------------------------------------------- /public/favicon/favicon.ico: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/favicon.ico -------------------------------------------------------------------------------- /public/favicon/manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "App", 3 | "icons": [ 4 | { 5 | "src": "\/android-icon-36x36.png", 6 | "sizes": "36x36", 7 | "type": "image\/png", 8 | "density": "0.75" 9 | }, 10 | { 11 | "src": "\/android-icon-48x48.png", 12 | "sizes": "48x48", 13 | "type": "image\/png", 14 | "density": "1.0" 15 | }, 16 | { 17 | "src": "\/android-icon-72x72.png", 18 | "sizes": "72x72", 19 | "type": "image\/png", 20 | "density": "1.5" 21 | }, 22 | { 23 | "src": "\/android-icon-96x96.png", 24 | "sizes": "96x96", 25 | "type": "image\/png", 26 | "density": "2.0" 27 | }, 28 | { 29 | "src": "\/android-icon-144x144.png", 30 | "sizes": "144x144", 31 | "type": "image\/png", 32 | "density": "3.0" 33 | }, 34 | { 35 | "src": "\/android-icon-192x192.png", 36 | "sizes": "192x192", 37 | "type": "image\/png", 38 | "density": "4.0" 39 | } 40 | ] 41 | } -------------------------------------------------------------------------------- /public/favicon/ms-icon-144x144.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/ms-icon-144x144.png -------------------------------------------------------------------------------- /public/favicon/ms-icon-150x150.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/ms-icon-150x150.png -------------------------------------------------------------------------------- /public/favicon/ms-icon-310x310.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/ms-icon-310x310.png -------------------------------------------------------------------------------- /public/favicon/ms-icon-70x70.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/favicon/ms-icon-70x70.png -------------------------------------------------------------------------------- /public/fonts/FontAwesome.otf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/fonts/FontAwesome.otf -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/fonts/fontawesome-webfont.eot -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/fonts/fontawesome-webfont.ttf -------------------------------------------------------------------------------- /public/fonts/fontawesome-webfont.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/fonts/fontawesome-webfont.woff -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.eot: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/fonts/glyphicons-halflings-regular.eot -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.ttf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/fonts/glyphicons-halflings-regular.ttf -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/fonts/glyphicons-halflings-regular.woff -------------------------------------------------------------------------------- /public/fonts/glyphicons-halflings-regular.woff2: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/fonts/glyphicons-halflings-regular.woff2 -------------------------------------------------------------------------------- /public/image/20170515143919_4092.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/20170515143919_4092.jpg -------------------------------------------------------------------------------- /public/image/a.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/a.jpeg -------------------------------------------------------------------------------- /public/image/b.jpeg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/b.jpeg -------------------------------------------------------------------------------- /public/image/banner.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/banner.png -------------------------------------------------------------------------------- /public/image/best.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/best.png -------------------------------------------------------------------------------- /public/image/beston.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/beston.png -------------------------------------------------------------------------------- /public/image/cata.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/cata.png -------------------------------------------------------------------------------- /public/image/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/check.png -------------------------------------------------------------------------------- /public/image/checkfail.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/checkfail.png -------------------------------------------------------------------------------- /public/image/edit.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/edit.png -------------------------------------------------------------------------------- /public/image/eye-black.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/eye-black.png -------------------------------------------------------------------------------- /public/image/goback.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/goback.png -------------------------------------------------------------------------------- /public/image/index.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/index.png -------------------------------------------------------------------------------- /public/image/jinb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/jinb.png -------------------------------------------------------------------------------- /public/image/link.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/link.png -------------------------------------------------------------------------------- /public/image/login/login.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login/login.png -------------------------------------------------------------------------------- /public/image/login/logintitle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login/logintitle.png -------------------------------------------------------------------------------- /public/image/login/pass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login/pass.png -------------------------------------------------------------------------------- /public/image/login/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login/user.png -------------------------------------------------------------------------------- /public/image/login_img/aaa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/aaa.png -------------------------------------------------------------------------------- /public/image/login_img/body.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/body.png -------------------------------------------------------------------------------- /public/image/login_img/bodybg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/bodybg.png -------------------------------------------------------------------------------- /public/image/login_img/check.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/check.png -------------------------------------------------------------------------------- /public/image/login_img/checkon.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/checkon.png -------------------------------------------------------------------------------- /public/image/login_img/loginbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/loginbg.png -------------------------------------------------------------------------------- /public/image/login_img/loginleft.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/loginleft.png -------------------------------------------------------------------------------- /public/image/login_img/logintitle.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/logintitle.png -------------------------------------------------------------------------------- /public/image/login_img/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/logo.png -------------------------------------------------------------------------------- /public/image/login_img/logo2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/logo2.png -------------------------------------------------------------------------------- /public/image/login_img/logoa.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/logoa.png -------------------------------------------------------------------------------- /public/image/login_img/logoimg.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/logoimg.jpg -------------------------------------------------------------------------------- /public/image/login_img/logoimg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/logoimg.png -------------------------------------------------------------------------------- /public/image/login_img/logoimg00.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/logoimg00.png -------------------------------------------------------------------------------- /public/image/login_img/logoimg1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/logoimg1.png -------------------------------------------------------------------------------- /public/image/login_img/logoimgf.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/logoimgf.png -------------------------------------------------------------------------------- /public/image/login_img/pass.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/pass.png -------------------------------------------------------------------------------- /public/image/login_img/transparent.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/transparent.png -------------------------------------------------------------------------------- /public/image/login_img/u37.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/u37.png -------------------------------------------------------------------------------- /public/image/login_img/user.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/user.png -------------------------------------------------------------------------------- /public/image/login_img/user.psd: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/login_img/user.psd -------------------------------------------------------------------------------- /public/image/loginbg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/loginbg.png -------------------------------------------------------------------------------- /public/image/logo.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/logo.png -------------------------------------------------------------------------------- /public/image/m1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/m1.png -------------------------------------------------------------------------------- /public/image/m2.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/m2.png -------------------------------------------------------------------------------- /public/image/m3.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/m3.png -------------------------------------------------------------------------------- /public/image/pro01.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/pro01.png -------------------------------------------------------------------------------- /public/image/pro02.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/pro02.png -------------------------------------------------------------------------------- /public/image/pro03.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/pro03.png -------------------------------------------------------------------------------- /public/image/search.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/search.png -------------------------------------------------------------------------------- /public/image/search1.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/search1.png -------------------------------------------------------------------------------- /public/image/titlebg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/titlebg.png -------------------------------------------------------------------------------- /public/image/tongb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/tongb.png -------------------------------------------------------------------------------- /public/image/yinb.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/yinb.png -------------------------------------------------------------------------------- /public/image/zhuce.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/zhuce.png -------------------------------------------------------------------------------- /public/image/一等奖.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/一等奖.jpg -------------------------------------------------------------------------------- /public/image/三等奖.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/三等奖.jpg -------------------------------------------------------------------------------- /public/image/二等奖.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/image/二等奖.jpg -------------------------------------------------------------------------------- /public/img/bootstrap-colorpicker/alpha-horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/img/bootstrap-colorpicker/alpha-horizontal.png -------------------------------------------------------------------------------- /public/img/bootstrap-colorpicker/alpha.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/img/bootstrap-colorpicker/alpha.png -------------------------------------------------------------------------------- /public/img/bootstrap-colorpicker/hue-horizontal.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/img/bootstrap-colorpicker/hue-horizontal.png -------------------------------------------------------------------------------- /public/img/bootstrap-colorpicker/hue.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/img/bootstrap-colorpicker/hue.png -------------------------------------------------------------------------------- /public/img/bootstrap-colorpicker/saturation.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/img/bootstrap-colorpicker/saturation.png -------------------------------------------------------------------------------- /public/img/cgpi.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/img/cgpi.jpg -------------------------------------------------------------------------------- /public/img/logo_transparent.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/img/logo_transparent.jpg -------------------------------------------------------------------------------- /public/img/pattern.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/public/img/pattern.png -------------------------------------------------------------------------------- /public/index.php: -------------------------------------------------------------------------------- 1 | 8 | */ 9 | 10 | /* 11 | |-------------------------------------------------------------------------- 12 | | Register The Auto Loader 13 | |-------------------------------------------------------------------------- 14 | | 15 | | Composer provides a convenient, automatically generated class loader for 16 | | our application. We just need to utilize it! We'll simply require it 17 | | into the script here so that we don't have to worry about manual 18 | | loading any of our classes later on. It feels nice to relax. 19 | | 20 | */ 21 | 22 | require __DIR__.'/../bootstrap/autoload.php'; 23 | 24 | /* 25 | |-------------------------------------------------------------------------- 26 | | Turn On The Lights 27 | |-------------------------------------------------------------------------- 28 | | 29 | | We need to illuminate PHP development, so let us turn on the lights. 30 | | This bootstraps the framework and gets it ready for use, then it 31 | | will load up this application so that we can run it and send 32 | | the responses back to the browser and delight our users. 33 | | 34 | */ 35 | 36 | $app = require_once __DIR__.'/../bootstrap/app.php'; 37 | 38 | /* 39 | |-------------------------------------------------------------------------- 40 | | Run The Application 41 | |-------------------------------------------------------------------------- 42 | | 43 | | Once we have the application, we can handle the incoming request 44 | | through the kernel, and send the associated response back to 45 | | the client's browser allowing them to enjoy the creative 46 | | and wonderful application we have prepared for them. 47 | | 48 | */ 49 | 50 | $kernel = $app->make(Illuminate\Contracts\Http\Kernel::class); 51 | 52 | $response = $kernel->handle( 53 | $request = Illuminate\Http\Request::capture() 54 | ); 55 | 56 | $response->send(); 57 | 58 | $kernel->terminate($request, $response); 59 | -------------------------------------------------------------------------------- /public/js/jquery.spinner.js: -------------------------------------------------------------------------------- 1 | /* ============================================================================== 2 | * Licensed under the Apache License, Version 2.0 (the "License"); you may not 3 | * use this file except in compliance with the License. You may obtain a copy of 4 | * the License at 5 | * 6 | * http://www.apache.org/licenses/LICENSE-2.0 7 | * 8 | * Unless required by applicable law or agreed to in writing, software 9 | * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 10 | * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 11 | * License for the specific language governing permissions and limitations under 12 | * the License. 13 | */ 14 | ;(function ($) { 15 | $.fn.spinner = function (opts) { 16 | return this.each(function () { 17 | var defaults = {value:1, min:0} 18 | var options = $.extend(defaults, opts) 19 | var keyCodes = {up:38, down:40} 20 | var container = $('
') 21 | container.addClass('spinner') 22 | var textField = $(this).addClass('value').attr('maxlength', '4').val(options.value) 23 | .bind('keyup paste change', function (e) { 24 | var field = $(this) 25 | if (e.keyCode == keyCodes.up) changeValue(1) 26 | else if (e.keyCode == keyCodes.down) changeValue(-1) 27 | else if (getValue(field) != container.data('lastValidValue')) validateAndTrigger(field) 28 | }) 29 | textField.wrap(container) 30 | 31 | var increaseButton = $('').click(function () { changeValue(1) }) 32 | var decreaseButton = $('').click(function () { changeValue(-1) }) 33 | 34 | validate(textField) 35 | container.data('lastValidValue', options.value) 36 | textField.before(decreaseButton) 37 | textField.after(increaseButton) 38 | 39 | function changeValue(delta) { 40 | textField.val(getValue() + delta) 41 | validateAndTrigger(textField) 42 | } 43 | 44 | function validateAndTrigger(field) { 45 | clearTimeout(container.data('timeout')) 46 | var value = validate(field) 47 | if (!isInvalid(value)) { 48 | textField.trigger('update', [field, value]) 49 | } 50 | } 51 | 52 | function validate(field) { 53 | var value = getValue() 54 | if (value <= options.min) decreaseButton.attr('disabled', 'disabled') 55 | else decreaseButton.removeAttr('disabled') 56 | field.toggleClass('invalid', isInvalid(value)).toggleClass('passive', value === 0) 57 | 58 | if (isInvalid(value)) { 59 | var timeout = setTimeout(function () { 60 | textField.val(container.data('lastValidValue')) 61 | validate(field) 62 | }, 500) 63 | container.data('timeout', timeout) 64 | } else { 65 | container.data('lastValidValue', value) 66 | } 67 | return value 68 | } 69 | 70 | function isInvalid(value) { return isNaN(+value) || value < options.min; } 71 | 72 | function getValue(field) { 73 | field = field || textField; 74 | return parseInt(field.val() || 0, 10) 75 | } 76 | }) 77 | } 78 | })(jQuery) 79 | -------------------------------------------------------------------------------- /public/robots.txt: -------------------------------------------------------------------------------- 1 | User-agent: * 2 | Disallow: 3 | -------------------------------------------------------------------------------- /public/web.config: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | -------------------------------------------------------------------------------- /resources/assets/sass/app.scss: -------------------------------------------------------------------------------- 1 | 2 | -------------------------------------------------------------------------------- /resources/lang/en/auth.php: -------------------------------------------------------------------------------- 1 | 'These credentials do not match our records.', 17 | 'throttle' => 'Too many login attempts. Please try again in :seconds seconds.', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/en/pagination.php: -------------------------------------------------------------------------------- 1 | '« Previous', 17 | 'next' => 'Next »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/en/passwords.php: -------------------------------------------------------------------------------- 1 | 'Passwords must be at least six characters and match the confirmation.', 17 | 'reset' => 'Your password has been reset!', 18 | 'sent' => 'We have e-mailed your password reset link!', 19 | 'token' => 'This password reset token is invalid.', 20 | 'user' => "We can't find a user with that e-mail address.", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/admin/admin.php: -------------------------------------------------------------------------------- 1 | '设置', 5 | 'homepage' => '回到首页', 6 | 'home' => '首页', 7 | 'welcome' => '欢迎', 8 | 'action' => '操作', 9 | 'back' => '返回', 10 | 'created_at' => '创建时间', 11 | 'updated_at' => '修改时间', 12 | 'language' => '语言', 13 | 'yes' => '是', 14 | 'no' => '否', 15 | 'dashboard' => '面板', 16 | 'view_detail' => '查看详情', 17 | 'news_categories' => '文章分类', 18 | 'news_items' => '文章', 19 | 'photo_albums' => '相册', 20 | 'photo_items' => '图片', 21 | 'users' => '用户', 22 | 'roles' => '角色', 23 | 'blogs' => '博文', 24 | ]; 25 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/admin/language.php: -------------------------------------------------------------------------------- 1 | '编码', 5 | 'icon' => '图标', 6 | 'languages' => '语言', 7 | ]; 8 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/admin/modal.php: -------------------------------------------------------------------------------- 1 | '创建', 5 | 'edit' => '编辑', 6 | 'reset' => '复位', 7 | 'refresh' => '刷新', 8 | 'cancel' => '取消', 9 | 'general' => '概要', 10 | 'title' => '标题', 11 | 'new' => '新建', 12 | 'delete' => '删除', 13 | 'items' => '条目', 14 | 'list' => '列表', 15 | 'sync' => '同步', 16 | 'ajaxFail' => '表单提交错误', 17 | 'delete_message' => '您确定删除该条目?', 18 | ]; 19 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/admin/nav.php: -------------------------------------------------------------------------------- 1 | '返回前端', 5 | 'dashboard' => '控制台', 6 | 'regions' => '区域', 7 | 'language' => '语言', 8 | 'articles' => '文章', 9 | 'articlecategory' => '文章分类', 10 | 'accounts' => '帐号管理', 11 | 'category' => '分类', 12 | 'tag' => '标签', 13 | 'activities' => '活动管理', 14 | 'activities_list' => '活动列表', 15 | 'customs' => '会员管理', 16 | 'customs_list' => '会员列表', 17 | 'customs_pay' => '会员支付记录', 18 | 'pay' => '活动支付记录', 19 | 'pays' => '支付记录', 20 | 'wechat' => '微信服务号', 21 | 'wechat_users' => '关注用户', 22 | 'wechat_groups' => '用户分组', 23 | 'wechat_menus' => '自定义菜单', 24 | 'photo_items' => '图片集', 25 | 'photo_albums' => '相册', 26 | 'photo' => '图片', 27 | 'users' => '用户', 28 | 'roles' => '角色', 29 | 'permissions' => '权限', 30 | 'logout' => '登出', 31 | ]; 32 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/admin/permissions.php: -------------------------------------------------------------------------------- 1 | '权限', 5 | 'name' => '权限名', 6 | 'display_name' => '显示名称', 7 | 'description' => '权限描述', 8 | 'choose_permission' => '选择权限', 9 | ]; 10 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/admin/roles.php: -------------------------------------------------------------------------------- 1 | '角色', 5 | 'name' => '角色名', 6 | 'display_name' => '显示名称', 7 | 'description' => '角色描述', 8 | 'tag_color' => '标签颜色', 9 | 'adminrole' => '管理员角色', 10 | 'userrole' => '用户角色', 11 | 'choose_role' => '选择权限', 12 | 'user_count' => '用户数', 13 | ]; 14 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/admin/users.php: -------------------------------------------------------------------------------- 1 | 'ID', 5 | 'users' => '用户', 6 | 'admin' => '管理员', 7 | 'username' => '用户名', 8 | 'display_name' => '显示名称', 9 | 'email' => '邮件地址', 10 | 'phone' => '手机号码', 11 | 'password' => '密码', 12 | 'password_confirmation' => '确认密码', 13 | 'confirmed' => '激活用户', 14 | 'active_user' => '激活用户', 15 | 'yes' => '是', 16 | 'no' => '否', 17 | 'roles' => '角色', 18 | 'roles_info' => '为用户添加角色权限', 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/auth.php: -------------------------------------------------------------------------------- 1 | '验证失败', 17 | 'throttle' => '尝试次数已超出系统限制,请在:seconds秒后重新登录。', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/email.php: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/njwangchuan/laravel-admin/39ef815ce810c8c4b1f90e541f18426398fb355d/resources/lang/zh-CN/email.php -------------------------------------------------------------------------------- /resources/lang/zh-CN/pagination.php: -------------------------------------------------------------------------------- 1 | '« 上一页', 17 | 'next' => '下一页 »', 18 | 19 | ]; 20 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/passwords.php: -------------------------------------------------------------------------------- 1 | '密码至少6位字符且两次输入一致。', 17 | 'reset' => '您的密码已经重置。', 18 | 'sent' => '已向您的注册邮箱发送密码重置邮件。', 19 | 'token' => '无效的密码重置请求。', 20 | 'user' => "该邮箱未被注册。", 21 | 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/photos.php: -------------------------------------------------------------------------------- 1 | '图片描述', 5 | 'tags' => '图片标签', 6 | ]; 7 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/reminders.php: -------------------------------------------------------------------------------- 1 | '密码至少6位字符且两次输入一致。', 17 | 'reset' => '您的密码已经重置。', 18 | 'sent' => '已向您的注册邮箱发送密码重置邮件。', 19 | 'token' => '无效的密码重置请求。', 20 | 'user' => "该邮箱未被注册。", 21 | ]; 22 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/site/login.php: -------------------------------------------------------------------------------- 1 | '登录界面', 5 | 'title' => 'Laravel Admin', 6 | 'username' => '用户名', 7 | 'username_placeholder' => '请输入您的用户名', 8 | 'email' => 'Email地址', 9 | 'email_placeholder' => '请输入您的注册邮箱', 10 | 'name' => '用户名', 11 | 'name_placeholder' => '请输入您的用户名', 12 | 'password' => '登录密码', 13 | 'password_placeholder' => '请输入您的密码', 14 | 'rememberme' => '记住我', 15 | 'login' => '登录', 16 | 'forget' => '忘记密码', 17 | ]; 18 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/site/register.php: -------------------------------------------------------------------------------- 1 | '注册界面', 5 | 'title' => '注册用户', 6 | 'name' => '用户名', 7 | 'name_placeholder' => '用户名唯一,只支持英文字母数字和下划线', 8 | 'display_name' => '显示名称', 9 | 'display_name_placeholder' => '请输入您的姓名', 10 | 'phone' => '手机号码', 11 | 'phone_placeholder' => '请输入有效的手机号码', 12 | 'email' => 'Email地址', 13 | 'email_placeholder' => '请输入有效的邮箱地址接受确认邮件', 14 | 'org' => '机构', 15 | 'org_placeholder' => '请输入就职机构', 16 | 'grade' => '班级', 17 | 'grade_placeholder' => '请输入班级信息', 18 | 'job' => '职务', 19 | 'job_placeholder' => '请输入职务', 20 | 'referee' => '班主任', 21 | 'referee_placeholder' => '请输入班主任', 22 | 'address' => '联系地址', 23 | 'address_placeholder' => '请输入联系地址', 24 | 'password' => '登录密码', 25 | 'password_placeholder' => '请输入您的密码,6-20位', 26 | 'password_comfirmation' => '确认登录密码', 27 | 'password_comfirmation_placeholder' =>'重新输入密码,保持一致', 28 | 'register' => '注册', 29 | 'forget' => '忘记密码', 30 | 'pay_status' => '支付状态', 31 | 'pay_status.0' => '待支付', 32 | 'pay_status.1' => '待确认', 33 | 'pay_status.2' => '已确认', 34 | 'captcha_placeholder' => '输入验证码,点击图片刷新', 35 | ]; 36 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/site/site.php: -------------------------------------------------------------------------------- 1 | '首页', 5 | 'admin_dashboard' => '管理员面板', 6 | 'nav_title' => 'Laravel Admin', 7 | 'user_profile' => '个人资料', 8 | 'user_setting' => '帐号设置', 9 | 'find_out' => '进入系列', 10 | 'join_us' => '还没有帐号?赶紧行动!', 11 | 'for' => 'For Laravel', 12 | 'albums' => '相册', 13 | 'blogs' => '博客', 14 | 'about' => '关于', 15 | 'about_us' => '关于我们', 16 | 'frendly_link' => '友情链接', 17 | 'server' => '服务提供商', 18 | 'return' => '返回首页', 19 | 'copyright' => '服务条款', 20 | 'contact' => '联系', 21 | 'login' => '登录', 22 | 'sign_up' => '注册', 23 | 'admin_panel' => '管理员面板', 24 | 'logout' => '登出', 25 | 'login_as' => '登录为', 26 | ]; 27 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/site/user.php: -------------------------------------------------------------------------------- 1 | '登录', 5 | 'login_to_account' => '登录至您的帐号', 6 | 'submit' => '提交', 7 | 'register' => '创建帐号', 8 | 'remember' => '记住我', 9 | 'password' => '密码', 10 | 'e_mail' => '邮件地址', 11 | 'register' => '注册', 12 | 'password_confirmation' => '确认密码', 13 | 'confirmation_required' => '需要确认', 14 | 'name' => '名称', 15 | 'home' => '首页', 16 | 'email_required' => '您需要提供一个有效的邮件地址', 17 | 'email_unique' => '邮箱已被注册', 18 | 'name_required' => '您需要提供一个有效名称', 19 | 'password_required' => '您需要提供密码', 20 | 'password_confirmed' => '您需要确认密码', 21 | 'change_password' => '修改密码', 22 | ]; 23 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/site/verify.php: -------------------------------------------------------------------------------- 1 | 'Email verification', 5 | 'email-intro'=> 'To validate your email ', 6 | 'email-link' => 'click on this link', 7 | 'message' => 'Thanks for signing up! Please check your email.', 8 | 'success' => 'You have successfully verified your account! You can now login.', 9 | 'again' => 'You must verify your email before you can access the site. ' . 10 | '
If you have not received the confirmation email check your spam folder.'. 11 | '
To get a new confirmation email please clic here.', 12 | 'resend' => 'A confirmation message has been sent. Please check your email.' 13 | ]; 14 | 15 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/table.php: -------------------------------------------------------------------------------- 1 | "标题", 6 | 'new' => "新建", 7 | 'created_at' => '创建时间', 8 | 'actions' => '操作', 9 | 'edit' => '编辑', 10 | 'details' => '详情', 11 | 'delete' => '删除', 12 | 'cancel' => '取消', 13 | 'ok' => 'OK', 14 | "report" => "报告", 15 | 'close' => '关闭', 16 | 'back' => '返回', 17 | 'search' => '搜索', 18 | 'start' => '开始', 19 | 'prev' => '上一页', 20 | 'next' => '下一页', 21 | 'last' => '末页', 22 | 'filter' => '(在 _MAX_ 个记录中过滤)', 23 | 'view' => '显示 0 到 0 个记录,在总计 0 个记录中', 24 | 'show' => '显示从 _START_ 到 _END_ 个记录,在总计 _TOTAL_ 个记录中', 25 | 'noresult' => '没有记录', 26 | 'showmenu' => '每页显示 _MENU_ 记录', 27 | 'processing' => '正在获取 ...', 28 | 'sort' => '排序', 29 | 'emptytable' => '暂无数据', 30 | ]; 31 | -------------------------------------------------------------------------------- /resources/lang/zh-CN/validation.php: -------------------------------------------------------------------------------- 1 | '验证码错误', 6 | 'unique' => ':attribute 已存在', 7 | 'accepted' => ':attribute 是被接受的', 8 | 'active_url' => ':attribute 必须是一个合法的 URL', 9 | 'after' => ':attribute 必须是 :date 之后的一个日期', 10 | 'alpha' => ':attribute 必须全部由字母字符构成。', 11 | 'alpha_dash' => ':attribute 必须全部由字母、数字、中划线或下划线字符构成', 12 | 'alpha_num' => ':attribute 必须全部由字母和数字构成', 13 | 'array' => ':attribute 必须是个数组', 14 | 'before' => ':attribute 必须是 :date 之前的一个日期', 15 | 'between' => [ 16 | 'numeric' => ':attribute 必须在 :min 到 :max 之间', 17 | 'file' => ':attribute 必须在 :min 到 :max KB之间', 18 | 'string' => ':attribute 必须在 :min 到 :max 个字符之间', 19 | 'array' => ':attribute 必须在 :min 到 :max 项之间', 20 | ], 21 | 'boolean' => ':attribute 字符必须是 true 或 false', 22 | 'confirmed' => ':attribute 二次确认不匹配', 23 | 'date' => ':attribute 必须是一个合法的日期', 24 | 'date_format' => ':attribute 与给定的格式 :format 不符合', 25 | 'different' => ':attribute 必须不同于:other', 26 | 'digits' => ':attribute 必须是 :digits 位', 27 | 'digits_between' => ':attribute 必须在 :min and :max 位之间', 28 | 'email' => ':attribute 必须是一个合法的电子邮件地址。', 29 | 'filled' => ':attribute 的字段是必填的', 30 | 'exists' => '选定的 :attribute 是无效的', 31 | 'image' => ':attribute 必须是一个图片 (jpeg, png, bmp 或者 gif)', 32 | 'in' => '选定的 :attribute 是无效的', 33 | 'integer' => ':attribute 必须是个整数', 34 | 'ip' => ':attribute 必须是一个合法的 IP 地址。', 35 | 'max' => [ 36 | 'numeric' => ':attribute 的最大长度为 :max 位', 37 | 'file' => ':attribute 的最大为 :max', 38 | 'string' => ':attribute 的最大长度为 :max 字符', 39 | 'array' => ':attribute 的最大个数为 :max 个', 40 | ], 41 | 'mimes' => ':attribute 的文件类型必须是:values', 42 | 'min' => [ 43 | 'numeric' => ':attribute 的最小长度为 :min 位', 44 | 'string' => ':attribute 的最小长度为 :min 字符', 45 | 'file' => ':attribute 大小至少为:min KB', 46 | 'array' => ':attribute 至少有 :min 项', 47 | ], 48 | 'not_in' => '选定的 :attribute 是无效的', 49 | 'numeric' => ':attribute 必须是数字', 50 | 'regex' => ':attribute 格式是无效的', 51 | 'required' => ':attribute 必须填写', 52 | 'required_if' => ':attribute 是必须的当 :other 是 :value', 53 | 'required_with' => ':attribute 是必须的当 :values 是存在的', 54 | 'required_with_all' => ':attribute 是必须的当 :values 是存在的', 55 | 'required_without' => ':attribute 是必须的当 :values 是不存在的', 56 | 'required_without_all' => ':attribute 是必须的当 没有一个 :values 是存在的', 57 | 'same' => ':attribute 和 :other 必须匹配', 58 | 'size' => [ 59 | 'numeric' => ':attribute 必须是 :size 位', 60 | 'file' => ':attribute 必须是 :size KB', 61 | 'string' => ':attribute 必须是 :size 个字符', 62 | 'array' => ':attribute 必须包括 :size 项', 63 | ], 64 | 'url' => ':attribute 无效的格式', 65 | 'timezone' => ':attribute 必须个有效的时区', 66 | "phone" => ":attribute 无效的格式", 67 | 68 | /* 69 | |-------------------------------------------------------------------------- 70 | | Custom Validation Language Lines 71 | |-------------------------------------------------------------------------- 72 | | 73 | | Here you may specify custom validation messages for attributes using the 74 | | convention "attribute.rule" to name the lines. This makes it quick to 75 | | specify a specific custom language line for a given attribute rule. 76 | | 77 | */ 78 | 'custom' => [ 79 | 'attribute-name' => [ 80 | 'rule-name' => 'custom-message', 81 | ], 82 | ], 83 | 84 | /* 85 | |-------------------------------------------------------------------------- 86 | | Custom Validation Attributes 87 | |-------------------------------------------------------------------------- 88 | | 89 | | The following language lines are used to swap attribute place-holders 90 | | with something more reader friendly such as E-Mail Address instead 91 | | of "email". This simply helps us make messages a little cleaner. 92 | | 93 | */ 94 | 'attributes' => [ 95 | 'username' => '用户名', 96 | 'account' => '账号', 97 | 'captcha' => '验证码', 98 | 'mobile' => '手机号', 99 | 'password' => '密码', 100 | 'content' => '内容', 101 | 'identity' => '手机号/用户名', 102 | 'display_name' => '显示名称', 103 | 'email' => '邮件地址', 104 | 'phone' => '手机号', 105 | ], 106 | 107 | ]; 108 | -------------------------------------------------------------------------------- /resources/views/admin/dashboard/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.default_name_column') 2 | 3 | {{-- Web site Title --}} 4 | @section('title') {{ trans("admin/admin.dashboard") }} :: @parent @stop 5 | 6 | {{-- Content --}} 7 | @section('main') 8 |
9 | 14 |
15 |
16 | 17 |
18 | @endsection 19 | -------------------------------------------------------------------------------- /resources/views/admin/permission/create_edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.modal') 2 | {{-- Content --}} 3 | @section('content') 4 | @if (isset($permission)) 5 | {!! Form::model($permission, array('url' => URL::to('admin/permission') . '/' . $permission->id, 'method' => 'put', 'class' => 'bf', 'files'=> true)) !!} 6 | @else 7 | {!! Form::open(array('url' => URL::to('admin/permission'), 'method' => 'post', 'class' => 'bf', 'files'=> true)) !!} 8 | @endif 9 | 10 |
11 | 12 |
13 |
14 | {!! Form::label('permission_name', trans("admin/permissions.permission_name"), array('class' => 'control-label')) !!} 15 |
16 | {!! Form::text('permission_name', null, array('class' => 'form-control')) !!} 17 | {{ $errors->first('permission_name', ':message') }} 18 |
19 |
20 |
21 | {!! Form::label('permission_code', trans("admin/permissions.permission_code"), array('class' => 'control-label')) !!} 22 |
23 | {!! Form::text('permission_code', null, array('class' => 'form-control')) !!} 24 | {{ $errors->first('permission_code', ':message') }} 25 |
26 |
27 |
28 |
29 |
30 | 34 | 38 | 46 |
47 |
48 | {!! Form::close() !!} 49 | @stop @section('scripts') 50 | 55 |
56 | @stop 57 | -------------------------------------------------------------------------------- /resources/views/admin/permission/delete.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.modal') 2 | @section('content') 3 | {!! Form::model($permission, array('url' => URL::to('admin/permission') . '/' . $permission->id, 'method' => 'delete', 'class' => 'bf', 'files'=> true)) !!} 4 |
5 |
6 | {{ trans("admin/modal.delete_message") }}
7 | 8 | {{ 9 | trans("admin/modal.cancel") }} 10 | 14 |
15 |
16 | {!! Form::close() !!} 17 | @stop 18 | -------------------------------------------------------------------------------- /resources/views/admin/permission/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.default_name_column') 2 | 3 | {{-- Web site Title --}} 4 | @section('title') {!! trans("admin/permissions.permissions") !!} :: @parent 5 | @stop 6 | 7 | {{-- Content --}} 8 | @section('main') 9 |
10 |
11 | 17 |
18 |
19 |
20 |
21 | 24 | {{trans("admin/modal.new") }} 27 |
28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 |
{!! trans("admin/permissions.name") !!}{!! trans("admin/permissions.display_name") !!}{!! trans("admin/permissions.description") !!}{!! trans("admin/admin.created_at") !!}{!! trans("admin/admin.action") !!}
41 |
42 |
43 |
44 |
45 | @stop 46 | 47 | {{-- Scripts --}} 48 | @section('scripts') 49 | @parent 50 | @stop 51 | -------------------------------------------------------------------------------- /resources/views/admin/role/create_edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.modal') 2 | 3 | {{-- Content --}} 4 | @section('content') 5 | @if (isset($role)) 6 | {!! Form::model($role, array('url' => URL::to('admin/role') . '/' . $role->id, 'method' => 'put', 'class' => 'bf', 'files'=> true)) !!} 7 | @else 8 | {!! Form::open(array('url' => URL::to('admin/role'), 'method' => 'post', 'class' => 'bf', 'files'=> true)) !!} 9 | @endif 10 | 11 |
12 | 13 |
14 |
15 | {!! Form::label('name', trans("admin/roles.name"), array('class' => 'control-label')) !!} 16 |
17 | {!! Form::text('name', null, array('class' => 'form-control')) !!} 18 | {{ $errors->first('name', ':message') }} 19 |
20 |
21 |
22 | {!! Form::label('display_name', trans("admin/roles.display_name"), array('class' => 'control-label')) !!} 23 |
24 | {!! Form::text('display_name', null, array('class' => 'form-control')) !!} 25 | {{ $errors->first('display_name', ':message') }} 26 |
27 |
28 |
29 | {!! Form::label('description', trans("admin/roles.description"), array('class' => 'control-label')) !!} 30 |
31 | {!! Form::text('description', null, array('class' => 'form-control')) !!} 32 | {{ $errors->first('description', ':message') }} 33 |
34 |
35 |
36 | {!! Form::label('tag_color', trans("admin/roles.tag_color"), array('class' => 'control-label')) !!} 37 |
38 | {!! Form::text('tag_color', null, array('class' => 'form-control','id'=> 'tag-color-selector')) !!} 39 | {{ $errors->first('tag_color', ':message') }} 40 |
41 |
42 |
43 |
44 |
45 | 49 | 53 | 61 |
62 |
63 | {!! Form::close() !!} 64 |
65 | @stop 66 | @section('scripts') 67 | 72 | @stop 73 | -------------------------------------------------------------------------------- /resources/views/admin/role/delete.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.modal') 2 | @section('content') 3 | {!! Form::model($role, array('url' => URL::to('admin/role') . '/' . $role->id, 'method' => 'delete', 'class' => 'bf', 'files'=> true)) !!} 4 |
5 |
6 | {{ trans("admin/modal.delete_message") }}
7 | 8 | {{ 9 | trans("admin/modal.cancel") }} 10 | 14 |
15 |
16 | {!! Form::close() !!} 17 | @stop 18 | -------------------------------------------------------------------------------- /resources/views/admin/role/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.default_name_column') 2 | 3 | {{-- Web site Title --}} 4 | @section('title') {!! trans("admin/roles.roles") !!} :: @parent 5 | @stop 6 | 7 | {{-- Content --}} 8 | @section('main') 9 |
10 |
11 | 17 |
18 |
19 |
20 |
21 | 24 | {{trans("admin/modal.new") }} 27 |
28 |
29 | 30 | 31 | 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 |
{!! trans("admin/roles.name") !!}{!! trans("admin/roles.display_name") !!}{!! trans("admin/roles.description") !!}{!! trans("admin/roles.tag_color") !!}{!! trans("admin/admin.created_at") !!}{!! trans("admin/roles.user_count") !!}{!! trans("admin/admin.action") !!}
43 |
44 |
45 |
46 |
47 | @stop 48 | 49 | {{-- Scripts --}} 50 | @section('scripts') 51 | @parent 52 | @stop 53 | -------------------------------------------------------------------------------- /resources/views/admin/user/create_edit.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.modal') 2 | 3 | {{-- Content --}} 4 | @section('content') 5 | @if (isset($user)) 6 | {!! Form::model($user, array('url' => URL::to('admin/user') . '/' . $user->id, 'method' => 'put', 'class' => 'bf', 'files'=> true)) !!} 7 | @else 8 | {!! Form::open(array('url' => URL::to('admin/user'), 'method' => 'post', 'class' => 'bf', 'files'=> true)) !!} 9 | @endif 10 |
11 | 12 |
13 |
14 | {!! Form::label('username', trans("admin/users.username"), array('class' => 'control-label')) !!} 15 |
16 | {!! Form::text('username', null, array('class' => 'form-control')) !!} 17 | {{ $errors->first('username', ':message') }} 18 |
19 |
20 |
21 | {!! Form::label('display_name', trans("admin/users.display_name"), array('class' => 'control-label')) !!} 22 |
23 | {!! Form::text('display_name', null, array('class' => 'form-control')) !!} 24 | {{ $errors->first('display_name', ':message') }} 25 |
26 |
27 |
28 | {!! Form::label('email', trans("admin/users.email"), array('class' => 'control-label')) !!} 29 |
30 | {!! Form::text('email', null, array('class' => 'form-control')) !!} 31 | {{ $errors->first('email', ':message') }} 32 |
33 |
34 |
35 | {!! Form::label('phone', trans("admin/users.phone"), array('class' => 'control-label')) !!} 36 |
37 | {!! Form::number('phone', null, array('class' => 'form-control')) !!} 38 | {{ $errors->first('phone', ':message') }} 39 |
40 |
41 | @if (!isset($user)) 42 |
43 | {!! Form::label('password', trans("admin/users.password"), array('class' => 'control-label')) !!} 44 |
45 | {!! Form::password('password', array('class' => 'form-control')) !!} 46 | {{ $errors->first('password', ':message') }} 47 |
48 |
49 |
50 | {!! Form::label('password_confirmation', trans("admin/users.password_confirmation"), array('class' => 'control-label')) !!} 51 |
52 | {!! Form::password('password_confirmation', array('class' => 'form-control')) !!} 53 | {{ $errors->first('password_confirmation', ':message') }} 54 |
55 |
56 | @endif 57 |
58 | {!! Form::label('confirmed', trans("admin/users.active_user"), array('class' => 'control-label')) !!} 59 |
60 | {!! Form::label('confirmed', trans("admin/users.yes"), array('class' => 'control-label')) !!} 61 | {!! Form::radio('confirmed', '1', isset($user)? $user->confirmed : 'false') !!} 62 | {!! Form::label('confirmed', trans("admin/users.no"), array('class' => 'control-label')) !!} 63 | {!! Form::radio('confirmed', '0', isset($user)? $user->confirmed : 'true') !!} 64 | {{ $errors->first('confirmed', ':message') }} 65 |
66 |
67 | 68 | @if (isset($role)) 69 | {{ Form::hidden('roles[]', $role->id) }} 70 | @else 71 |
72 | {!! Form::label('roles', trans("admin/users.roles"), array('class' => 'control-label')) !!} 73 | 82 |
83 | @endif 84 | 85 |
86 |
87 |
88 | 91 | 94 | 102 |
103 |
104 | {!! Form::close() !!} 105 |
106 | @stop 107 | @section('scripts') 108 | 113 | @stop 114 | -------------------------------------------------------------------------------- /resources/views/admin/user/delete.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.modal') 2 | @section('content') 3 | {!! Form::model($user, array('url' => URL::to('admin/user') . '/' . $user->id, 'method' => 'delete', 'class' => 'bf', 'files'=> true)) !!} 4 |
5 |
6 | {{ trans("admin/modal.delete_message") }}
7 | 8 | {{ 9 | trans("admin/modal.cancel") }} 10 | 14 |
15 |
16 | {!! Form::close() !!} 17 | @stop 18 | -------------------------------------------------------------------------------- /resources/views/admin/user/index.blade.php: -------------------------------------------------------------------------------- 1 | @extends('admin.layouts.default_name_column') 2 | 3 | {{-- Web site Title --}} 4 | @section('title') {!! trans("admin/users.users") !!} :: @parent 5 | @stop 6 | 7 | {{-- Content --}} 8 | @section('main') 9 |
10 |
11 | 17 |
18 |
19 |
20 |
21 | 24 | @if (!isset($querystring)) 25 | 27 | {{trans("admin/modal.new") }} 28 | @else 29 | 31 | {{trans("admin/modal.new") }} 32 | @endif 33 |
34 |
35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 |
{!! trans("admin/users.username") !!}{!! trans("admin/users.display_name") !!}{!! trans("admin/users.confirmed") !!}{!! trans("admin/admin.created_at") !!}{!! trans("admin/admin.roles") !!}{!! trans("admin/admin.action") !!}
48 |
49 |
50 |
51 |
52 | @stop 53 | 54 | {{-- Scripts --}} 55 | @section('scripts') 56 | @parent 57 | @stop 58 | -------------------------------------------------------------------------------- /resources/views/auth/emails/password.blade.php: -------------------------------------------------------------------------------- 1 | Click here to reset your password: {{ $link }} 2 | -------------------------------------------------------------------------------- /resources/views/auth/login.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.guest') 2 | 3 | @section('styles') 4 | @parent 5 | 6 | @endsection 7 | 8 | @section('content') 9 |
10 |
11 |
12 | 64 | 65 |
66 |
67 | 68 |
69 | @endsection 70 | 71 | @section('scripts') 72 | @parent 73 | 79 | @stop 80 | -------------------------------------------------------------------------------- /resources/views/auth/passwords/email.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | 4 | @section('content') 5 |
6 |
7 |
8 |
9 |
Reset Password
10 |
11 | @if (session('status')) 12 |
13 | {{ session('status') }} 14 |
15 | @endif 16 | 17 |
18 | {!! csrf_field() !!} 19 | 20 |
21 | 22 | 23 |
24 | 25 | 26 | @if ($errors->has('email')) 27 | 28 | {{ $errors->first('email') }} 29 | 30 | @endif 31 |
32 |
33 | 34 |
35 |
36 | 39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 | @endsection 48 | -------------------------------------------------------------------------------- /resources/views/auth/passwords/reset.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('content') 4 |
5 |
6 |
7 |
8 |
Reset Password
9 | 10 |
11 |
12 | {!! csrf_field() !!} 13 | 14 | 15 | 16 |
17 | 18 | 19 |
20 | 21 | 22 | @if ($errors->has('email')) 23 | 24 | {{ $errors->first('email') }} 25 | 26 | @endif 27 |
28 |
29 | 30 |
31 | 32 | 33 |
34 | 35 | 36 | @if ($errors->has('password')) 37 | 38 | {{ $errors->first('password') }} 39 | 40 | @endif 41 |
42 |
43 | 44 |
45 | 46 |
47 | 48 | 49 | @if ($errors->has('password_confirmation')) 50 | 51 | {{ $errors->first('password_confirmation') }} 52 | 53 | @endif 54 |
55 |
56 | 57 |
58 |
59 | 62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 | @endsection 71 | -------------------------------------------------------------------------------- /resources/views/auth/register.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.guest') 2 | 3 | @section('styles') 4 | @parent 5 | 6 | @endsection 7 | 8 | @section('content') 9 |
10 |
11 |
12 | 91 |
92 |
93 |
94 | @endsection 95 | 96 | @section('scripts') 97 | @parent 98 | 104 | @stop 105 | -------------------------------------------------------------------------------- /resources/views/emails/auth/password.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

{{ $title }}

8 | 9 |
10 | {!! $intro . link_to('password/reset/' . $token, $link) !!}.
11 | {{ $expire . config('auth.reminder.expire', 60) . $minutes}}. 12 |
13 | 14 | 15 | -------------------------------------------------------------------------------- /resources/views/emails/auth/verify.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 |

{{ $title }}

8 | 9 |
10 | {!! $intro . link_to('auth/confirm/' . $confirmation_code, $link) !!}.
11 |
12 | 13 | 14 | -------------------------------------------------------------------------------- /resources/views/errors/503.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | Be right back. 5 | 6 | 7 | 8 | 39 | 40 | 41 |
42 |
43 |
Be right back.
44 |
45 |
46 | 47 | 48 | -------------------------------------------------------------------------------- /resources/views/home.blade.php: -------------------------------------------------------------------------------- 1 | @extends('layouts.app') 2 | 3 | @section('styles') 4 | @parent 5 | 6 | @endsection 7 | 8 | @section('header') 9 |
10 | 11 |
12 | @endsection 13 | 14 | @section('content') 15 |
16 |

欢迎使用 laravel admin

17 |
18 |

laravel admin 是基于Laravel的管理后台原型项目,您正在使用的是Laravel 5.5 LTS 版本

19 |
20 |

系统功能

21 |

前台

22 | 27 |

后台

28 | 33 |

组件

34 | 42 |
43 | @endsection 44 | 45 | @section('scripts') 46 | @parent 47 | 48 | @endsection 49 | -------------------------------------------------------------------------------- /resources/views/layouts/app.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | @section('title') Laravel Admin @show 9 | @section('favicon') 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | @show 28 | @section('meta_keywords') 29 | 30 | @show 31 | @section('meta_author') 32 | 33 | @show 34 | @section('meta_description') 35 | 37 | @show 38 | @section('styles') 39 | 40 | @show 41 | 42 | 43 | 89 |
90 | @yield('content') 91 |
92 | @section('scripts') 93 | 94 | @show 95 | 96 | 97 | -------------------------------------------------------------------------------- /resources/views/layouts/guest.blade.php: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | @section('title') Laravel Admin @show 9 | @section('favicon') 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | @show 28 | @section('meta_keywords') 29 | 30 | @show 31 | @section('meta_author') 32 | 33 | @show 34 | @section('meta_description') 35 | 37 | @show 38 | @section('styles') 39 | 40 | @show 41 | 42 | 43 | 95 | 96 | @yield('content') 97 | 98 | @section('scripts') 99 | 100 | @show 101 | 102 | -------------------------------------------------------------------------------- /server.php: -------------------------------------------------------------------------------- 1 | 8 | */ 9 | 10 | $uri = urldecode( 11 | parse_url($_SERVER['REQUEST_URI'], PHP_URL_PATH) 12 | ); 13 | 14 | // This file allows us to emulate Apache's "mod_rewrite" functionality from the 15 | // built-in PHP web server. This provides a convenient way to test a Laravel 16 | // application without having installed a "real" web server software here. 17 | if ($uri !== '/' && file_exists(__DIR__.'/public'.$uri)) { 18 | return false; 19 | } 20 | 21 | require_once __DIR__.'/public/index.php'; 22 | -------------------------------------------------------------------------------- /storage/app/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !public/ 3 | !.gitignore 4 | -------------------------------------------------------------------------------- /storage/app/public/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/debugbar/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore -------------------------------------------------------------------------------- /storage/framework/.gitignore: -------------------------------------------------------------------------------- 1 | config.php 2 | routes.php 3 | schedule-* 4 | compiled.php 5 | services.json 6 | events.scanned.php 7 | routes.scanned.php 8 | down 9 | -------------------------------------------------------------------------------- /storage/framework/cache/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/sessions/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/framework/views/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /storage/logs/.gitignore: -------------------------------------------------------------------------------- 1 | * 2 | !.gitignore 3 | -------------------------------------------------------------------------------- /tests/ExampleTest.php: -------------------------------------------------------------------------------- 1 | visit('/') 17 | ->see('Laravel 5'); 18 | } 19 | } 20 | -------------------------------------------------------------------------------- /tests/TestCase.php: -------------------------------------------------------------------------------- 1 | make(Illuminate\Contracts\Console\Kernel::class)->bootstrap(); 22 | 23 | return $app; 24 | } 25 | } 26 | --------------------------------------------------------------------------------