- 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.
79 lines
2.2 KiB
Plaintext
79 lines
2.2 KiB
Plaintext
note
|
|
description: "[
|
|
API to handle OAUTH storage
|
|
]"
|
|
date: "$Date$"
|
|
revision: "$Revision$"
|
|
|
|
deferred class
|
|
CMS_OAUTH_20_STORAGE_I
|
|
|
|
inherit
|
|
SHARED_LOGGER
|
|
|
|
feature -- Error Handling
|
|
|
|
error_handler: ERROR_HANDLER
|
|
-- Error handler.
|
|
deferred
|
|
end
|
|
|
|
feature -- Access: Users
|
|
|
|
user_oauth2_by_id (a_uid: like {CMS_USER}.id; a_consumer_table: READABLE_STRING_GENERAL): detachable CMS_USER
|
|
-- Retrieve a user by id `a_uid' for the consumer `a_consumer', if any.
|
|
deferred
|
|
end
|
|
|
|
user_oauth2_by_email (a_email: like {CMS_USER}.email; a_consumer_table: READABLE_STRING_GENERAL): detachable CMS_USER
|
|
-- Retrieve a user by email `a_email' for the consumer `a_consumer', if any.
|
|
deferred
|
|
end
|
|
|
|
user_oauth2_by_token (a_token: READABLE_STRING_GENERAL; a_consumer_table: READABLE_STRING_GENERAL): detachable CMS_USER
|
|
-- Retrieve a user by token `a_token' for the consumer `a_consumer'.
|
|
deferred
|
|
end
|
|
|
|
user_oauth2_without_consumer_by_token (a_token: READABLE_STRING_GENERAL): detachable CMS_USER
|
|
-- Retrieve user by token `a_token' searching in all the registered consumers in the system.
|
|
deferred
|
|
end
|
|
|
|
feature -- Access: Consumers
|
|
|
|
oauth2_consumers: LIST [STRING]
|
|
deferred
|
|
end
|
|
|
|
oauth_consumer_by_name (a_name: READABLE_STRING_8): detachable CMS_OAUTH_20_CONSUMER
|
|
-- Retrieve a consumer by name `a_name', if any.
|
|
deferred
|
|
end
|
|
|
|
oauth_consumer_by_callback (a_callback: READABLE_STRING_8): detachable CMS_OAUTH_20_CONSUMER
|
|
-- Retrieve a consumer by callback `a_callback', if any.
|
|
deferred
|
|
end
|
|
|
|
feature -- Change: User Oauth2
|
|
|
|
new_user_oauth2 (a_token: READABLE_STRING_GENERAL; a_user_profile: READABLE_STRING_32; a_user: CMS_USER; a_consumer_table: READABLE_STRING_GENERAL)
|
|
-- Add a new user with oauth2 authentication.
|
|
deferred
|
|
end
|
|
|
|
update_user_oauth2 (a_token: READABLE_STRING_GENERAL; a_user_profile: READABLE_STRING_32; a_user: CMS_USER; a_consumer_table: READABLE_STRING_GENERAL )
|
|
-- Update user `a_user' with oauth2 authentication.
|
|
deferred
|
|
end
|
|
|
|
remove_user_oauth2 (a_user: CMS_USER; a_consumer_table: READABLE_STRING_GENERAL)
|
|
-- Remove user `a_user' with oauth2 for the consumer `a_consumer'.
|
|
require
|
|
has_id: a_user.has_id
|
|
deferred
|
|
end
|
|
|
|
end
|