? 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) {
