? README_KOUMBIT.txt ? openid-admin-simpler.diff ? openid-admin.diff ? openid_cleanurls.diff ? openid_url.diff Index: openid_provider.module =================================================================== RCS file: /cvs/drupal-contrib/contributions/modules/openid_provider/openid_provider.module,v retrieving revision 1.3 diff -u -r1.3 openid_provider.module --- openid_provider.module 7 Sep 2008 03:51:58 -0000 1.3 +++ openid_provider.module 7 Mar 2009 22:02:40 -0000 @@ -114,6 +114,89 @@ } /** + * Implementation of hook_pathauto() + * + * This provides support for the pathauto module, which allows users to modify + * the URL mappings for the OpenID URL. + */ +function openid_provider_pathauto($op) { + switch ($op) { + case 'settings': + $settings = user_pathauto($op); + $settings->module = 'openid_provider'; + $settings->groupheader = t('OpenID URL settings'); + $settings->patterndescr = t('OpenID URL pattern'); + $settings->patterndefault = openid_provider_user_url('[user-raw]'); + $tmp = openid_provider_token_list('openid_provider'); + foreach ($tmp['openid_provider'] as $token => $trans) { + $settings->placeholders['['. $token .']'] = $trans; + } + return $settings; + default: + break; + } +} + +/** + * Bulk generate aliases for all OpenID URLs without aliases. + * + * Taken almost verbatim from user_pathauto_bulkupdate(). + */ +function openid_provider_pathauto_bulkupdate() { + $query = "SELECT uid, name, src, dst FROM {users} LEFT JOIN {url_alias} ON CONCAT('user/', CAST(uid AS CHAR)) = src WHERE uid > 0 AND src IS NULL"; + $result = db_query_range($query, 0, variable_get('pathauto_max_bulk_update', 50)); + + $count = 0; + $placeholders = array(); + while ($user = db_fetch_object($result)) { + $placeholders = pathauto_get_placeholders('openid_provider', $user); + $src = openid_provider_user_url($user->uid); + if (pathauto_create_alias('openid_provider', 'bulkupdate', $placeholders, $src, $user->uid)) { + $count++; + } + } + + drupal_set_message(format_plural($count, + 'Bulk generation of users completed, one alias generated.', + 'Bulk generation of users completed, @count aliases generated.')); +} + +/** + * Implement hook_token_list + * + * We basically redeclare a subset of the user_token_list() + */ +function openid_provider_token_list($type = 'all') { + $tokens = array(); + if ($type == 'openid_provider' || $type == 'all') { + $tokens['openid_provider'] = array('user' => t("User's name"), + 'user-raw' => t("User's unfiltered name. WARNING - raw user input."), + 'uid' => t("User's ID"),); + } + return $tokens; +} + +/** + * Interpret the tokens, implementation of hook_token_values() + * + * This just makes user_token_values() do the real work. + */ +function openid_provider_token_values($type, $object = NULL, $options = array()) { + if ($type == 'openid_provider') { + return user_token_values('user', $object, $options); + } +} + +/** + * Implementation of hook_path_alias_types() + * + * This exposes the patterns of OpenID URL paths. + */ +function openid_provider_path_alias_types() { + return array(openid_provider_user_url('%') => t('OpenID URLs')); +} + +/** * Return a XRDS for this server to discover it based on the root url */ function openid_provider_xrds($account = NULL) {