Files
2019-08-08 17:13:34 +08:00

56 lines
1.3 KiB
Go

package models
type RolePrivilege struct {
RolePrivilegeID uint `orm:"pk"` // role_privilege_id
RoleID uint // role_id
PrivilegeID uint // privilege_id
IsDelete int8 // is_delete
CreateTime uint // create_time
UpdateTime uint // update_time
}
//根据 role_id 获取权限
func (rolePrivilege *RolePrivilege) GetRolePrivilegesByRoleId(roleId int) (rolePrivileges []map[string]string, err error) {
db := G.DB()
res, err := db.Query(db.AR().From("role_privilege").Where(map[string]interface{}{
"role_id": roleId,
}))
if(err != nil) {
return
}
rolePrivileges = res.Rows()
return
}
//角色授权
func (rolePrivilege *RolePrivilege) GrantRolePrivileges(roleId int, privilegeIds []string) (res bool, err error) {
res = false
db := G.DB()
//先删除
_, err = db.Exec(db.AR().Delete("role_privilege", map[string]interface{}{
"role_id": roleId,
}))
if(err != nil) {
return
}
rolePrivileges := []map[string]interface{}{}
for _, privilegeId := range privilegeIds {
rolePrivilege := map[string]interface{}{
"role_id": roleId,
"privilege_id": privilegeId,
}
rolePrivileges = append(rolePrivileges, rolePrivilege)
}
//批量插入
_, err = db.Exec(db.AR().InsertBatch("role_privilege", rolePrivileges))
if err != nil {
return
}
res = true
return
}