Added CMS_API.request: WSF_REQUEST to ease dev of ROC CMS code.
- Removed CMS_REQUEST_UTIL - centralize a few request related code into CMS_API Added CMS_API.user, CMS_API.set_user (CMS_USER), ... and user related routines. Refactored Auth related code - added various abstractions to factorize implementation and harmonize solutions. - revisited the logout strategy. - updated the account info page, and remove info user should not care about. - simplified the process, and encourage auth module to follow same design. Added CMS_LINK helper routines to modify the related query string. Removed CMS_USER.profile (and related routines) - It was not used so far. - it will probably a specific module later, if needed. Update various module to avoid fetching user from sql directly, and let this task to CMS_USER_API. Removed CMS_NODE_API.node_author (a_node: CMS_NODE): detachable CMS_USER, - as the info is already in CMS_NODE.author Added CMS_RESPONSE.redirection_delay, if ever one code want to redirect after a few seconds. Added the request uri info to the not found cms response.
This commit is contained in:
@@ -37,6 +37,80 @@ feature -- Access
|
||||
weight: INTEGER
|
||||
-- Optional weight used for order.
|
||||
|
||||
query_string: detachable STRING
|
||||
-- Query string from `location'.
|
||||
local
|
||||
i: INTEGER
|
||||
loc: like location
|
||||
do
|
||||
loc := location
|
||||
i := loc.index_of ('?', 1)
|
||||
if i > 0 then
|
||||
Result := loc.substring (i + 1, loc.count)
|
||||
i := loc.last_index_of ('#', loc.count)
|
||||
if i > 0 then
|
||||
Result.keep_head (i - 1)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
fragment_string: detachable STRING
|
||||
-- Query string from `location'.
|
||||
local
|
||||
i: INTEGER
|
||||
loc: like location
|
||||
do
|
||||
loc := location
|
||||
i := loc.last_index_of ('#', loc.count)
|
||||
if i > 0 then
|
||||
Result := loc.substring (i + 1, loc.count)
|
||||
end
|
||||
end
|
||||
|
||||
feature -- Element change
|
||||
|
||||
add_query_parameter (a_encoded_name: READABLE_STRING_8; a_encoded_value: detachable READABLE_STRING_8)
|
||||
-- Add query parameter "$a_encoded_name=$a_encoded_value" to `location'.
|
||||
-- note: the argument must already be url encoded!
|
||||
local
|
||||
q: STRING_8
|
||||
f: detachable READABLE_STRING_8
|
||||
i,j: INTEGER
|
||||
loc: STRING_8
|
||||
do
|
||||
create loc.make_from_string (location)
|
||||
|
||||
j := loc.last_index_of ('#', loc.count)
|
||||
if j > 0 then
|
||||
f := loc.substring (j, loc.count)
|
||||
loc.keep_head (j - 1)
|
||||
end
|
||||
i := loc.index_of ('?', 1)
|
||||
if i > 0 then
|
||||
q := loc.substring (i + 1, loc.count)
|
||||
loc.keep_head (i)
|
||||
else
|
||||
create q.make_empty
|
||||
end
|
||||
|
||||
if not q.is_empty then
|
||||
q.append_character ('&')
|
||||
end
|
||||
|
||||
q.append (a_encoded_name)
|
||||
if a_encoded_value /= Void then
|
||||
q.append_character ('=')
|
||||
q.append (a_encoded_value)
|
||||
end
|
||||
|
||||
loc.append_character ('?')
|
||||
loc.append (q)
|
||||
if f /= Void then
|
||||
loc.append (f)
|
||||
end
|
||||
location := loc
|
||||
end
|
||||
|
||||
feature -- Comparison
|
||||
|
||||
is_less alias "<" (other: like Current): BOOLEAN
|
||||
@@ -134,6 +208,6 @@ feature -- Status report
|
||||
end
|
||||
|
||||
note
|
||||
copyright: "2011-2015, Javier Velilla, Jocelyn Fiat, Eiffel Software and others"
|
||||
copyright: "2011-2016, Javier Velilla, Jocelyn Fiat, Eiffel Software and others"
|
||||
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
||||
end
|
||||
|
||||
@@ -65,9 +65,6 @@ feature -- Access
|
||||
email: detachable READABLE_STRING_8
|
||||
-- User email.
|
||||
|
||||
profile: detachable CMS_USER_PROFILE
|
||||
-- User profile.
|
||||
|
||||
creation_date: DATE_TIME
|
||||
-- Creation date.
|
||||
|
||||
@@ -189,26 +186,6 @@ feature -- Change element
|
||||
email_set: email = a_email
|
||||
end
|
||||
|
||||
set_profile (prof: like profile)
|
||||
-- Set `profile' with `prof'.
|
||||
do
|
||||
profile := prof
|
||||
ensure
|
||||
profile_set: profile = prof
|
||||
end
|
||||
|
||||
set_profile_item (k: READABLE_STRING_8; v: READABLE_STRING_8)
|
||||
local
|
||||
prof: like profile
|
||||
do
|
||||
prof := profile
|
||||
if prof = Void then
|
||||
create prof.make
|
||||
profile := prof
|
||||
end
|
||||
prof.force (v, k)
|
||||
end
|
||||
|
||||
set_last_login_date (dt: like last_login_date)
|
||||
do
|
||||
last_login_date := dt
|
||||
@@ -284,7 +261,6 @@ feature -- Status change
|
||||
status_set: status = a_status
|
||||
end
|
||||
|
||||
|
||||
feature -- User status
|
||||
|
||||
not_active: INTEGER = 0
|
||||
|
||||
@@ -1,56 +0,0 @@
|
||||
note
|
||||
description: "[
|
||||
User profile used to extend information associated with a {CMS_USER}.
|
||||
]"
|
||||
date: "$Date$"
|
||||
revision: "$Revision$"
|
||||
|
||||
class
|
||||
CMS_USER_PROFILE
|
||||
|
||||
inherit
|
||||
TABLE_ITERABLE [READABLE_STRING_8, READABLE_STRING_GENERAL]
|
||||
|
||||
create
|
||||
make
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make
|
||||
-- Create Current profile.
|
||||
do
|
||||
create items.make (0)
|
||||
end
|
||||
|
||||
feature -- Access
|
||||
|
||||
item (k: READABLE_STRING_GENERAL): detachable READABLE_STRING_8
|
||||
-- Profile item associated with key `k'.
|
||||
do
|
||||
Result := items.item (k)
|
||||
end
|
||||
|
||||
feature -- Change
|
||||
|
||||
force (v: READABLE_STRING_8; k: READABLE_STRING_GENERAL)
|
||||
-- Associated value `v' with key `k'.
|
||||
do
|
||||
items.force (v, k)
|
||||
end
|
||||
|
||||
feature -- Access
|
||||
|
||||
new_cursor: TABLE_ITERATION_CURSOR [READABLE_STRING_8, READABLE_STRING_GENERAL]
|
||||
-- Fresh cursor associated with current structure
|
||||
do
|
||||
Result := items.new_cursor
|
||||
end
|
||||
|
||||
feature {NONE} -- Implementation
|
||||
|
||||
items: STRING_TABLE [READABLE_STRING_8]
|
||||
|
||||
;note
|
||||
copyright: "2011-2014, Javier Velilla, Jocelyn Fiat, Eiffel Software and others"
|
||||
license: "Eiffel Forum License v2 (see http://www.eiffel.com/licensing/forum.txt)"
|
||||
end
|
||||
Reference in New Issue
Block a user