- debug.c_purple_debug_info("account", "%s", "request-authorize\n")
- if account_cbs.has_key("request-authorize"):
- (<object> account_cbs["request-authorize"])("request-authorize: TODO")
+ cdef connection.PurpleConnection *gc = \
+ account.purple_account_get_connection(c_account)
+
+ debug.purple_debug_info("account", "%s", "request-authorize\n")
+
+ global c_request_authorize_authorize_cb
+ global c_request_authorize_deny_cb
+ global c_request_authorize_user_data
+
+ c_request_authorize_authorize_cb = authorize_cb
+ c_request_authorize_deny_cb = deny_cb
+ c_request_authorize_user_data = user_data
+
+ if alias:
+ remote_alias = <char *> alias
+ else:
+ remote_alias = None
+
+ if id:
+ username = <char *> id
+ elif connection.purple_connection_get_display_name(gc) != NULL:
+ username = connection.purple_connection_get_display_name(gc)
+ else:
+ username = account.purple_account_get_username(c_account)
+
+ protocol_id = account.purple_account_get_protocol_id(c_account)
+
+ if c_message:
+ message = <char *> c_message
+ else:
+ message = None
+
+ if "request-authorize" in account_cbs:
+ (<object> account_cbs["request-authorize"])( \
+ (<char *> remote_user, remote_alias), \
+ (username, protocol_id), \
+ message, on_list, \
+ call_authorize_cb, call_deny_cb)