- Publicity: Public Only All
test-authority-procs.tcl
Provide a simply authority named "acs_testing" for creating test users during runs of the regression test. This is needed, when a site/sub-site runs a registry which does e.g. a synchronized registry, where no additional accounts can be created.
- Location:
- packages/acs-authentication/tcl/test-authority-procs.tcl
- Created:
- 2018-10-04
- Author:
- Gustaf Neumann
Procedures in this file
Detailed information
[ hide source ] | [ make this the default ]Content File Source
ad_library { Provide a simply authority named "acs_testing" for creating test users during runs of the regression test. This is needed, when a site/sub-site runs a registry which does e.g. a synchronized registry, where no additional accounts can be created. @author Gustaf Neumann @creation-date 2018-10-04 } namespace eval acs::test::auth {} namespace eval acs::test::auth::registration {} ##### # # acs::test::auth # ##### ad_proc -private acs::test::auth::install {} { Register the service contract implementations for the acs_testing authority and update the authority accordingly. Do nothing, when the registry exists already. } { set authority_name acs_testing if {[auth::authority::get_id -short_name $authority_name] eq ""} { ns_log notice "create authority $authority_name" set register_impl_id [acs_sc::impl::get_id \ -owner acs-authentication \ -name acs_testing \ -contract auth_registration] if {$register_impl_id eq ""} { acs::test::auth::registration::register_impl set register_impl_id [acs_sc::impl::get_id \ -owner acs-authentication \ -name acs_testing \ -contract auth_registration] ns_log notice "create authority $authority_name => register_impl_id $register_impl_id" } set auth_impl_id [acs_sc::impl::get_id -owner acs-authentication -name local -contract auth_authentication] set pwd_impl_id [acs_sc::impl::get_id -owner acs-authentication -name local -contract auth_password] set user_info_impl_id [acs_sc::impl::get_id -owner acs-authentication -name local -contract auth_user_info] db_transaction { array set row [list \ short_name $authority_name \ pretty_name "ACS Automated Testing" \ auth_impl_id $auth_impl_id \ pwd_impl_id $pwd_impl_id \ register_impl_id $register_impl_id \ user_info_impl_id $user_info_impl_id \ ] auth::authority::create -array row } } } ad_proc -private acs::test::auth::registration::register_impl {} { Register the 'acs_testing' implementation of the 'auth_registration' service contract. We just implement "Register" new and reuse the implementations for "GetElements" and "GetParameters" @return impl_id of the newly created implementation. } { ns_log notice "create registration::register_impl sc" set spec { contract_name "auth_registration" owner "acs-authentication" name "acs_testing" pretty_name "ACS Automated Testing" aliases { GetElements auth::local::registration::GetElements Register acs::test::auth::registration::Register GetParameters auth::local::registration::GetParameters } } return [acs_sc::impl::new_from_spec -spec $spec] } d_proc -private acs::test::auth::registration::Register { parameters username authority_id first_names last_name screen_name email url password secret_question secret_answer } { Implements the "Register" operation of the auth_registration service contract for the acs testing authority. This is in essence a simplified version of the "local" authority without the notifications and confirmation options. } { set result { creation_status "ok" creation_message {} element_messages {} account_status "ok" account_message {} generated_pwd_p 0 } dict set result password $password # # Set user's password # set user_id [acs_user::get_by_username -authority_id $authority_id -username $username] ad_change_password $user_id $password return $result } # Local variables: # mode: tcl # tcl-indent-level: 4 # indent-tabs-mode: nil # End: