|
@@ -1132,28 +1132,35 @@ String function cmd_model_move(source : String, target : String):
|
|
|
String source_id
|
|
|
source_id = get_entry_id(source)
|
|
|
if (source_id != ""):
|
|
|
- if (get_entry_id(target) == ""):
|
|
|
- // Create folders on path to the target
|
|
|
- create_folders(current_user_id, get_foldername(target))
|
|
|
-
|
|
|
- // Change location, first the name
|
|
|
- instantiate_attribute(core, source_id, "name", target)
|
|
|
-
|
|
|
- // Now the folder links
|
|
|
- Element links
|
|
|
- links = allIncomingAssociationInstances(core, source_id, "contains")
|
|
|
- while (set_len(links) > 0):
|
|
|
- model_delete_element(core, set_pop(links))
|
|
|
- instantiate_link(core, "contains", "", get_entry_id(get_foldername(target)), source_id)
|
|
|
-
|
|
|
- // Flush caches
|
|
|
- dict_add(caches["models"], target, caches["models"][source])
|
|
|
- dict_delete(caches["models"], source)
|
|
|
-
|
|
|
- // Done
|
|
|
- return "Success"!
|
|
|
+ if (allow_write(current_user_id, source_id)):
|
|
|
+ if (get_entry_id(target) == ""):
|
|
|
+ // Create folders on path to the target
|
|
|
+ if (element_neq(create_folders(current_user_id, get_foldername(target)), read_root())):
|
|
|
+ if (allow_write(current_user_id, get_entry_id(get_foldername(target)))):
|
|
|
+ // Change location, first the name
|
|
|
+ instantiate_attribute(core, source_id, "name", target)
|
|
|
+
|
|
|
+ // Now the folder links
|
|
|
+ Element links
|
|
|
+ links = allIncomingAssociationInstances(core, source_id, "contains")
|
|
|
+ while (set_len(links) > 0):
|
|
|
+ model_delete_element(core, set_pop(links))
|
|
|
+ instantiate_link(core, "contains", "", get_entry_id(get_foldername(target)), source_id)
|
|
|
+
|
|
|
+ // Flush caches
|
|
|
+ dict_add(caches["models"], target, caches["models"][source])
|
|
|
+ dict_delete(caches["models"], source)
|
|
|
+
|
|
|
+ // Done
|
|
|
+ return "Success"!
|
|
|
+ else:
|
|
|
+ return "Write permission denied to: " + target!
|
|
|
+ else:
|
|
|
+ return "Write permission denied to: " + target!
|
|
|
+ else:
|
|
|
+ return "Model exists: " + target!
|
|
|
else:
|
|
|
- return "Model exists: " + target!
|
|
|
+ return "Write permission denied to: " + source!
|
|
|
else:
|
|
|
return "Location not found: " + source!
|
|
|
|