update permission active/inactive

This commit is contained in:
renaldybrada
2026-02-25 15:04:33 +07:00
parent 42267aa1af
commit be64a85350
+47 -9
View File
@@ -401,20 +401,30 @@ func (r accessRepo) UpdateRolePermission(c context.Context, req UpdateRolePageRe
return err
}
// select active page
var pageIds []string
for _, page := range req.AccessPage {
if page.IsActive {
pageIds = append(pageIds, page.ID)
}
}
// inserting new permission
err = r.insertPagePermission(c, tx, req.ID, pageIds)
// updating permission
err = r.updateActivePermissionById(c, tx, req.ID, req.Status)
if err != nil {
tx.Rollback()
return err
}
if req.Status { // insert when is_active = true
// select active page
var pageIds []string
for _, page := range req.AccessPage {
if page.IsActive {
pageIds = append(pageIds, page.ID)
}
}
// inserting new permission
err = r.insertPagePermission(c, tx, req.ID, pageIds)
if err != nil {
tx.Rollback()
return err
}
}
tx.Commit()
return nil
@@ -528,6 +538,34 @@ func (r accessRepo) insertPermissionByRoleName(c context.Context, tx *sql.Tx, ne
return idRoles, nil
}
func (r accessRepo) updateActivePermissionById(c context.Context, tx *sql.Tx, permissionId string, isActive bool) error {
updateData := queryUtils.UpdateData{
Columns: []string{"is_active"},
Values: []interface{}{isActive},
}
filters := []queryUtils.FilterGroup{
{
Filters: []queryUtils.DynamicFilter{
{Column: "id", Operator: queryUtils.OpEqual, Value: permissionId},
},
},
}
sql, args, err := r.queryBuilder.BuildUpdateQuery(TBL_PERMISSION, updateData, filters)
if err != nil {
log.Printf("failed create update permission query : %v", err)
return err
}
_, err = tx.ExecContext(c, sql, args)
if err != nil {
log.Printf("failed executing update permission : %v", err)
return err
}
return nil
}
// END table permission functions
// Table user permission functions