_bp = IndicoBlueprint('auth', __name__, template_folder='templates', virtual_template_folder='auth') _bp.add_url_rule('/login/', 'login', RHLogin, methods=('GET', 'POST')) _bp.add_url_rule('/login/<provider>/', 'login', RHLogin) _bp.add_url_rule('/login/<provider>/form', 'login_form', RHLoginForm) _bp.add_url_rule('/login/<provider>/link-account', 'link_account', RHLinkAccount, methods=('GET', 'POST')) _bp.add_url_rule('/logout/', 'logout', RHLogout, methods=('GET', 'POST')) _bp.add_url_rule('/register/', 'register', RHRegister, methods=('GET', 'POST'), defaults={'provider': None}) _bp.add_url_rule('/register/<provider>', 'register', RHRegister, methods=('GET', 'POST')) _bp.add_url_rule('/reset-password/', 'resetpass', RHResetPassword, methods=('GET', 'POST')) with _bp.add_prefixed_rules('/user/<int:user_id>', '/user'): _bp.add_url_rule('/accounts/', 'accounts', RHAccounts, methods=('GET', 'POST')) _bp.add_url_rule('/accounts/<identity>/remove/', 'remove_account', RHRemoveAccount, methods=('POST',)) @_bp.url_defaults def _add_user_id(endpoint, values): if endpoint in {'auth.accounts', 'auth.remove_account'} and 'user_id' not in values: values['user_id'] = request.view_args.get('user_id') # Legacy URLs auth_compat_blueprint = _compat_bp = IndicoBlueprint('compat_auth', __name__) _compat_bp.add_url_rule('/user/login', 'login', make_compat_redirect_func(_bp, 'login')) _compat_bp.add_url_rule('/user/register', 'register', make_compat_redirect_func(_bp, 'register'))
_bp = IndicoBlueprint('timetable', __name__, template_folder='templates', virtual_template_folder='events/timetable', url_prefix='/event/<confId>') # Management _bp.add_url_rule('/manage/timetable/', 'management', RHManageTimetable) _bp.add_url_rule('/manage/timetable/', 'timetable_rest', RHTimetableREST, methods=('POST',)) _bp.add_url_rule('/manage/timetable/<int:entry_id>', 'timetable_rest', RHTimetableREST, methods=('PATCH', 'DELETE')) _bp.add_url_rule('/manage/timetable/session/<int:session_id>/', 'manage_session', RHManageSessionTimetable) # Timetable legacy operations _bp.add_url_rule('/manage/timetable/add-session', 'add_session', RHLegacyTimetableAddSession, methods=('GET', 'POST')) _bp.add_url_rule('/manage/timetable/break/<int:break_id>', 'legacy_break_rest', RHLegacyTimetableBreakREST, methods=('PATCH',)) with _bp.add_prefixed_rules('/manage/timetable/session/<int:session_id>', '/manage/timetable'): _bp.add_url_rule('/', 'session_rest', RHLegacyTimetableEditSession, methods=('PATCH',)) _bp.add_url_rule('/entry/<int:entry_id>/info', 'entry_info_manage', RHManageTimetableEntryInfo) _bp.add_url_rule('/entry/<int:entry_id>/delete', 'delete_entry', RHLegacyTimetableDeleteEntry, methods=('POST',)) _bp.add_url_rule('/entry/<int:entry_id>/move', 'move_entry', RHLegacyTimetableMoveEntry, methods=('GET', 'POST')) _bp.add_url_rule('/entry/<int:entry_id>/shift', 'shift_entries', RHLegacyTimetableShiftEntries, methods=('POST',)) _bp.add_url_rule('/entry/<int:entry_id>/swap', 'swap_entries', RHLegacyTimetableSwapEntries, methods=('POST',)) _bp.add_url_rule('/entry/<int:entry_id>/edit/', 'edit_entry', RHLegacyTimetableEditEntry, methods=('GET', 'POST')) _bp.add_url_rule('/entry/<int:entry_id>/edit/time', 'edit_entry_time', RHLegacyTimetableEditEntryTime, methods=('GET', 'POST')) _bp.add_url_rule('/entry/<int:entry_id>/edit/datetime', 'edit_entry_datetime', RHLegacyTimetableEditEntryDateTime, methods=('POST',)) _bp.add_url_rule('/block/<block_id>/schedule', 'schedule', RHLegacyTimetableScheduleContribution, methods=('POST',)) _bp.add_url_rule('/block/<block_id>/fit', 'fit_session_block', RHLegacyTimetableFitBlock, methods=('POST',))
_bp.add_url_rule('/contributions/<int:contrib_id>/author/<int:person_id>', 'display_author', display.RHContributionAuthor) _bp.add_url_rule('/contributions/<int:contrib_id>/contribution.pdf', 'export_pdf', display.RHContributionExportToPDF) _bp.add_url_rule('/contributions/<int:contrib_id>/contribution.ics', 'export_ics', display.RHContributionExportToICAL) _bp.add_url_rule( '/contributions/<int:contrib_id>/subcontributions/<int:subcontrib_id>', 'display_subcontribution', display.RHSubcontributionDisplay) # Legacy URLs _compat_bp = IndicoBlueprint('compat_contributions', __name__, url_prefix='/event/<event_id>') with _compat_bp.add_prefixed_rules('/session/<legacy_session_id>'): _compat_bp.add_url_rule( '/contribution/<legacy_contribution_id>', 'contribution', partial(compat_contribution, 'display_contribution')) _compat_bp.add_url_rule('/contribution/<legacy_contribution_id>.ics', 'contribution_ics', partial(compat_contribution, 'export_ics')) _compat_bp.add_url_rule('/contribution/<legacy_contribution_id>.pdf', 'contribution_pdf', partial(compat_contribution, 'export_pdf')) _compat_bp.add_url_rule( '/contribution/<legacy_contribution_id>/<legacy_subcontribution_id>', 'subcontribution', compat_subcontribution) _compat_bp.add_url_rule( '/my-conference/contributions', 'my_contributions',
_bp.add_url_rule('/contributions/customize', 'customize_contribution_list', RHContributionReport, methods=('GET', 'POST')) _bp.add_url_rule('/contributions/static-url', 'contribution_list_static_url', RHContributionListStaticURL, methods=('POST',)) _bp.add_url_rule('/contributions/<int:contrib_id>/', 'display_contribution', RHContributionDisplay) _bp.add_url_rule('/contributions/<int:contrib_id>/author/<int:person_id>', 'display_author', RHContributionAuthor) _bp.add_url_rule('/contributions/<int:contrib_id>/contribution.pdf', 'export_pdf', RHContributionExportToPDF) _bp.add_url_rule('/contributions/<int:contrib_id>/contribution.ics', 'export_ics', RHContributionExportToICAL) _bp.add_url_rule('/contributions/<int:contrib_id>/subcontributions/<int:subcontrib_id>', 'display_subcontribution', RHSubcontributionDisplay) # Legacy URLs _compat_bp = IndicoBlueprint('compat_contributions', __name__, url_prefix='/event/<event_id>') with _compat_bp.add_prefixed_rules('/session/<legacy_session_id>'): _compat_bp.add_url_rule('/contribution/<legacy_contribution_id>', 'contribution', partial(compat_contribution, 'display_contribution')) _compat_bp.add_url_rule('/contribution/<legacy_contribution_id>.ics', 'contribution_ics', partial(compat_contribution, 'export_ics')) _compat_bp.add_url_rule('/contribution/<legacy_contribution_id>.pdf', 'contribution_pdf', partial(compat_contribution, 'export_pdf')) _compat_bp.add_url_rule('/contribution/<legacy_contribution_id>/<legacy_subcontribution_id>', 'subcontribution', compat_subcontribution) _compat_bp.add_url_rule('/my-conference/contributions', 'my_contributions', make_compat_redirect_func(_bp, 'my_contributions', view_args_conv={'event_id': 'confId'})) _compat_bp.add_url_rule('!/contributionDisplay.py', 'contribution_modpython', make_compat_redirect_func(_compat_bp, 'contribution', view_args_conv={'confId': 'event_id',
methods=('GET', 'POST')) _bp.add_url_rule('!/admin/users/merge/check/', 'users_merge_check', RHUsersAdminMergeCheck) _bp.add_url_rule('!/admin/users/registration-requests/', 'registration_request_list', RHRegistrationRequestList) _bp.add_url_rule('!/admin/users/registration-requests/<int:request_id>/accept', 'accept_registration_request', RHAcceptRegistrationRequest, methods=('POST', )) _bp.add_url_rule('!/admin/users/registration-requests/<int:request_id>/reject', 'reject_registration_request', RHRejectRegistrationRequest, methods=('POST', )) # User profile with _bp.add_prefixed_rules('/<int:user_id>'): _bp.add_url_rule('/dashboard/', 'user_dashboard', RHUserDashboard) _bp.add_url_rule('/suggestions/categories/<int:category_id>', 'user_suggestions_remove', RHUserSuggestionsRemove, methods=('DELETE', )) _bp.add_url_rule('/profile/', 'user_profile', RHPersonalData, methods=('GET', 'POST')) _bp.add_url_rule('/preferences/', 'user_preferences', RHUserPreferences, methods=('GET', 'POST')) _bp.add_url_rule('/favorites/', 'user_favorites', RHUserFavorites) _bp.add_url_rule('/favorites/users/',
# General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Indico; if not, see <http://www.gnu.org/licenses/>. from MaKaC.webinterface.rh import oauth as oauth_rh from indico.web.flask.wrappers import IndicoBlueprint oauth = IndicoBlueprint('oauth_old', __name__) # Consumer endpoints oauth.add_url_rule('/oauth/access_token', 'oauth-access_token', oauth_rh.RHOAuthAccessTokenURL, methods=('GET', 'POST')) oauth.add_url_rule('/oauth/authorize', 'oauth-authorize', oauth_rh.RHOAuthAuthorization, methods=('GET', 'POST')) oauth.add_url_rule('/oauth/request_token', 'oauth-request_token', oauth_rh.RHOAuthRequestToken, methods=('GET', 'POST')) # User endpoints: App list and authorization with oauth.add_prefixed_rules('/user-old/<userId>', '/user-old'): oauth.add_url_rule('/oauth/authorize', 'oauth-thirdPartyAuth', oauth_rh.RHOAuthThirdPartyAuth) oauth.add_url_rule('/oauth/authorize_consumer', 'oauth-authorize_consumer', oauth_rh.RHOAuthAuthorizeConsumer)
_bp.add_url_rule('/login/', 'login', RHLogin, methods=('GET', 'POST')) _bp.add_url_rule('/login/<provider>/', 'login', RHLogin) _bp.add_url_rule('/login/<provider>/form', 'login_form', RHLoginForm) _bp.add_url_rule('/login/<provider>/link-account', 'link_account', RHLinkAccount, methods=('GET', 'POST')) _bp.add_url_rule('/logout/', 'logout', RHLogout) _bp.add_url_rule('/register/', 'register', RHRegister, methods=('GET', 'POST'), defaults={'provider': None}) _bp.add_url_rule('/register/<provider>', 'register', RHRegister, methods=('GET', 'POST')) _bp.add_url_rule('/reset-password/', 'resetpass', RHResetPassword, methods=('GET', 'POST')) _bp.add_url_rule('/admin/users/impersonate', 'admin_impersonate', RHAdminImpersonate, methods=('POST',)) with _bp.add_prefixed_rules('/user/<int:user_id>', '/user'): _bp.add_url_rule('/accounts/', 'accounts', RHAccounts, methods=('GET', 'POST')) _bp.add_url_rule('/accounts/<identity>/remove/', 'remove_account', RHRemoveAccount, methods=('POST',)) @_bp.url_defaults def _add_user_id(endpoint, values): if endpoint in {'auth.accounts', 'auth.remove_account'} and 'user_id' not in values: values['user_id'] = request.view_args.get('user_id') # Legacy URLs auth_compat_blueprint = _compat_bp = IndicoBlueprint('compat_auth', __name__) _compat_bp.add_url_rule('/user/login', 'login', make_compat_redirect_func(_bp, 'login')) _compat_bp.add_url_rule('/user/register', 'register', make_compat_redirect_func(_bp, 'register'))
## ## Indico is free software; you can redistribute it and/or ## modify it under the terms of the GNU General Public License as ## published by the Free Software Foundation; either version 3 of the ## License, or (at your option) any later version. ## ## Indico is distributed in the hope that it will be useful, but ## WITHOUT ANY WARRANTY; without even the implied warranty of ## MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU ## General Public License for more details. ## ## You should have received a copy of the GNU General Public License ## along with Indico. If not, see <http://www.gnu.org/licenses/>. from MaKaC.webinterface.rh import oauth as oauth_rh from indico.web.flask.wrappers import IndicoBlueprint oauth = IndicoBlueprint('oauth', __name__) # Consumer endpoints oauth.add_url_rule('/oauth/access_token', 'oauth-access_token', oauth_rh.RHOAuthAccessTokenURL, methods=('GET', 'POST')) oauth.add_url_rule('/oauth/authorize', 'oauth-authorize', oauth_rh.RHOAuthAuthorization, methods=('GET', 'POST')) oauth.add_url_rule('/oauth/request_token', 'oauth-request_token', oauth_rh.RHOAuthRequestToken, methods=('GET', 'POST')) # User endpoints: App list and authorization with oauth.add_prefixed_rules('/user/<userId>', '/user'): oauth.add_url_rule('/oauth', 'oauth-userThirdPartyAuth', oauth_rh.RHOAuthUserThirdPartyAuth) oauth.add_url_rule('/oauth/authorize', 'oauth-thirdPartyAuth', oauth_rh.RHOAuthThirdPartyAuth) oauth.add_url_rule('/oauth/authorize_consumer', 'oauth-authorize_consumer', oauth_rh.RHOAuthAuthorizeConsumer)
# Admin _bp.add_url_rule('!/admin/users/', 'users_admin', RHUsersAdmin, methods=('GET', 'POST')) _bp.add_url_rule('!/admin/users/settings', 'users_admin_settings', RHUsersAdminSettings, methods=('GET', 'POST')) _bp.add_url_rule('!/admin/users/create/', 'users_create', RHUsersAdminCreate, methods=('GET', 'POST')) _bp.add_url_rule('!/admin/users/merge/', 'users_merge', RHUsersAdminMerge, methods=('GET', 'POST')) _bp.add_url_rule('!/admin/users/merge/check/', 'users_merge_check', RHUsersAdminMergeCheck) _bp.add_url_rule('!/admin/users/registration-requests/', 'registration_request_list', RHRegistrationRequestList) _bp.add_url_rule('!/admin/users/registration-requests/<int:request_id>/accept', 'accept_registration_request', RHAcceptRegistrationRequest, methods=('POST',)) _bp.add_url_rule('!/admin/users/registration-requests/<int:request_id>/reject', 'reject_registration_request', RHRejectRegistrationRequest, methods=('POST',)) # User profile with _bp.add_prefixed_rules('/<int:user_id>'): _bp.add_url_rule('/dashboard/', 'user_dashboard', RHUserDashboard) _bp.add_url_rule('/suggestions/categories/<category_id>', 'user_suggestions_remove', RHUserSuggestionsRemove, methods=('DELETE',)) _bp.add_url_rule('/profile/', 'user_profile', RHPersonalData, methods=('GET', 'POST')) _bp.add_url_rule('/preferences/', 'user_preferences', RHUserPreferences, methods=('GET', 'POST')) _bp.add_url_rule('/favorites/', 'user_favorites', RHUserFavorites) _bp.add_url_rule('/favorites/users/', 'user_favorites_users_add', RHUserFavoritesUsersAdd, methods=('POST',)) _bp.add_url_rule('/favorites/users/<int:fav_user_id>', 'user_favorites_user_remove', RHUserFavoritesUserRemove, methods=('DELETE',)) _bp.add_url_rule('/favorites/categories/<int:category_id>', 'user_favorites_category_api', RHUserFavoritesCategoryAPI, methods=('PUT', 'DELETE')) _bp.add_url_rule('/emails/', 'user_emails', RHUserEmails, methods=('GET', 'POST')) _bp.add_url_rule('/emails/verify/<token>', 'user_emails_verify', RHUserEmailsVerify) _bp.add_url_rule('/emails/<email>', 'user_emails_delete', RHUserEmailsDelete, methods=('DELETE',)) _bp.add_url_rule('/emails/make-primary', 'user_emails_set_primary', RHUserEmailsSetPrimary, methods=('POST',))
user = IndicoBlueprint('user', __name__, url_prefix='/user') # Logout user.add_url_rule('/logout', 'logOut', login.RHSignOut) # Login user.add_url_rule('/login', 'signIn', login.RHSignIn, methods=('GET', 'POST')) user.add_url_rule('/login/sso', 'signIn-sso', login.RHSignInSSO, methods=('GET', 'POST')) user.add_url_rule('/login/sso/<authId>', 'signIn-sso', login.RHSignInSSO, methods=('GET', 'POST')) user.add_url_rule('/login/disabled', 'signIn-disabledAccount', login.RHDisabledAccount, methods=('GET', 'POST')) user.add_url_rule('/login/not-activated', 'signIn-unactivatedAccount', login.RHUnactivatedAccount) # Passwords user.add_url_rule('/reset-password', 'signIn-sendLogin', login.RHSendLogin, methods=('POST',)) user.add_url_rule('/reset-password/<token>', 'signIn-resetPassword', login.RHResetPassword, methods=('GET', 'POST')) with user.add_prefixed_rules('/<userId>'): user.add_url_rule('/account/change-password', 'identityCreation-changePassword', users.RHUserIdentityChangePassword, methods=('GET', 'POST')) # Registration user.add_url_rule('/register/activate', 'signIn-active', login.RHActive) user.add_url_rule('/register/send-activation', 'signIn-sendActivation', login.RHSendActivation, methods=('GET', 'POST')) user.add_url_rule('/register', 'userRegistration', users.RHUserCreation, methods=('GET', 'POST')) user.add_url_rule('/register/exists', 'userRegistration-UserExist', users.RHUserExistWithIdentity) user.add_url_rule('/register/success', 'userRegistration-created', users.RHUserCreated, methods=('GET', 'POST')) with user.add_prefixed_rules('/<userId>'): # Identities user.add_url_rule('/account/create-identity', 'identityCreation', users.RHUserIdentityCreation) user.add_url_rule('/account/create-identity', 'identityCreation-create', users.RHUserIdentityCreation, methods=('POST',))
# Copyright (C) 2002 - 2015 European Organization for Nuclear Research (CERN). # # Indico is free software; you can redistribute it and/or # modify it under the terms of the GNU General Public License as # published by the Free Software Foundation; either version 3 of the # License, or (at your option) any later version. # # Indico is distributed in the hope that it will be useful, but # WITHOUT ANY WARRANTY; without even the implied warranty of # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU # General Public License for more details. # # You should have received a copy of the GNU General Public License # along with Indico; if not, see <http://www.gnu.org/licenses/>. from MaKaC.webinterface.rh import oauth as oauth_rh from indico.web.flask.wrappers import IndicoBlueprint oauth = IndicoBlueprint('oauth_old', __name__) # Consumer endpoints oauth.add_url_rule('/oauth/access_token', 'oauth-access_token', oauth_rh.RHOAuthAccessTokenURL, methods=('GET', 'POST')) oauth.add_url_rule('/oauth/authorize', 'oauth-authorize', oauth_rh.RHOAuthAuthorization, methods=('GET', 'POST')) oauth.add_url_rule('/oauth/request_token', 'oauth-request_token', oauth_rh.RHOAuthRequestToken, methods=('GET', 'POST')) # User endpoints: App list and authorization with oauth.add_prefixed_rules('/user-old/<userId>', '/user-old'): oauth.add_url_rule('/oauth/authorize', 'oauth-thirdPartyAuth', oauth_rh.RHOAuthThirdPartyAuth) oauth.add_url_rule('/oauth/authorize_consumer', 'oauth-authorize_consumer', oauth_rh.RHOAuthAuthorizeConsumer)
'signIn-disabledAccount', login.RHDisabledAccount, methods=('GET', 'POST')) user.add_url_rule('/login/not-activated', 'signIn-unactivatedAccount', login.RHUnactivatedAccount) # Passwords user.add_url_rule('/reset-password', 'signIn-sendLogin', login.RHSendLogin, methods=('POST', )) user.add_url_rule('/reset-password/<token>', 'signIn-resetPassword', login.RHResetPassword, methods=('GET', 'POST')) with user.add_prefixed_rules('/<userId>'): user.add_url_rule('/account/change-password', 'identityCreation-changePassword', users.RHUserIdentityChangePassword, methods=('GET', 'POST')) # Registration user.add_url_rule('/register/activate', 'signIn-active', login.RHActive) user.add_url_rule('/register/send-activation', 'signIn-sendActivation', login.RHSendActivation, methods=('GET', 'POST')) user.add_url_rule('/register', 'userRegistration', users.RHUserCreation, methods=('GET', 'POST'))
) from indico.web.flask.wrappers import IndicoBlueprint _bp = IndicoBlueprint("oauth", __name__, template_folder="templates", virtual_template_folder="oauth") # Application endpoints _bp.add_url_rule("/oauth/authorize", "oauth_authorize", RHOAuthAuthorize, methods=("GET", "POST")) _bp.add_url_rule("/oauth/errors", "oauth_errors", RHOAuthErrors) _bp.add_url_rule("/oauth/token", "oauth_token", RHOAuthToken, methods=("POST",)) # Server administration _bp.add_url_rule("/admin/apps/", "apps", RHOAuthAdmin) _bp.add_url_rule("/admin/apps/new", "app_new", RHOAuthAdminApplicationNew, methods=("GET", "POST")) _bp.add_url_rule("/admin/apps/<int:id>/", "app_details", RHOAuthAdminApplication, methods=("GET", "POST")) _bp.add_url_rule("/admin/apps/<int:id>/delete", "app_delete", RHOAuthAdminApplicationDelete, methods=("POST",)) _bp.add_url_rule("/admin/apps/<int:id>/reset", "app_reset", RHOAuthAdminApplicationReset, methods=("POST",)) _bp.add_url_rule("/admin/apps/<int:id>/revoke", "app_revoke", RHOAuthAdminApplicationRevoke, methods=("POST",)) # User profile with _bp.add_prefixed_rules("/user/<int:user_id>", "/user"): _bp.add_url_rule("/applications/", "user_profile", RHOAuthUserProfile) _bp.add_url_rule("/applications/<int:id>/revoke", "user_token_revoke", RHOAuthUserTokenRevoke, methods=("POST",)) @_bp.url_defaults def _add_user_id(endpoint, values): if endpoint in {"oauth.user_profile", "oauth.user_token_revoke"} and "user_id" not in values: # Inject user id if it's present in the url values["user_id"] = request.view_args.get("user_id")