mirror of
https://gitee.com/hzchunfen/erp.git
synced 2025-11-30 22:20:45 +00:00
feat: #20220727 暂存
This commit is contained in:
parent
1af1e9cc1b
commit
554105e766
@ -4,6 +4,8 @@ namespace App\Http\Controllers\Auth;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Http\Request;
|
||||
use Illuminate\Support\Facades\Auth;
|
||||
use Illuminate\Foundation\Auth\AuthenticatesUsers;
|
||||
|
||||
class LoginController extends Controller
|
||||
@ -37,4 +39,16 @@ class LoginController extends Controller
|
||||
{
|
||||
$this->middleware('guest')->except('logout');
|
||||
}
|
||||
|
||||
public function login(Request $request)
|
||||
{
|
||||
$credentials = $request->only('name', 'password');
|
||||
|
||||
if (Auth::attempt($credentials)) {
|
||||
// 通过认证..
|
||||
return response()->json(['token' => '']);
|
||||
}else {
|
||||
return response()->json(['error' => 'auth login fail']);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@ -8,6 +8,8 @@ use App\Providers\RouteServiceProvider;
|
||||
use Illuminate\Foundation\Auth\RegistersUsers;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Illuminate\Support\Facades\Validator;
|
||||
use Faker\Generator as Faker;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class RegisterController extends Controller
|
||||
{
|
||||
@ -50,9 +52,10 @@ class RegisterController extends Controller
|
||||
protected function validator(array $data)
|
||||
{
|
||||
return Validator::make($data, [
|
||||
'name' => ['required', 'string', 'max:255'],
|
||||
'email' => ['required', 'string', 'email', 'max:255', 'unique:users'],
|
||||
'name' => ['required', 'string', 'unique:users', 'max:255'],
|
||||
'email' => ['string', 'email', 'max:255', 'unique:users'],
|
||||
'password' => ['required', 'string', 'min:8', 'confirmed'],
|
||||
'role_id' => ['required', 'numeric', 'exists:roles,id'],
|
||||
]);
|
||||
}
|
||||
|
||||
@ -60,14 +63,17 @@ class RegisterController extends Controller
|
||||
* Create a new user instance after a valid registration.
|
||||
*
|
||||
* @param array $data
|
||||
* @return \App\Models\User
|
||||
* @return User
|
||||
*/
|
||||
protected function create(array $data)
|
||||
{
|
||||
$faker = new Faker();
|
||||
|
||||
return User::create([
|
||||
'name' => $data['name'],
|
||||
'email' => $data['email'],
|
||||
'email' => $data['email'] ?? $faker->unique()->safeEmail,
|
||||
'password' => Hash::make($data['password']),
|
||||
'api_token' => Str::random(60),
|
||||
]);
|
||||
}
|
||||
}
|
||||
|
||||
44
app/Http/Controllers/Goods/GoodsBrandsController.php
Normal file
44
app/Http/Controllers/Goods/GoodsBrandsController.php
Normal file
@ -0,0 +1,44 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Goods;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Http\Resources\GoodsBrandResource;
|
||||
use App\Models\GoodsBrand;
|
||||
|
||||
class GoodsBrandsController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
$goodsBrands = GoodsBrand::query()->paginate();
|
||||
|
||||
return GoodsBrandResource::collection($goodsBrands);
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required|string|unique:users|max:255',
|
||||
]);
|
||||
|
||||
GoodsBrand::created();
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
$columns = ['*'];
|
||||
$goodsBrand = GoodsBrand::query()->find($id, $columns);
|
||||
|
||||
return GoodsBrandResource::collection($goodsBrand);
|
||||
}
|
||||
|
||||
public function update()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function destory()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
10
app/Http/Controllers/Goods/GoodsTypesController.php
Normal file
10
app/Http/Controllers/Goods/GoodsTypesController.php
Normal file
@ -0,0 +1,10 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\Goods;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
|
||||
class GoodsTypeController extends Controller
|
||||
{
|
||||
|
||||
}
|
||||
43
app/Http/Controllers/User/UsersController.php
Normal file
43
app/Http/Controllers/User/UsersController.php
Normal file
@ -0,0 +1,43 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Controllers\User;
|
||||
|
||||
use App\Http\Controllers\Controller;
|
||||
use App\Models\User;
|
||||
use Illuminate\Http\Request;
|
||||
use Faker\Generator as Faker;
|
||||
use Illuminate\Support\Str;
|
||||
|
||||
class UsersController extends Controller
|
||||
{
|
||||
public function index()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function store(Request $request)
|
||||
{
|
||||
$request->validate([
|
||||
'name' => 'required|string|unique:users|max:255',
|
||||
'password' => 'required|string|min:8|confirmed',
|
||||
]);
|
||||
$user = new User();
|
||||
$user->name = $request->name;
|
||||
$user->password = $request->password;
|
||||
}
|
||||
|
||||
public function show($id)
|
||||
{
|
||||
return User::query()->find($id);
|
||||
}
|
||||
|
||||
public function update()
|
||||
{
|
||||
|
||||
}
|
||||
|
||||
public function destory()
|
||||
{
|
||||
|
||||
}
|
||||
}
|
||||
19
app/Http/Resources/GoodsBrandResource.php
Normal file
19
app/Http/Resources/GoodsBrandResource.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class GoodsBrandResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return parent::toArray($request);
|
||||
}
|
||||
}
|
||||
19
app/Http/Resources/GoodsTypeResource.php
Normal file
19
app/Http/Resources/GoodsTypeResource.php
Normal file
@ -0,0 +1,19 @@
|
||||
<?php
|
||||
|
||||
namespace App\Http\Resources;
|
||||
|
||||
use Illuminate\Http\Resources\Json\JsonResource;
|
||||
|
||||
class GoodsTypeResource extends JsonResource
|
||||
{
|
||||
/**
|
||||
* Transform the resource into an array.
|
||||
*
|
||||
* @param \Illuminate\Http\Request $request
|
||||
* @return array
|
||||
*/
|
||||
public function toArray($request)
|
||||
{
|
||||
return parent::toArray($request);
|
||||
}
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
class ModelHasPermissions extends Model
|
||||
{
|
||||
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
class ModelHasRoles extends Model
|
||||
{
|
||||
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
class Permission extends Model
|
||||
{
|
||||
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
class Role extends Model
|
||||
{
|
||||
//
|
||||
}
|
||||
@ -1,8 +0,0 @@
|
||||
<?php
|
||||
|
||||
namespace App\Models;
|
||||
|
||||
class RoleHasPermission extends Model
|
||||
{
|
||||
|
||||
}
|
||||
@ -4,10 +4,13 @@ namespace App\Models;
|
||||
|
||||
use Illuminate\Foundation\Auth\User as Authenticatable;
|
||||
use Illuminate\Notifications\Notifiable;
|
||||
use Illuminate\Support\Facades\Hash;
|
||||
use Spatie\Permission\Traits\HasRoles;
|
||||
|
||||
class User extends Authenticatable
|
||||
{
|
||||
use Notifiable;
|
||||
use HasRoles;
|
||||
|
||||
/**
|
||||
* The attributes that are mass assignable.
|
||||
@ -24,7 +27,7 @@ class User extends Authenticatable
|
||||
* @var array
|
||||
*/
|
||||
protected $hidden = [
|
||||
'password', 'remember_token',
|
||||
'password', 'remember_token', 'api_token',
|
||||
];
|
||||
|
||||
/**
|
||||
@ -35,4 +38,9 @@ class User extends Authenticatable
|
||||
protected $casts = [
|
||||
'email_verified_at' => 'datetime',
|
||||
];
|
||||
|
||||
public function setPasswordAttribute($value)
|
||||
{
|
||||
$this->attributes['password'] = Hash::make($value);
|
||||
}
|
||||
}
|
||||
|
||||
@ -19,10 +19,11 @@ use Illuminate\Support\Str;
|
||||
|
||||
$factory->define(User::class, function (Faker $faker) {
|
||||
return [
|
||||
'name' => $faker->name,
|
||||
'name' => 'erpAdmin',
|
||||
'email' => $faker->unique()->safeEmail,
|
||||
'email_verified_at' => now(),
|
||||
'password' => '$2y$10$92IXUNpkjO0rOQ5byMi.Ye4oKoEa3Ro9llC/.og/at2.uheWG/igi', // password
|
||||
'api_token' => Str::random(60),
|
||||
'remember_token' => Str::random(10),
|
||||
];
|
||||
});
|
||||
|
||||
@ -19,6 +19,7 @@ class CreateUsersTable extends Migration
|
||||
$table->string('email')->unique();
|
||||
$table->timestamp('email_verified_at')->nullable();
|
||||
$table->string('password');
|
||||
$table->string('api_token', 80)->unique()->nullable()->default(null);
|
||||
$table->rememberToken();
|
||||
$table->timestamps();
|
||||
});
|
||||
|
||||
@ -12,5 +12,6 @@ class DatabaseSeeder extends Seeder
|
||||
public function run()
|
||||
{
|
||||
// $this->call(UsersTableSeeder::class);
|
||||
factory(\App\Models\User::class)->create();
|
||||
}
|
||||
}
|
||||
|
||||
71
resources/views/home.blade.php
Normal file
71
resources/views/home.blade.php
Normal file
@ -0,0 +1,71 @@
|
||||
<!DOCTYPE html>
|
||||
<html lang="{{ str_replace('_', '-', app()->getLocale()) }}">
|
||||
<head>
|
||||
<meta charset="utf-8">
|
||||
<meta name="viewport" content="width=device-width, initial-scale=1">
|
||||
|
||||
<title>Laravel</title>
|
||||
|
||||
<!-- Fonts -->
|
||||
<link href="https://fonts.googleapis.com/css2?family=Nunito:wght@200;600&display=swap" rel="stylesheet">
|
||||
|
||||
<!-- Styles -->
|
||||
<style>
|
||||
html, body {
|
||||
background-color: #fff;
|
||||
color: #636b6f;
|
||||
font-family: 'Nunito', sans-serif;
|
||||
font-weight: 200;
|
||||
height: 100vh;
|
||||
margin: 0;
|
||||
}
|
||||
|
||||
.full-height {
|
||||
height: 100vh;
|
||||
}
|
||||
|
||||
.flex-center {
|
||||
align-items: center;
|
||||
display: flex;
|
||||
justify-content: center;
|
||||
}
|
||||
|
||||
.position-ref {
|
||||
position: relative;
|
||||
}
|
||||
|
||||
.top-right {
|
||||
position: absolute;
|
||||
right: 10px;
|
||||
top: 18px;
|
||||
}
|
||||
|
||||
.content {
|
||||
text-align: center;
|
||||
}
|
||||
|
||||
.title {
|
||||
font-size: 84px;
|
||||
}
|
||||
|
||||
.links > a {
|
||||
color: #636b6f;
|
||||
padding: 0 25px;
|
||||
font-size: 13px;
|
||||
font-weight: 600;
|
||||
letter-spacing: .1rem;
|
||||
text-decoration: none;
|
||||
text-transform: uppercase;
|
||||
}
|
||||
|
||||
.m-b-md {
|
||||
margin-bottom: 30px;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<div class="flex-center position-ref full-height">
|
||||
HOME
|
||||
</div>
|
||||
</body>
|
||||
</html>
|
||||
@ -1,6 +1,6 @@
|
||||
<?php
|
||||
|
||||
use Illuminate\Http\Request;
|
||||
use App\Http\Controllers\Auth\LoginController;
|
||||
|
||||
/*
|
||||
|--------------------------------------------------------------------------
|
||||
@ -12,7 +12,23 @@ use Illuminate\Http\Request;
|
||||
| is assigned the "api" middleware group. Enjoy building your API!
|
||||
|
|
||||
*/
|
||||
|
||||
Route::middleware('auth:api')->get('/user', function (Request $request) {
|
||||
return $request->user();
|
||||
Route::middleware('auth:api')->group(function () {
|
||||
// 用户
|
||||
Route::resource('users', 'User\UsersController', ['only' => ['index', 'store', 'show', 'update', 'destory']]);
|
||||
// 商品种类
|
||||
Route::resource('goods_types', 'Goods\GoodsTypesController', ['only' => ['index', 'store', 'show', 'update', 'destory']]);
|
||||
// 商品品牌
|
||||
Route::resource('goods_brands', 'Goods\GoodsBrandsController', ['only' => ['index', 'store', 'show', 'update', 'destory']]);
|
||||
// 日志
|
||||
Route::resource('logs', 'Log\LogsController', ['only' => ['index', 'show']]);
|
||||
// 商品
|
||||
Route::resource('goods', 'Log\LogsController', ['only' => ['index', 'show']]);
|
||||
// 店铺
|
||||
Route::resource('shops', 'Log\LogsController', ['only' => ['index', 'show']]);
|
||||
// 角色
|
||||
Route::resource('roles', 'Role\RolesController', ['only' => ['index', 'show']]);
|
||||
// 权限
|
||||
Route::resource('permissions', 'Permissions\LogsController', ['only' => ['index', 'show']]);
|
||||
});
|
||||
|
||||
Route::post('/auth/login', [LoginController::class, 'login'])->name('auth.login');
|
||||
|
||||
@ -14,3 +14,15 @@
|
||||
Route::get('/', function () {
|
||||
return view('welcome');
|
||||
});
|
||||
|
||||
Route::get('/home', function () {
|
||||
return view('home');
|
||||
})->name('home');
|
||||
|
||||
Route::get('/login', function () {
|
||||
return view('welcome');
|
||||
})->name('login');
|
||||
|
||||
Route::get('/register', function () {
|
||||
return view('welcome');
|
||||
})->name('register');
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user