Added persistence support for Eiffel sqlite3 wrapper.
Updated existing persistency solution to be more generic to any db solution.
This commit is contained in:
@@ -37,7 +37,7 @@ feature -- URL aliases
|
||||
error_handler.add_custom_error (0, "alias exists", "Path alias %"" + a_alias + "%" already exists!")
|
||||
end
|
||||
else
|
||||
sql_change (sql_insert_path_alias, l_parameters)
|
||||
sql_insert (sql_insert_path_alias, l_parameters)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -63,7 +63,7 @@ feature -- URL aliases
|
||||
l_parameters.put (l_previous_alias, "old")
|
||||
l_parameters.put (a_alias, "alias")
|
||||
|
||||
sql_change (sql_update_path_alias, l_parameters)
|
||||
sql_modify (sql_update_path_alias, l_parameters)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -79,7 +79,7 @@ feature -- URL aliases
|
||||
-- Found
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_alias, "alias")
|
||||
sql_change (sql_delete_path_alias, l_parameters)
|
||||
sql_modify (sql_delete_path_alias, l_parameters)
|
||||
else
|
||||
error_handler.add_custom_error (0, "alias mismatch", "Path alias %"" + a_alias + "%" is not related to source %"" + a_source + "%"!")
|
||||
end
|
||||
@@ -97,11 +97,12 @@ feature -- URL aliases
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_source, "source")
|
||||
sql_query (sql_select_path_source, l_parameters)
|
||||
if not has_error then
|
||||
if sql_rows_count = 1 then
|
||||
Result := sql_read_string (1)
|
||||
end
|
||||
if not has_error and not sql_after then
|
||||
Result := sql_read_string (1)
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
source_of_path_alias (a_alias: READABLE_STRING_8): detachable READABLE_STRING_8
|
||||
@@ -114,10 +115,13 @@ feature -- URL aliases
|
||||
l_parameters.put (a_alias, "alias")
|
||||
sql_query (sql_select_path_alias, l_parameters)
|
||||
if not has_error then
|
||||
if sql_rows_count = 1 then
|
||||
if not has_error and not sql_after then
|
||||
Result := sql_read_string (1)
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
sql_select_path_alias: STRING = "SELECT source FROM path_aliases WHERE alias=:alias ;"
|
||||
@@ -166,7 +170,7 @@ feature -- Logs
|
||||
l_parameters.put (Void, "link")
|
||||
end
|
||||
l_parameters.put (now, "date")
|
||||
sql_change (sql_insert_log, l_parameters)
|
||||
sql_insert (sql_insert_log, l_parameters)
|
||||
end
|
||||
|
||||
sql_insert_log: STRING = "INSERT INTO logs (category, level, uid, message, info, link, date) VALUES (:category, :level, :uid, :message, :info, :link, :date);"
|
||||
@@ -193,10 +197,10 @@ feature -- Misc
|
||||
if a_value.same_string (l_value) then
|
||||
-- already up to date
|
||||
else
|
||||
sql_change (sql_update_custom_value, l_parameters)
|
||||
sql_modify (sql_update_custom_value, l_parameters)
|
||||
end
|
||||
else
|
||||
sql_change (sql_insert_custom_value, l_parameters)
|
||||
sql_insert (sql_insert_custom_value, l_parameters)
|
||||
end
|
||||
end
|
||||
|
||||
@@ -214,7 +218,7 @@ feature -- Misc
|
||||
l_parameters.put (a_type, "default")
|
||||
end
|
||||
l_parameters.put (a_name, "name")
|
||||
sql_change (sql_delete_custom_value, l_parameters)
|
||||
sql_modify (sql_delete_custom_value, l_parameters)
|
||||
end
|
||||
|
||||
custom_value (a_name: READABLE_STRING_GENERAL; a_type: detachable READABLE_STRING_8): detachable READABLE_STRING_32
|
||||
@@ -232,11 +236,12 @@ feature -- Misc
|
||||
end
|
||||
l_parameters.put (a_name, "name")
|
||||
sql_query (sql_select_custom_value, l_parameters)
|
||||
if not has_error then
|
||||
if sql_rows_count = 1 then
|
||||
Result := sql_read_string_32 (1)
|
||||
end
|
||||
if not has_error and not sql_after then
|
||||
Result := sql_read_string_32 (1)
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
sql_select_custom_value: STRING = "SELECT value FROM custom_values WHERE type=:type AND name=:name;"
|
||||
@@ -252,4 +257,7 @@ feature -- Misc
|
||||
-- SQL delete custom value;
|
||||
|
||||
|
||||
note
|
||||
copyright: "2011-2015, Jocelyn Fiat, Javier Velilla, Eiffel Software and others"
|
||||
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
||||
end
|
||||
|
||||
@@ -68,19 +68,24 @@ feature -- Operation
|
||||
sql_storage.sql_query (a_sql_statement, a_params)
|
||||
end
|
||||
|
||||
sql_change (a_sql_statement: STRING; a_params: detachable STRING_TABLE [detachable ANY])
|
||||
sql_finalize
|
||||
-- Finalize sql query (i.e destroy previous query statement.
|
||||
do
|
||||
sql_storage.sql_change (a_sql_statement, a_params)
|
||||
sql_storage.sql_finalize
|
||||
end
|
||||
|
||||
sql_insert (a_sql_statement: STRING; a_params: detachable STRING_TABLE [detachable ANY])
|
||||
do
|
||||
sql_storage.sql_insert (a_sql_statement, a_params)
|
||||
end
|
||||
|
||||
sql_modify (a_sql_statement: STRING; a_params: detachable STRING_TABLE [detachable ANY])
|
||||
do
|
||||
sql_storage.sql_modify (a_sql_statement, a_params)
|
||||
end
|
||||
|
||||
feature -- Access
|
||||
|
||||
sql_rows_count: INTEGER
|
||||
-- Number of rows for last sql execution.
|
||||
do
|
||||
Result := sql_storage.sql_rows_count
|
||||
end
|
||||
|
||||
sql_start
|
||||
-- Set the cursor on first element.
|
||||
do
|
||||
@@ -109,6 +114,16 @@ feature -- Access
|
||||
Result:= sql_storage.sql_item (a_index)
|
||||
end
|
||||
|
||||
sql_read_integer_32 (a_index: INTEGER_32): INTEGER_32
|
||||
do
|
||||
Result := sql_storage.sql_read_integer_32 (a_index)
|
||||
end
|
||||
|
||||
sql_read_date_time (a_index: INTEGER_32): detachable DATE_TIME
|
||||
do
|
||||
Result := sql_storage.sql_read_date_time (a_index)
|
||||
end
|
||||
|
||||
feature -- Conversion
|
||||
|
||||
sql_statement (a_statement: STRING): STRING
|
||||
@@ -117,4 +132,7 @@ feature -- Conversion
|
||||
Result := sql_storage.sql_statement (a_statement)
|
||||
end
|
||||
|
||||
note
|
||||
copyright: "2011-2015, Jocelyn Fiat, Javier Velilla, Eiffel Software and others"
|
||||
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
||||
end
|
||||
|
||||
@@ -119,12 +119,22 @@ feature -- Operation
|
||||
end
|
||||
|
||||
sql_query (a_sql_statement: STRING; a_params: detachable STRING_TABLE [detachable ANY])
|
||||
-- <Precursor>
|
||||
-- Execute sql query `a_sql_statement' with optional parameters `a_params'.
|
||||
deferred
|
||||
end
|
||||
|
||||
sql_change (a_sql_statement: STRING; a_params: detachable STRING_TABLE [detachable ANY])
|
||||
-- <Precursor>
|
||||
sql_finalize
|
||||
-- Finalize sql query (i.e destroy previous query statement.
|
||||
deferred
|
||||
end
|
||||
|
||||
sql_insert (a_sql_statement: STRING; a_params: detachable STRING_TABLE [detachable ANY])
|
||||
-- Execute sql insert `a_sql_statement' with optional parameters `a_params'.
|
||||
deferred
|
||||
end
|
||||
|
||||
sql_modify (a_sql_statement: STRING; a_params: detachable STRING_TABLE [detachable ANY])
|
||||
-- Execute sql modify `a_sql_statement' with optional parameters `a_params'.
|
||||
deferred
|
||||
end
|
||||
|
||||
@@ -179,7 +189,11 @@ feature -- Helper
|
||||
loop
|
||||
if attached next_sql_statement (a_sql_script, i, cl) as s then
|
||||
if not s.is_whitespace then
|
||||
sql_change (sql_statement (s), a_params)
|
||||
if s.starts_with ("INSERT") then
|
||||
sql_insert (sql_statement (s), a_params)
|
||||
else
|
||||
sql_modify (sql_statement (s), a_params)
|
||||
end
|
||||
err := err or has_error
|
||||
reset_error
|
||||
end
|
||||
@@ -217,11 +231,6 @@ feature -- Helper
|
||||
|
||||
feature -- Access
|
||||
|
||||
sql_rows_count: INTEGER
|
||||
-- Number of rows for last sql execution.
|
||||
deferred
|
||||
end
|
||||
|
||||
sql_start
|
||||
-- Set the cursor on first element.
|
||||
deferred
|
||||
@@ -279,17 +288,7 @@ feature -- Access
|
||||
|
||||
sql_read_integer_32 (a_index: INTEGER): INTEGER_32
|
||||
-- Retrieved value at `a_index' position in `item'.
|
||||
local
|
||||
l_item: like sql_item
|
||||
do
|
||||
l_item := sql_item (a_index)
|
||||
if attached {INTEGER_32} l_item as i then
|
||||
Result := i
|
||||
elseif attached {INTEGER_32_REF} l_item as l_value then
|
||||
Result := l_value.item
|
||||
else
|
||||
check is_integer_32: False end
|
||||
end
|
||||
deferred
|
||||
end
|
||||
|
||||
sql_read_string (a_index: INTEGER): detachable STRING
|
||||
@@ -329,15 +328,7 @@ feature -- Access
|
||||
|
||||
sql_read_date_time (a_index: INTEGER): detachable DATE_TIME
|
||||
-- Retrieved value at `a_index' position in `item'.
|
||||
local
|
||||
l_item: like sql_item
|
||||
do
|
||||
l_item := sql_item (a_index)
|
||||
if attached {DATE_TIME} l_item as dt then
|
||||
Result := dt
|
||||
else
|
||||
check is_date_time_nor_null: l_item = Void end
|
||||
end
|
||||
deferred
|
||||
end
|
||||
|
||||
sql_read_boolean (a_index: INTEGER): detachable BOOLEAN
|
||||
|
||||
@@ -30,10 +30,12 @@ feature -- Access: user
|
||||
write_information_log (generator + ".user_count")
|
||||
|
||||
sql_query (select_users_count, Void)
|
||||
if sql_rows_count = 1 then
|
||||
Result := sql_read_integer_32 (1)
|
||||
if not has_error and then not sql_after then
|
||||
Result := sql_read_integer_64 (1).to_integer_32
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
error_handler.reset
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
users: LIST [CMS_USER]
|
||||
@@ -47,13 +49,14 @@ feature -- Access: user
|
||||
sql_query (select_users, Void)
|
||||
sql_start
|
||||
until
|
||||
sql_after
|
||||
sql_after or has_error
|
||||
loop
|
||||
if attached fetch_user as l_user then
|
||||
Result.force (l_user)
|
||||
end
|
||||
sql_forth
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
user_by_id (a_id: like {CMS_USER}.id): detachable CMS_USER
|
||||
@@ -66,11 +69,12 @@ feature -- Access: user
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_id, "uid")
|
||||
sql_query (select_user_by_id, l_parameters)
|
||||
if sql_rows_count = 1 then
|
||||
if not has_error and not sql_after then
|
||||
Result := fetch_user
|
||||
else
|
||||
check no_more_than_one: sql_rows_count = 0 end
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
user_by_name (a_name: like {CMS_USER}.name): detachable CMS_USER
|
||||
@@ -83,11 +87,12 @@ feature -- Access: user
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_name, "name")
|
||||
sql_query (select_user_by_name, l_parameters)
|
||||
if sql_rows_count = 1 then
|
||||
if not sql_after then
|
||||
Result := fetch_user
|
||||
else
|
||||
check no_more_than_one: sql_rows_count = 0 end
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
user_by_email (a_email: like {CMS_USER}.email): detachable CMS_USER
|
||||
@@ -100,11 +105,12 @@ feature -- Access: user
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_email, "email")
|
||||
sql_query (select_user_by_email, l_parameters)
|
||||
if sql_rows_count = 1 then
|
||||
if not sql_after then
|
||||
Result := fetch_user
|
||||
else
|
||||
check no_more_than_one: sql_rows_count = 0 end
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
user_by_activation_token (a_token: READABLE_STRING_32): detachable CMS_USER
|
||||
@@ -117,11 +123,12 @@ feature -- Access: user
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_token, "token")
|
||||
sql_query (select_user_by_activation_token, l_parameters)
|
||||
if sql_rows_count = 1 then
|
||||
if not sql_after then
|
||||
Result := fetch_user
|
||||
else
|
||||
check no_more_than_one: sql_rows_count = 0 end
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
user_by_password_token (a_token: READABLE_STRING_32): detachable CMS_USER
|
||||
@@ -134,11 +141,12 @@ feature -- Access: user
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_token, "token")
|
||||
sql_query (select_user_by_password_token, l_parameters)
|
||||
if sql_rows_count = 1 then
|
||||
if not sql_after then
|
||||
Result := fetch_user
|
||||
else
|
||||
check no_more_than_one: sql_rows_count = 0 end
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
is_valid_credential (l_auth_login, l_auth_password: READABLE_STRING_32): BOOLEAN
|
||||
@@ -160,7 +168,6 @@ feature -- Access: user
|
||||
write_information_log (generator + ".is_valid_credential User:" + l_auth_login + "does not exist" )
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
recent_users (a_lower: INTEGER; a_count: INTEGER): LIST [CMS_USER]
|
||||
@@ -187,6 +194,7 @@ feature -- Access: user
|
||||
end
|
||||
sql_forth
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
feature -- Change: user
|
||||
|
||||
@@ -216,7 +224,7 @@ feature -- Change: user
|
||||
l_parameters.put (create {DATE_TIME}.make_now_utc, "created")
|
||||
l_parameters.put (a_user.status, "status")
|
||||
|
||||
sql_change (sql_insert_user, l_parameters)
|
||||
sql_insert (sql_insert_user, l_parameters)
|
||||
if not error_handler.has_error then
|
||||
a_user.set_id (last_inserted_user_id)
|
||||
update_user_roles (a_user)
|
||||
@@ -226,6 +234,7 @@ feature -- Change: user
|
||||
else
|
||||
sql_rollback_transaction
|
||||
end
|
||||
sql_finalize
|
||||
else
|
||||
-- set error
|
||||
error_handler.add_custom_error (-1, "bad request" , "Missing password or email")
|
||||
@@ -265,7 +274,7 @@ feature -- Change: user
|
||||
l_parameters.put (l_email, "email")
|
||||
l_parameters.put (a_user.status, "status")
|
||||
|
||||
sql_change (sql_update_user, l_parameters)
|
||||
sql_modify (sql_update_user, l_parameters)
|
||||
if not error_handler.has_error then
|
||||
update_user_roles (a_user)
|
||||
end
|
||||
@@ -274,6 +283,7 @@ feature -- Change: user
|
||||
else
|
||||
sql_rollback_transaction
|
||||
end
|
||||
sql_finalize
|
||||
else
|
||||
-- set error
|
||||
error_handler.add_custom_error (-1, "bad request" , "Missing password or email")
|
||||
@@ -290,8 +300,9 @@ feature -- Change: user
|
||||
write_information_log (generator + ".delete_user")
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_user.id, "uid")
|
||||
sql_change (sql_delete_user, l_parameters)
|
||||
sql_modify (sql_delete_user, l_parameters)
|
||||
sql_commit_transaction
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
update_user_roles (a_user: CMS_USER)
|
||||
@@ -347,6 +358,7 @@ feature -- Change: user
|
||||
else
|
||||
sql_rollback_transaction
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
assign_role_to_user (a_role: CMS_USER_ROLE; a_user: CMS_USER)
|
||||
@@ -356,7 +368,8 @@ feature -- Change: user
|
||||
create l_parameters.make (2)
|
||||
l_parameters.put (a_user.id, "uid")
|
||||
l_parameters.put (a_role.id, "rid")
|
||||
sql_change (sql_insert_role_to_user, l_parameters)
|
||||
sql_insert (sql_insert_role_to_user, l_parameters)
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
unassign_role_from_user (a_role: CMS_USER_ROLE; a_user: CMS_USER)
|
||||
@@ -366,7 +379,8 @@ feature -- Change: user
|
||||
create l_parameters.make (2)
|
||||
l_parameters.put (a_user.id, "uid")
|
||||
l_parameters.put (a_role.id, "rid")
|
||||
sql_change (sql_delete_role_from_user, l_parameters)
|
||||
sql_modify (sql_delete_role_from_user, l_parameters)
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
feature -- Access: roles and permissions
|
||||
@@ -380,13 +394,16 @@ feature -- Access: roles and permissions
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_id, "rid")
|
||||
sql_query (select_user_role_by_id, l_parameters)
|
||||
if sql_rows_count = 1 then
|
||||
if not sql_after then
|
||||
Result := fetch_user_role
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
sql_finalize
|
||||
if Result /= Void and not has_error then
|
||||
fill_user_role (Result)
|
||||
end
|
||||
else
|
||||
check no_more_than_one: sql_rows_count = 0 end
|
||||
sql_finalize
|
||||
end
|
||||
end
|
||||
|
||||
@@ -400,13 +417,16 @@ feature -- Access: roles and permissions
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_name, "name")
|
||||
sql_query (select_user_role_by_name, l_parameters)
|
||||
if sql_rows_count = 1 then
|
||||
if not sql_after then
|
||||
Result := fetch_user_role
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
sql_finalize
|
||||
if Result /= Void and not has_error then
|
||||
fill_user_role (Result)
|
||||
end
|
||||
else
|
||||
check no_more_than_one: sql_rows_count = 0 end
|
||||
sql_finalize
|
||||
end
|
||||
end
|
||||
|
||||
@@ -431,6 +451,7 @@ feature -- Access: roles and permissions
|
||||
end
|
||||
sql_forth
|
||||
end
|
||||
sql_finalize
|
||||
if not has_error then
|
||||
across Result as ic loop
|
||||
fill_user_role (ic.item)
|
||||
@@ -458,6 +479,7 @@ feature -- Access: roles and permissions
|
||||
end
|
||||
sql_forth
|
||||
end
|
||||
sql_finalize
|
||||
if not has_error then
|
||||
across Result as ic loop
|
||||
fill_user_role (ic.item)
|
||||
@@ -501,6 +523,7 @@ feature -- Access: roles and permissions
|
||||
-- end
|
||||
sql_forth
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
role_permissions: LIST [READABLE_STRING_8]
|
||||
@@ -522,6 +545,7 @@ feature -- Access: roles and permissions
|
||||
end
|
||||
sql_forth
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
feature -- Change: roles and permissions
|
||||
@@ -550,7 +574,7 @@ feature -- Change: roles and permissions
|
||||
create l_parameters.make (2)
|
||||
l_parameters.put (a_user_role.id, "rid")
|
||||
l_parameters.put (a_user_role.name, "name")
|
||||
sql_change (sql_update_user_role, l_parameters)
|
||||
sql_modify (sql_update_user_role, l_parameters)
|
||||
end
|
||||
if not a_user_role.permissions.is_empty then
|
||||
-- FIXME: check if this is non set permissions,or none ...
|
||||
@@ -596,14 +620,17 @@ feature -- Change: roles and permissions
|
||||
else
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_user_role.name, "name")
|
||||
sql_change (sql_insert_user_role, l_parameters)
|
||||
sql_insert (sql_insert_user_role, l_parameters)
|
||||
if not error_handler.has_error then
|
||||
a_user_role.set_id (last_inserted_user_role_id)
|
||||
sql_finalize
|
||||
across
|
||||
a_user_role.permissions as ic
|
||||
loop
|
||||
set_permission_for_role_id (ic.item, a_user_role.id)
|
||||
end
|
||||
else
|
||||
sql_finalize
|
||||
end
|
||||
end
|
||||
end
|
||||
@@ -619,7 +646,8 @@ feature -- Change: roles and permissions
|
||||
l_parameters.put (a_role_id, "rid")
|
||||
l_parameters.put (a_permission, "permission")
|
||||
l_parameters.put (Void, "module") -- FIXME: unsupported for now!
|
||||
sql_change (sql_insert_user_role_permission, l_parameters)
|
||||
sql_insert (sql_insert_user_role_permission, l_parameters)
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
unset_permission_for_role_id (a_permission: READABLE_STRING_8; a_role_id: INTEGER)
|
||||
@@ -633,7 +661,8 @@ feature -- Change: roles and permissions
|
||||
create l_parameters.make (2)
|
||||
l_parameters.put (a_role_id, "rid")
|
||||
l_parameters.put (a_permission, "permission")
|
||||
sql_change (sql_delete_user_role_permission, l_parameters)
|
||||
sql_modify (sql_delete_user_role_permission, l_parameters)
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
last_inserted_user_role_id: INTEGER_32
|
||||
@@ -642,9 +671,12 @@ feature -- Change: roles and permissions
|
||||
error_handler.reset
|
||||
write_information_log (generator + ".last_inserted_user_role_id")
|
||||
sql_query (Sql_last_insert_user_role_id, Void)
|
||||
if sql_rows_count = 1 then
|
||||
Result := sql_read_integer_32 (1)
|
||||
if not sql_after then
|
||||
Result := sql_read_integer_64 (1).to_integer_32
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
|
||||
@@ -658,9 +690,10 @@ feature -- Change: roles and permissions
|
||||
write_information_log (generator + ".delete_role")
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_role.id, "rid")
|
||||
sql_change (sql_delete_role_permissions_by_role_id, l_parameters)
|
||||
sql_change (sql_delete_role_by_id, l_parameters)
|
||||
sql_modify (sql_delete_role_permissions_by_role_id, l_parameters)
|
||||
sql_modify (sql_delete_role_by_id, l_parameters)
|
||||
sql_commit_transaction
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
|
||||
@@ -676,9 +709,12 @@ feature -- Access: User activation
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_token, "token")
|
||||
sql_query (sql_select_activation_expiration, l_parameters)
|
||||
if sql_rows_count = 1 then
|
||||
if not sql_after then
|
||||
Result := sql_read_integer_32 (1)
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
user_id_by_activation (a_token: READABLE_STRING_32): INTEGER_64
|
||||
@@ -691,9 +727,12 @@ feature -- Access: User activation
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_token, "token")
|
||||
sql_query (sql_select_userid_activation, l_parameters)
|
||||
if sql_rows_count = 1 then
|
||||
if not sql_after then
|
||||
Result := sql_read_integer_32 (1)
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
feature -- Change: User activation
|
||||
@@ -712,8 +751,9 @@ feature -- Change: User activation
|
||||
l_parameters.put (a_token, "token")
|
||||
l_parameters.put (a_id, "uid")
|
||||
l_parameters.put (l_utc_date, "utc_date")
|
||||
sql_change (sql_insert_activation, l_parameters)
|
||||
sql_insert (sql_insert_activation, l_parameters)
|
||||
sql_commit_transaction
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
remove_activation (a_token: READABLE_STRING_32)
|
||||
@@ -726,8 +766,9 @@ feature -- Change: User activation
|
||||
write_information_log (generator + ".remove_activation")
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_token, "token")
|
||||
sql_change (sql_remove_activation, l_parameters)
|
||||
sql_modify (sql_remove_activation, l_parameters)
|
||||
sql_commit_transaction
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
feature -- Change: User password recovery
|
||||
@@ -746,8 +787,9 @@ feature -- Change: User password recovery
|
||||
l_parameters.put (a_token, "token")
|
||||
l_parameters.put (a_id, "uid")
|
||||
l_parameters.put (l_utc_date, "utc_date")
|
||||
sql_change (sql_insert_password, l_parameters)
|
||||
sql_insert (sql_insert_password, l_parameters)
|
||||
sql_commit_transaction
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
remove_password (a_token: READABLE_STRING_32)
|
||||
@@ -760,8 +802,9 @@ feature -- Change: User password recovery
|
||||
write_information_log (generator + ".remove_password")
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_token, "token")
|
||||
sql_change (sql_remove_password, l_parameters)
|
||||
sql_modify (sql_remove_password, l_parameters)
|
||||
sql_commit_transaction
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
feature {NONE} -- Implementation: User
|
||||
@@ -776,11 +819,14 @@ feature {NONE} -- Implementation: User
|
||||
create l_parameters.make (1)
|
||||
l_parameters.put (a_username, "name")
|
||||
sql_query (select_salt_by_username, l_parameters)
|
||||
if sql_rows_count = 1 then
|
||||
if not sql_after then
|
||||
if attached sql_read_string (1) as l_salt then
|
||||
Result := l_salt
|
||||
end
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
fetch_user: detachable CMS_USER
|
||||
@@ -826,9 +872,12 @@ feature {NONE} -- Implementation: User
|
||||
error_handler.reset
|
||||
write_information_log (generator + ".last_inserted_user_id")
|
||||
sql_query (Sql_last_insert_user_id, Void)
|
||||
if sql_rows_count = 1 then
|
||||
if not sql_after then
|
||||
Result := sql_read_integer_64 (1)
|
||||
sql_forth
|
||||
check one_row: sql_after end
|
||||
end
|
||||
sql_finalize
|
||||
end
|
||||
|
||||
feature {NONE} -- Implementation: User role
|
||||
|
||||
Reference in New Issue
Block a user