Initial commit, added new module oauth20.
This commit is contained in:
95
modules/oauth20/cms_oauth_20_api.e
Normal file
95
modules/oauth20/cms_oauth_20_api.e
Normal file
@@ -0,0 +1,95 @@
|
||||
note
|
||||
description: "[
|
||||
API to manage CMS User OAuth authentication.
|
||||
]"
|
||||
date: "$Date$"
|
||||
revision: "$Revision$"
|
||||
|
||||
class
|
||||
CMS_OAUTH_20_API
|
||||
|
||||
inherit
|
||||
CMS_MODULE_API
|
||||
|
||||
REFACTORING_HELPER
|
||||
|
||||
create {CMS_OAUTH_20_MODULE}
|
||||
make_with_storage
|
||||
|
||||
feature {NONE} -- Initialization
|
||||
|
||||
make_with_storage (a_api: CMS_API; a_oauth_storage: CMS_OAUTH_20_STORAGE_I)
|
||||
-- Create an object with api `a_api' and storage `a_oauth_storage'.
|
||||
do
|
||||
oauth_20_storage := a_oauth_storage
|
||||
make (a_api)
|
||||
ensure
|
||||
oauht_20_storage_set: oauth_20_storage = a_oauth_storage
|
||||
end
|
||||
|
||||
feature {CMS_MODULE} -- Access: User oauth storage.
|
||||
|
||||
oauth_20_storage: CMS_OAUTH_20_STORAGE_I
|
||||
-- storage interface.
|
||||
|
||||
feature -- Access: User Oauth20
|
||||
|
||||
user_oauth2_by_id (a_uid: like {CMS_USER}.id; a_consumer: READABLE_STRING_GENERAL): detachable CMS_USER
|
||||
-- Retrieve a user by id `a_uid' for the consumer `a_consumer', if any.
|
||||
do
|
||||
Result := oauth_20_storage.user_oauth2_by_id (a_uid, a_consumer)
|
||||
end
|
||||
|
||||
user_oauth2_by_token (a_token: READABLE_STRING_GENERAL; a_consumer: READABLE_STRING_GENERAL): detachable CMS_USER
|
||||
-- Retrieve a user by token `a_token' for the consumer `a_consumer'.
|
||||
do
|
||||
Result := oauth_20_storage.user_oauth2_by_token (a_token, a_consumer)
|
||||
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.
|
||||
do
|
||||
Result := oauth_20_storage.user_oauth2_without_consumer_by_token (a_token)
|
||||
end
|
||||
|
||||
feature -- Access: Consumers OAuth20
|
||||
|
||||
oauth2_consumers: LIST [STRING]
|
||||
-- List of Oauth_20 consumers, if any, empty in other case.
|
||||
do
|
||||
Result := oauth_20_storage.oauth2_consumers
|
||||
end
|
||||
|
||||
oauth_consumer_by_name (a_name: READABLE_STRING_8): detachable CMS_OAUTH_20_CONSUMER
|
||||
-- Retrieve a consumer by name `a_name', if any.
|
||||
do
|
||||
Result := oauth_20_storage.oauth_consumer_by_name (a_name)
|
||||
end
|
||||
|
||||
oauth_consumer_by_callback (a_callback: READABLE_STRING_8): detachable CMS_OAUTH_20_CONSUMER
|
||||
-- Retrieve a consumer by callback `a_callback', if any.
|
||||
do
|
||||
Result := oauth_20_storage.oauth_consumer_by_callback (a_callback)
|
||||
end
|
||||
|
||||
feature -- Change: User OAuth20
|
||||
|
||||
|
||||
new_user_oauth2 (a_token: READABLE_STRING_GENERAL; a_user_profile: READABLE_STRING_32; a_user: CMS_USER; a_consumer: READABLE_STRING_GENERAL)
|
||||
-- Add a new user with oauth20 using the consumer `a_consumer'.
|
||||
require
|
||||
has_id: a_user.has_id
|
||||
do
|
||||
oauth_20_storage.new_user_oauth2 (a_token, a_user_profile, a_user, a_consumer)
|
||||
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)
|
||||
-- Updaate user `a_user' with oauth2 for the consumer `a_consumer'.
|
||||
require
|
||||
has_id: a_user.has_id
|
||||
do
|
||||
oauth_20_storage.update_user_oauth2 (a_token, a_user_profile, a_user, a_consumer_table)
|
||||
end
|
||||
|
||||
end
|
||||
Reference in New Issue
Block a user