select active permission when fetch eligible menu
This commit is contained in:
@@ -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",
|
||||||
},
|
},
|
||||||
},
|
},
|
||||||
|
|||||||
Reference in New Issue
Block a user