models
This commit is contained in:
@@ -56,7 +56,7 @@ func (r *AbstractResource) StoreDraftDefault() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
func (r *AbstractResource) CanUpdate(set utils.DBObject) (bool, utils.DBObject) {
|
func (r *AbstractResource) CanUpdate(set utils.DBObject) (bool, utils.DBObject) {
|
||||||
return r.IsDraft, set
|
return r.IsDraft != set.IsDrafted() && !set.IsDrafted(), set
|
||||||
}
|
}
|
||||||
|
|
||||||
func (r *AbstractResource) CanDelete() bool {
|
func (r *AbstractResource) CanDelete() bool {
|
||||||
|
|||||||
@@ -1,6 +1,7 @@
|
|||||||
package utils
|
package utils
|
||||||
|
|
||||||
import (
|
import (
|
||||||
|
"encoding/json"
|
||||||
"errors"
|
"errors"
|
||||||
"os"
|
"os"
|
||||||
|
|
||||||
@@ -91,7 +92,10 @@ func ModelGenericUpdateOne(change map[string]interface{}, id string, a Accessor)
|
|||||||
if err != nil {
|
if err != nil {
|
||||||
return nil, c, err
|
return nil, c, err
|
||||||
}
|
}
|
||||||
ok, r := r.CanUpdate(r)
|
obj := &AbstractObject{}
|
||||||
|
b, _ := json.Marshal(r)
|
||||||
|
json.Unmarshal(b, obj)
|
||||||
|
ok, r := r.CanUpdate(obj)
|
||||||
if !ok {
|
if !ok {
|
||||||
return nil, 403, errors.New("you are not allowed to update :" + a.GetType().String())
|
return nil, 403, errors.New("you are not allowed to update :" + a.GetType().String())
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user