select active permission when fetch eligible menu

This commit is contained in:
renaldybrada
2026-02-26 09:59:35 +07:00
parent e281f4ef65
commit cbd90a7850
+20 -4
View File
@@ -161,7 +161,7 @@ func (r accessRepo) GetAvailablePageByKeycloakId(c context.Context, keycloakId s
user := &fetchUsers[0] user := &fetchUsers[0]
var permissionIds []string var permissionIds []string
fetchUserPermission, err := r.getUserPermissionByUserId(c, dbconn, user.ID) fetchUserPermission, err := r.getUserActivePermissionByUserId(c, dbconn, user.ID)
if err != nil { if err != nil {
return nil, err return nil, err
} }
@@ -670,20 +670,36 @@ func (r accessRepo) getOrCreateUserPermission(c context.Context, db *sqlx.DB, tx
return nil return nil
} }
func (r accessRepo) getUserPermissionByUserId(c context.Context, db *sqlx.DB, userId string) ([]RoleUserPermissionModel, error) { func (r accessRepo) getUserActivePermissionByUserId(c context.Context, db *sqlx.DB, userId string) ([]RoleUserPermissionModel, error) {
var result []RoleUserPermissionModel var result []RoleUserPermissionModel
query := queryUtils.DynamicQuery{ query := queryUtils.DynamicQuery{
From: TBL_USER_PERMISSION, From: TBL_USER_PERMISSION,
Aliases: "up",
Fields: []queryUtils.SelectField{ Fields: []queryUtils.SelectField{
{Expression: "id"}, {Expression: "up.id"},
{Expression: "id_user"}, {Expression: "id_user"},
{Expression: "id_permission"}, {Expression: "id_permission"},
}, },
Joins: []queryUtils.Join{
{
Type: "LEFT",
Table: TBL_PERMISSION,
Alias: "p",
OnConditions: queryUtils.FilterGroup{
Filters: []queryUtils.DynamicFilter{
{
Column: "p.id", Operator: queryUtils.OpEqual, Value: "up.id_permission",
},
},
},
},
},
Filters: []queryUtils.FilterGroup{ Filters: []queryUtils.FilterGroup{
{ {
Filters: []queryUtils.DynamicFilter{ Filters: []queryUtils.DynamicFilter{
{Column: "id_user", Operator: queryUtils.OpEqual, Value: userId}, {Column: "id_user", Operator: queryUtils.OpEqual, Value: userId},
{Column: "p.is_active", Operator: queryUtils.OpEqual, Value: true},
}, LogicOp: "AND", }, LogicOp: "AND",
}, },
}, },