1+ import '../initial' ;
2+ import sequelize from '../../../app/libs/db' ;
3+ import { generate } from 'lin-mizar' ;
4+ import { UserModel , UserIdentityModel } from '../../../app/models/user' ;
5+ import { GroupModel } from '../../../app/models/group' ;
6+ import { PermissionModel } from '../../../app/models/permission' ;
7+ import { GroupPermissionModel } from '../../../app/models/group-permission' ;
8+
9+ const type = 'USERNAME_PASSWORD' ;
10+
11+ /**
12+ * 如果创建失败,请确保你的数据库中没有同名的分组和同名的用户
13+ */
14+ const run = async ( ) => {
15+ // 创建权限组
16+ const group = new GroupModel ( ) ;
17+ group . name = '普通分组' ;
18+ group . info = '就是一个分组而已' ;
19+ await group . save ( ) ;
20+
21+ // 创建用户
22+ const user = new UserModel ( ) ;
23+ user . username = 'pedro' ;
24+ await user . save ( ) ;
25+
26+ // 创建用户密码
27+ await UserIdentityModel . create ( {
28+ user_id : user . id ,
29+ identity_type : type ,
30+ identifier : user . username ,
31+ credential : generate ( '123456' )
32+ } ) ;
33+
34+ // 在运行 app 的时候会获取路由中定义好的权限并插入,这里需要找到 id 来关联权限组
35+ const permission = await PermissionModel . findOne ( {
36+ where : {
37+ name : '删除图书' ,
38+ module : '图书'
39+ }
40+ } ) ;
41+
42+ // 关联 permission 权限和 group 权限组
43+ await GroupPermissionModel . create ( {
44+ group_id : group . id ,
45+ permission_id : permission . id
46+ } ) ;
47+
48+ setTimeout ( ( ) => {
49+ sequelize . close ( ) ;
50+ } , 500 ) ;
51+ } ;
52+
53+ run ( ) ;
54+
55+ // /**
56+ // * 权限分配,关联用户和权限组
57+ // */
58+ // import '../initial';
59+ // import sequelize from '../../../app/libs/db';
60+ // import { UserModel } from '../../../app/models/user';
61+ // import { GroupModel } from '../../../app/models/group';
62+ // import { UserGroupModel } from '../../../app/models/user-group';
63+
64+ // const run = async () => {
65+ // // 查找需要关联的权限组 id
66+ // const group = await GroupModel.findOne({
67+ // where: {
68+ // name: '普通分组'
69+ // }
70+ // });
71+
72+ // // 查找 pedro 用户的 id 用去关联权限组
73+ // const user = await UserModel.findOne({
74+ // where: {
75+ // username: 'pedro'
76+ // }
77+ // });
78+
79+ // // 关联用户和权限组
80+ // await UserGroupModel.create({
81+ // user_id: user.id,
82+ // group_id: group.id
83+ // });
84+
85+ // setTimeout(() => {
86+ // sequelize.close();
87+ // }, 500);
88+ // };
89+
90+ // run();
0 commit comments