权限分配

This commit is contained in:
liu
2026-06-17 12:49:44 +08:00
parent f63a7db58f
commit a5eb91fadd
2 changed files with 34 additions and 89 deletions
+26 -24
View File
@@ -775,33 +775,35 @@ class SysRuleSeeder extends Seeder
->select(DB::raw('1 as role_id'), 'id') ->select(DB::raw('1 as role_id'), 'id')
); );
// 创建"商户"角色分配商户门户权限 // 商户角色分配 merchant.portal.* 及 dashboard 权限
$merchantRoleExists = DB::table('sys_role')->where('name', '商户')->exists(); $portalRuleIds = DB::table('sys_rule')
if (! $merchantRoleExists) { ->where('status', 1)
$merchantRoleId = DB::table('sys_role')->insertGetId([ ->where(function ($query) {
'name' => '商户', $query->where('key', 'LIKE', 'merchant.portal%')
'status' => 1, ->orWhere('key', 'dashboard')
'created_at' => now(), ->orWhere('key', 'dashboard.analysis');
'updated_at' => now(), })
]); ->pluck('id');
// 为商户角色分配 merchant.portal.* 及 dashboard 权限 DB::table('sys_role_rule')->insert(
$portalRuleIds = DB::table('sys_rule') $portalRuleIds->map(fn ($ruleId) => [
->where('status', 1) 'role_id' => 3,
->where(function ($query) {
$query->where('key', 'LIKE', 'merchant.portal.%')
->orWhere('key', 'dashboard')
->orWhere('key', 'dashboard.analysis');
})
->pluck('id');
$insertData = $portalRuleIds->map(fn ($ruleId) => [
'role_id' => $merchantRoleId,
'rule_id' => $ruleId, 'rule_id' => $ruleId,
])->toArray(); ])->toArray()
);
DB::table('sys_role_rule')->insert($insertData); // 为管理员角色分配所有启用权限,排除 merchant.portal.*(商户门户权限)
} $adminRuleIds = DB::table('sys_rule')
->where('status', 1)
->where('key', 'NOT LIKE', 'merchant.portal%')
->pluck('id');
DB::table('sys_role_rule')->insert(
$adminRuleIds->map(fn ($ruleId) => [
'role_id' => 2,
'rule_id' => $ruleId,
])->toArray()
);
} }
/** /**
+8 -65
View File
@@ -18,8 +18,8 @@ class SysUserSeeder extends Seeder
DB::table('sys_user')->insert([ DB::table('sys_user')->insert([
[ [
'id' => 1, 'id' => 1,
'username' => 'admin', 'username' => 'super_admin',
'nickname' => '管理员', 'nickname' => '超级管理员',
'email' => Str::random(10).'@example.com', 'email' => Str::random(10).'@example.com',
'password' => Hash::make('123456'), 'password' => Hash::make('123456'),
'dept_id' => 1, 'dept_id' => 1,
@@ -31,11 +31,11 @@ class SysUserSeeder extends Seeder
], ],
[ [
'id' => 2, 'id' => 2,
'username' => 'user', 'username' => 'admin',
'nickname' => '财务', 'nickname' => '管理员',
'email' => Str::random(10).'@example.com', 'email' => Str::random(10).'@example.com',
'password' => Hash::make('123456'), 'password' => Hash::make('123456'),
'dept_id' => 2, 'dept_id' => 1,
'avatar_id' => 1, 'avatar_id' => 1,
'email_verified_at' => now(), 'email_verified_at' => now(),
'remember_token' => Str::random(10), 'remember_token' => Str::random(10),
@@ -45,9 +45,8 @@ class SysUserSeeder extends Seeder
]); ]);
DB::table('sys_role')->insert([ DB::table('sys_role')->insert([
['id' => 1, 'name' => '超级管理员', 'created_at' => $date, 'updated_at' => $date], ['id' => 1, 'name' => '超级管理员', 'created_at' => $date, 'updated_at' => $date],
['id' => 2, 'name' => '财务', 'created_at' => $date, 'updated_at' => $date], ['id' => 2, 'name' => '管理员', 'created_at' => $date, 'updated_at' => $date],
['id' => 3, 'name' => '电商总监', 'created_at' => $date, 'updated_at' => $date], ['id' => 3, 'name' => '商户', 'created_at' => $date, 'updated_at' => $date],
['id' => 4, 'name' => '市场运营', 'created_at' => $date, 'updated_at' => $date],
]); ]);
DB::table('sys_dept')->insert([ DB::table('sys_dept')->insert([
[ [
@@ -63,63 +62,7 @@ class SysUserSeeder extends Seeder
'remark' => '总公司', 'remark' => '总公司',
'created_at' => $date, 'created_at' => $date,
'updated_at' => $date 'updated_at' => $date
], ]
[
'id' => 2,
'name' => '新时代软件技术(洛阳)有限公司',
'code' => 'A01-B01',
'type' => 0,
'parent_id' => 1,
'sort' => 0,
'phone' => '19999999999',
'email' => Str::random(10).'@example.com',
'address' => '河南省洛阳市龙门区某某街道99号',
'remark' => '洛阳市分公司',
'created_at' => $date,
'updated_at' => $date
],
[
'id' => 3,
'name' => '新时代智能科技(郑州)有限公司',
'code' => 'A01-B02',
'type' => 0,
'parent_id' => 1,
'sort' => 0,
'phone' => '19999999999',
'email' => Str::random(10).'@example.com',
'address' => '河南省郑州市二七区某某街道69号',
'remark' => '郑州市分公司',
'created_at' => $date,
'updated_at' => $date
],
[
'id' => 4,
'name' => '新征程科技(南阳)有限公司',
'code' => 'A01-B03',
'type' => 0,
'parent_id' => 1,
'sort' => 2,
'phone' => '19999999999',
'email' => Str::random(10).'@example.com',
'address' => '河南省南阳市卧龙区某某街道77号',
'remark' => '南阳市分公司',
'created_at' => $date,
'updated_at' => $date
],
[
'id' => 5,
'name' => '新时代投资发展有限公司',
'code' => 'B01',
'type' => 0,
'parent_id' => 0,
'sort' => 2,
'phone' => '19999999999',
'email' => Str::random(10).'@example.com',
'address' => '北京市海淀区人民路666号',
'remark' => '我们坚信,卓越的投资在于发现价值,而卓越的投资管理在于创造价值。我们立志成为科技创业者身边最懂业务、最能赋能、最长情的资本伙伴,共同将创新的火种,转化为引领行业的参天大树。',
'created_at' => $date,
'updated_at' => $date
],
]); ]);
DB::table('sys_user_role')->insert([ DB::table('sys_user_role')->insert([