diff --git a/modules/node/handler/node_handler.e b/modules/node/handler/node_handler.e index bab7995..516aef2 100644 --- a/modules/node/handler/node_handler.e +++ b/modules/node/handler/node_handler.e @@ -242,15 +242,19 @@ feature {NONE} -- Trash:Restore do_delete (req: WSF_REQUEST; res: WSF_RESPONSE) -- Delete a node from the database. + local + l_source: STRING do if attached current_user (req) as l_user then if attached {WSF_STRING} req.path_parameter ("id") as l_id then if l_id.is_integer and then - attached node_api.node (l_id.integer_value) as l_node + attached {CMS_NODE} node_api.node (l_id.integer_value) as l_node then if node_api.has_permission_for_action_on_node ("delete", l_node, current_user (req)) then node_api.delete_node (l_node) + l_source := node_api.node_path (l_node) + api.unset_path_alias (l_source, api.location_alias (l_source)) res.send (create {CMS_REDIRECTION_RESPONSE_MESSAGE}.make (req.absolute_script_url (""))) else send_access_denied (req, res) diff --git a/modules/node/persistence/cms_node_storage_sql.e b/modules/node/persistence/cms_node_storage_sql.e index 56222d4..897d5e5 100644 --- a/modules/node/persistence/cms_node_storage_sql.e +++ b/modules/node/persistence/cms_node_storage_sql.e @@ -398,13 +398,6 @@ feature -- Change: Node -- we remove node_revisions and pages. -- Check: maybe we need a transaction. sql_modify (sql_delete_node_revisions, l_parameters) - sql_finalize - - -- we remove node_aliases - -- Check: maybe we need a transaction. - create l_sql_delete_node_aliases.make_from_string (sql_delete_node_aliases) - l_sql_delete_node_aliases.replace_substring_all ("$nodeid", "node/" + a_node.id.out) - sql_modify (l_sql_delete_node_aliases, void) sql_finalize if not error_handler.has_error then @@ -429,7 +422,7 @@ feature -- Change: Node l_parameters.put (l_time, "changed") l_parameters.put ({CMS_NODE_API}.published, "status") l_parameters.put (a_id, "nid") - sql_modify (sql_restore_node, l_parameters) + sql_modify (sql_update_node_status, l_parameters) sql_finalize end @@ -572,7 +565,7 @@ feature {NONE} -- Queries sql_delete_node: STRING = "DELETE FROM nodes WHERE nid=:nid" -- Physical deletion with free metadata. - sql_restore_node: STRING = "UPDATE nodes SET changed=:changed, status =:status WHERE nid=:nid" + sql_update_node_status: STRING = "UPDATE nodes SET changed=:changed, status =:status WHERE nid=:nid" -- Restore node to {CMS_NODE_API}.published sql_last_insert_node_id: STRING = "SELECT MAX(nid) FROM nodes;" @@ -596,7 +589,6 @@ feature {NONE} -- Queries sql_delete_node_revisions: STRING = "DELETE FROM node_revisions WHERE nid=:nid;" - sql_delete_node_aliases: STRING = "DELETE FROM path_aliases WHERE source='$nodeid';" feature {NONE} -- Sql Queries: USER_ROLES collaborators, author