diff --git a/database/entities/m_role_entity.go b/database/entities/m_role_entity.go index 77b15ca..58180ac 100644 --- a/database/entities/m_role_entity.go +++ b/database/entities/m_role_entity.go @@ -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"` diff --git a/database/entities/m_role_menu_entity.go b/database/entities/m_role_menu_entity.go index a936980..01498aa 100644 --- a/database/entities/m_role_menu_entity.go +++ b/database/entities/m_role_menu_entity.go @@ -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 } diff --git a/modules/role/dto/role_dto.go b/modules/role/dto/role_dto.go index 517246b..e7d0d97 100644 --- a/modules/role/dto/role_dto.go +++ b/modules/role/dto/role_dto.go @@ -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 { diff --git a/modules/role/repository/role_repository.go b/modules/role/repository/role_repository.go index 1917934..31cedfa 100644 --- a/modules/role/repository/role_repository.go +++ b/modules/role/repository/role_repository.go @@ -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 } diff --git a/modules/role/service/role_service.go b/modules/role/service/role_service.go index 1b2b1ba..051d229 100644 --- a/modules/role/service/role_service.go +++ b/modules/role/service/role_service.go @@ -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, } }