feat(role): Add many-to-many relationship for Menus in M_Role and update RoleResponse
This commit is contained in:
parent
474c3c6205
commit
e3127c075d
|
|
@ -13,6 +13,7 @@ type M_Role struct {
|
|||
|
||||
Client M_Client `gorm:"foreignKey:ClientID;references:ID"`
|
||||
RoleMenus []M_Role_Menu `gorm:"foreignKey:RoleID;references:ID" json:"role_menus"`
|
||||
Menus []M_Menu `gorm:"many2many:m_role_menus;joinForeignKey:RoleID;JoinReferences:MenuID" json:"menus"`
|
||||
RolePermissions []M_Role_Permission `gorm:"foreignKey:RoleID;references:ID" json:"role_permissions"`
|
||||
UserRoles []M_User_Role `gorm:"foreignKey:RoleID;references:ID" json:"user_roles"`
|
||||
Users []M_User `gorm:"many2many:m_user_roles;" json:"users"`
|
||||
|
|
|
|||
|
|
@ -10,6 +10,4 @@ type M_Role_Menu struct {
|
|||
|
||||
Role M_Role `gorm:"foreignKey:RoleID;references:ID"`
|
||||
Menu M_Menu `gorm:"foreignKey:MenuID;references:ID"`
|
||||
|
||||
FullAuditTrail
|
||||
}
|
||||
|
|
|
|||
|
|
@ -96,6 +96,7 @@ type RoleResponse struct {
|
|||
// ClientID string `json:"client_id"`
|
||||
Client pkgdto.IdNameResponse `json:"client"`
|
||||
Permissions []RolePermissionsResponse `json:"permissions,omitempty"`
|
||||
Menus []pkgdto.IdNameResponse `json:"menus,omitempty"`
|
||||
}
|
||||
|
||||
type RolePermissionsResponse struct {
|
||||
|
|
|
|||
|
|
@ -190,6 +190,7 @@ func (r *roleRepository) GetRoleByID(ctx context.Context, tx *gorm.DB, id string
|
|||
Where("id = ?", id).
|
||||
Preload("Client").
|
||||
Preload("Permissions").
|
||||
Preload("Menus").
|
||||
First(&role).Error; err != nil {
|
||||
return entities.M_Role{}, err
|
||||
}
|
||||
|
|
|
|||
|
|
@ -479,6 +479,14 @@ func ToRoleResponse(role entities.M_Role) dto.RoleResponse {
|
|||
}
|
||||
}
|
||||
|
||||
var menus []pkgdto.IdNameResponse
|
||||
for _, m := range role.Menus {
|
||||
menus = append(menus, pkgdto.IdNameResponse{
|
||||
ID: m.ID.String(),
|
||||
Name: m.Name,
|
||||
})
|
||||
}
|
||||
|
||||
return dto.RoleResponse{
|
||||
ID: role.ID.String(),
|
||||
Name: role.Name,
|
||||
|
|
@ -488,6 +496,7 @@ func ToRoleResponse(role entities.M_Role) dto.RoleResponse {
|
|||
HomeUrl: role.HomeUrl,
|
||||
Client: client,
|
||||
Permissions: permissions,
|
||||
Menus: menus,
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue