ad_partner_verify_cookie { redirect_if_not_logged_in "0" }What it does:
Makes sure the user's appropriate cookie is set and if not, redirects to the same page to set the cookie. A special flag is set so we avoid an infinite loop when someone's cookies are offDefined in: /web/philip/tcl/ad-partner-defs.tcl
Source code:
# ns_log Notice "ad_partner_verify_cookie: starting" set return_url "[ns_conn url]?c=1" set query [export_ns_set_vars url] if { ![empty_string_p $query] } { append return_url "&$query" } set user_id [ad_get_user_id] # ns_log Notice "USER ID: $user_id" if { $user_id == 0 } { # We wouldn't know how to set the cookie without a user id! if { $redirect_if_not_logged_in } { ad_returnredirect /register/index?[export_url_vars return_url] ad_script_abort } else { return } } set partner_cookie [ad_partner_from_cookie] # ns_log NOTICE "COOKIE: $partner_cookie" if { [empty_string_p $partner_cookie] || [string compare $partner_cookie [ad_parameter CookieDefault partner]] == 0 || [string compare $partner_cookie "expired"] == 0 } { set form_setid [ns_getform] if { [empty_string_p $form_setid] } { set c 0 } else { set c [ns_set get $form_setid c] } if { $c == 1 } { ad_return_error "Your cookies are turned off" "You must turn on your cookies to use this site. Sorry for the inconvenience" ad_script_abort } set db [ns_db gethandle subquery] set cookie [ad_partner_cookie_from_user_id $db $user_id] ns_db releasehandle $db ad_returnredirect "/$cookie$return_url" ad_script_abort }