update permission active/inactive
This commit is contained in:
@@ -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
|
||||
|
||||
Reference in New Issue
Block a user