update permission active/inactive
This commit is contained in:
@@ -401,20 +401,30 @@ func (r accessRepo) UpdateRolePermission(c context.Context, req UpdateRolePageRe
|
|||||||
return err
|
return err
|
||||||
}
|
}
|
||||||
|
|
||||||
// select active page
|
// updating permission
|
||||||
var pageIds []string
|
err = r.updateActivePermissionById(c, tx, req.ID, req.Status)
|
||||||
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 {
|
if err != nil {
|
||||||
tx.Rollback()
|
tx.Rollback()
|
||||||
return err
|
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()
|
tx.Commit()
|
||||||
|
|
||||||
return nil
|
return nil
|
||||||
@@ -528,6 +538,34 @@ func (r accessRepo) insertPermissionByRoleName(c context.Context, tx *sql.Tx, ne
|
|||||||
return idRoles, nil
|
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
|
// END table permission functions
|
||||||
|
|
||||||
// Table user permission functions
|
// Table user permission functions
|
||||||
|
|||||||
Reference in New Issue
Block a user