auth::get_local_account (private)
auth::get_local_account [ -return_url return_url ] -username username \ [ -authority_id authority_id ] [ -email email ] \ [ -first_names first_names ] [ -last_name last_name ]
Defined in packages/acs-authentication/tcl/authentication-procs.tcl
Get the user_id of the local account for the given username and domain combination.
- Switches:
- -return_url (optional)
- -username (required)
- The username to find
- -authority_id (optional)
- The ID of the authority to ask to verify the user. Leave blank for local authority.
- -email (optional)
- -first_names (optional)
- -last_name (optional)
- Partial Call Graph (max 5 caller/called nodes):
- Testcases:
- No testcase defined.
Source code: array set auth_info [list] # Will return: # auth_info(account_status) # auth_info(account_message) # auth_info(user_id) if { $authority_id eq "" } { set authority_id [auth::authority::local] } #ns_log notice "auth::get_local_account authority_id = '${authority_id}' local = [auth::authority::local]" ad_try { acs_user::get -authority_id $authority_id -username $username -array user set account_found_p 1 } on error {errorMsg} { set account_found_p 0 } if { !$account_found_p } { # Try for an on-demand sync array set info_result [auth::user_info::GetUserInfo -authority_id $authority_id -username $username] if {$info_result(info_status) eq "ok"} { array set user $info_result(user_info) if {$email ne "" && (![info exists user(email)] || $user(email) eq "") } { set user(email) $email } if {$first_names ne "" && (![info exists user(first_names)] || $user(first_names) eq "") } { set user(first_names) $first_names } if {$last_name ne "" && (![info exists user(last_name)] || $user(last_name) eq "") } { set user(last_name) $last_name } array set creation_info [auth::create_local_account -authority_id $authority_id -username $username -array user] if {$creation_info(creation_status) ne "ok"} { set auth_info(account_status) "closed" # Used to get help contact info auth::authority::get -authority_id $authority_id -array authority set system_name [ad_system_name] set auth_info(account_message) "You have successfully authenticated, but we were unable to create an account for you on $system_name. " set auth_info(element_messages) $creation_info(element_messages) append auth_info(account_message) "The error was: $creation_info(element_messages). Please contact the system administrator." if { $authority(help_contact_text) ne "" } { append auth_info(account_message) "<p><h3>Help Information</h3>" append auth_info(account_message) [ad_html_text_convert -from $authority(help_contact_text_format) -to "text/html" -- $authority(help_contact_text)] } return [array get auth_info] } } else { # Local user account doesn't exist set auth_info(account_status) "closed" # Used to get help contact info auth::authority::get -authority_id $authority_id -array authority set system_name [ad_system_name] set auth_info(account_message) [_ acs-subsite.Success_but_no_account_yet] if { $authority(help_contact_text) ne "" } { append auth_info(account_message) [_ acs-subsite.Help_information] append auth_info(account_message) [ad_html_text_convert -from $authority(help_contact_text_format) -to "text/html" -- $authority(help_contact_text)] } return [array get auth_info] } } set user_id [acs_user::get_by_username -authority_id $authority_id -username $username] set user_info [acs_user::get_user_info -user_id $user_id] set party_info [party::get -party_id $user_id] # Check local account status array set auth_info [auth::check_local_account_status -user_id $user_id -authority_id [dict get $user_info authority_id] -member_state [dict get $user_info member_state] -email [dict get $party_info email] -email_verified_p [dict get $user_info email_verified_p] -screen_name [dict get $user_info screen_name] -password_age_days [dict get $user_info password_age_days] -return_url $return_url] # Return user_id set auth_info(user_id) $user_id return [array get auth_info]Generic XQL file: packages/acs-authentication/tcl/authentication-procs.xql
PostgreSQL XQL file: packages/acs-authentication/tcl/authentication-procs-postgresql.xql
Oracle XQL file: packages/acs-authentication/tcl/authentication-procs-oracle.xql