| 9 |
/** |
/** |
| 10 |
* Implementation of hook_help(). |
* Implementation of hook_help(). |
| 11 |
*/ |
*/ |
| 12 |
function og_reg_keys_help($section) { |
function og_reg_keys_help($path, $arg) { |
| 13 |
global $user; |
global $user; |
| 14 |
switch ($section) { |
switch ($path) { |
| 15 |
case 'admin/og/reg-keys-settings': |
case 'admin/og/reg-keys-settings': |
| 16 |
$output = '<p>'. t('Settings for Organic Groups registration keys. A user will be auto-approved as member of a group set to (<strong>closed</strong> or <strong>moderated</strong>) when they supply a group key. Users may also visit the "join a group" page to join a group using a key.'); |
$output = '<p>'. t('Settings for Organic Groups registration keys. A user will be auto-approved as member of a group set to <strong>closed</strong> or <strong>moderated</strong> when they supply a group key. Users may also visit the !join page to join a group using a key.', array('!join' => l('join a group', 'og/reg-key-join'))); |
| 17 |
$output .= '</p><p>'. t('You may combine this feature with the usual use of groups in the registration form.') .'</p>'; |
$output .= '</p><p>'. t('You may combine this feature with the usual use of groups in the registration form.') .'</p>'; |
| 18 |
return $output; |
return $output; |
| 19 |
break; |
break; |
| 20 |
case 'og/use-key': |
case 'og/reg-key-join': |
| 21 |
$output = '<p>'. t('You may check a group key by entering it below.'); |
$output = '<p>'. t('You may check a group key by entering it below.'); |
| 22 |
if ($user->uid) { |
if ($user->uid) { |
| 23 |
$output .= ' '. t('You may also join a group by submitting its key.'); |
$output .= ' '. t('You may also join a group by submitting its key.'); |
| 30 |
/** |
/** |
| 31 |
* Implementation of hook_menu(). |
* Implementation of hook_menu(). |
| 32 |
*/ |
*/ |
| 33 |
function og_reg_keys_menu($may_cache) { |
function og_reg_keys_menu() { |
| 34 |
$items = array(); |
$items = array(); |
| 35 |
|
|
| 36 |
if ($may_cache) { |
$items['og/reg-key-join'] = array( |
| 37 |
$items[] = array( |
'title' => 'Use registration key', |
| 38 |
'path' => 'og/reg-key-join', |
'page callback' => 'drupal_get_form', |
| 39 |
'title' => t('Use registration key'), |
'page arguments' => array('og_reg_keys_join'), |
| 40 |
'callback' => 'drupal_get_form', |
'weight' => 10, |
| 41 |
'callback arguments' => array('og_reg_keys_join'), |
'type' => MENU_LOCAL_TASK, |
| 42 |
'weight' => 10, |
'access callback' => 'user_is_logged_in', |
| 43 |
'type' => MENU_LOCAL_TASK, |
); |
| 44 |
); |
$items['admin/og/reg-keys-settings'] = array( |
| 45 |
$items[] = array( |
'title' => 'OG Reg Keys Settings', |
| 46 |
'path' => 'admin/og/reg-keys-settings', |
'description' => 'Configure group registration key settings.', |
| 47 |
'title' => t('OG Reg Keys Settings'), |
'page callback' => 'drupal_get_form', |
| 48 |
'description' => t('Configure group registration key settings.'), |
'page arguments' => array('og_reg_keys_settings'), |
| 49 |
'callback' => 'drupal_get_form', |
'access callback' => 'user_access', |
| 50 |
'callback arguments' => array('og_reg_keys_settings'), |
'access arguments' => array('administer organic groups'), |
| 51 |
); |
); |
| 52 |
$items[] = array( |
$items['admin/og/reg-keys-edit'] = array( |
| 53 |
'path' => 'admin/og/reg-keys-edit', |
'title' => 'Edit Registration Keys', |
| 54 |
'title' => t('Edit Registration Keys'), |
'description' => 'Edit group registration keys.', |
| 55 |
'description' => t('Edit group registration keys.'), |
'page callback' => 'og_reg_keys_edit_reg_keys', |
| 56 |
'callback' => 'og_reg_keys_edit_reg_keys', |
'page arguments' => array(), |
| 57 |
'callback arguments' => array(), |
'access callback' => 'user_access', |
| 58 |
'access' => user_access('administer organic groups'), |
'access arguments' => array('administer organic groups'), |
| 59 |
); |
); |
| 60 |
} |
|
| 61 |
return $items; |
return $items; |
| 62 |
} |
} |
| 63 |
|
|
| 64 |
/** |
/** |
| 65 |
* Implementation of hook_form_alter(). |
* Implementation of hook_form_$form-id_alter(). |
| 66 |
*/ |
*/ |
| 67 |
function og_reg_keys_form_alter($form_id, &$form) { |
function og_reg_keys_form_views_filters_alter(&$form, &$form_state) { |
| 68 |
if ($form_id == 'views_filters') { |
if ($form['view']['#value']->name == 'og_reg_keys_edit') { |
| 69 |
if ($form['view']['#value']->name == 'og_reg_keys_edit') { |
// need to push the return value as setting this in the view overrides the access control |
| 70 |
// need to push the return value as setting this in the view overrides the access control |
$form['#action'] = url('admin/og/reg-keys-edit'); |
|
$form['#action'] = url('admin/og/reg-keys-edit'); |
|
|
} |
|
| 71 |
} |
} |
| 72 |
else if ($form_id == 'og_invite_form') { |
} |
| 73 |
|
|
| 74 |
|
/** |
| 75 |
|
* Implementation of hook_form_alter(). |
| 76 |
|
*/ |
| 77 |
|
function og_reg_keys_form_alter(&$form, &$form_state, $form_id) { |
| 78 |
|
if ($form_id == 'og_invite_form') { |
| 79 |
$key = og_reg_keys_get_key($form['gid']['#value']); |
$key = og_reg_keys_get_key($form['gid']['#value']); |
| 80 |
if (!empty($key)) { |
if (!empty($key)) { |
| 81 |
$form['pmessage']['#default_value'] .= strtr(_og_reg_keys_message(), array('%reg_key' => $key)). "\n\n"; |
$form['pmessage']['#default_value'] .= strtr(_og_reg_keys_message(), array('%reg_key' => $key)). "\n\n"; |
| 82 |
} |
} |
| 83 |
} |
} |
| 84 |
else if (og_is_group_type($form['type']['#value'])) { |
else if (og_is_group_type($form['type']['#value'])) { |
| 85 |
$result = db_query("SELECT (code) FROM {og_reg_keys} WHERE nid = %d", $form['nid']['#value']); |
$result = db_query("SELECT (code) FROM {og_reg_keys} WHERE nid = %d", $form['nid']['#value']); |
| 86 |
if ($result) { |
if ($result) { |
| 94 |
'#type' => 'textfield', |
'#type' => 'textfield', |
| 95 |
'#title' => t('Group registration key'), |
'#title' => t('Group registration key'), |
| 96 |
'#default_value' => $value, |
'#default_value' => $value, |
| 97 |
'#description' => t('Set this registration key if you want to require users to enter this registration key to join the group when group mode is set to <strong>closed</strong> or <strong>moderated</strong>. Leave this field blank if you do not want to require a registration key for users to join this group.'), |
'#description' => t('Enter a registration key if you want to allow users to enter a key to join this group. Leave this field blank if you do not want to allow users to join this group with a registration key.'), |
| 98 |
'#size' => 64, |
'#size' => 64, |
| 99 |
); |
); |
| 100 |
} |
} |
| 110 |
|
|
| 111 |
switch ($op) { |
switch ($op) { |
| 112 |
case 'validate': |
case 'validate': |
| 113 |
if (isset($edit['og_reg_key'])) { //only present during registration |
// Reg key is only present during registration |
| 114 |
|
if (isset($edit['og_reg_key'])) { |
| 115 |
if ($edit['og_reg_key'] != '') { |
if ($edit['og_reg_key'] != '') { |
| 116 |
if (!og_reg_keys_valid_key($edit['og_reg_key'])) { |
if (!og_reg_keys_valid_key($edit['og_reg_key'])) { |
| 117 |
form_set_error('og_reg_key', t('Not a valid group registration key.')); |
form_set_error('og_reg_key', t('Not a valid group registration key.')); |
| 120 |
} |
} |
| 121 |
break; |
break; |
| 122 |
case 'insert': |
case 'insert': |
| 123 |
if (isset($edit['og_reg_key']) && og_reg_keys_valid_key($edit['og_reg_key'])) { //only present during registration |
// Reg key is only present during registration |
| 124 |
|
if (isset($edit['og_reg_key']) && og_reg_keys_valid_key($edit['og_reg_key'])) { |
| 125 |
$gid = og_reg_keys_get_gid($edit['og_reg_key']); |
$gid = og_reg_keys_get_gid($edit['og_reg_key']); |
| 126 |
$return = og_save_subscription($gid, $account->uid, array('is_active' => 1)); |
$return = og_save_subscription($gid, $account->uid, array('is_active' => 1)); |
| 127 |
if (!empty($return['message'])) { |
if (!empty($return['message'])) { |
| 185 |
db_query("DELETE FROM {og_reg_keys} WHERE nid = %d", $node->nid); // remove the key |
db_query("DELETE FROM {og_reg_keys} WHERE nid = %d", $node->nid); // remove the key |
| 186 |
} |
} |
| 187 |
} |
} |
|
break; |
|
| 188 |
break; |
break; |
| 189 |
case 'delete': // node deletion |
case 'delete': // node deletion |
| 190 |
db_query('DELETE FROM {og_reg_keys} WHERE nid = %d', $node->nid); |
db_query('DELETE FROM {og_reg_keys} WHERE nid = %d', $node->nid); |
| 193 |
} |
} |
| 194 |
} |
} |
| 195 |
|
|
| 196 |
|
/** |
| 197 |
|
* Implementation of hook_views_api(). |
|
/** |
|
|
* Implementation of hook_views_tables(). (views module) |
|
|
* Provides relational information to the views module |
|
| 198 |
*/ |
*/ |
| 199 |
function og_reg_keys_views_tables() { |
function og_reg_keys_views_api() { |
| 200 |
return array( |
return array( |
| 201 |
'og_reg_keys' => array( |
'api' => 2, |
|
'name' => 'og_reg_keys', |
|
|
'join' => array( |
|
|
'left' => array( |
|
|
'table' => 'node', |
|
|
'field' => 'nid', |
|
|
), |
|
|
'right' => array( |
|
|
'field' => 'nid', |
|
|
), |
|
|
), |
|
|
'fields' => array( |
|
|
'code' => array( |
|
|
'name' => t('Og_reg_keys: Key'), |
|
|
), |
|
|
'editlink' => array( |
|
|
'name' => t('Og_reg_keys: Group: Edit Link'), |
|
|
'sortable' => FALSE, |
|
|
'notafield' => TRUE, |
|
|
'handler' => 'og_reg_keys_handler_field_node_edit', |
|
|
), |
|
|
), |
|
|
), |
|
| 202 |
); |
); |
| 203 |
} |
} |
| 204 |
|
|
| 205 |
/** |
/** |
|
* Implementation of hook_views_default_views(). (views_module) |
|
|
* Provides pre-defined views for this module |
|
|
*/ |
|
|
function og_reg_keys_views_default_views() { |
|
|
$views = array(); |
|
|
|
|
|
$view = new stdClass(); |
|
|
$view->name = 'og_reg_keys_edit'; |
|
|
$view->description = t('Display Group Registration Keys'); |
|
|
$view->access = array(0 => '2'); |
|
|
$view->view_args_php = ''; |
|
|
$view->page = TRUE; |
|
|
$view->page_title = t('Edit Registration Keys'); |
|
|
$view->page_header = t('This page will give you a concise overview of each groups registration key. You can click on "Edit Reg Key" which will take you to the editing screen for the respective group.'); |
|
|
$view->page_header_format = '1'; |
|
|
$view->page_footer = ''; |
|
|
$view->page_footer_format = '1'; |
|
|
$view->page_empty = t('No groups'); |
|
|
$view->page_empty_format = '1'; |
|
|
$view->page_type = 'table'; |
|
|
$view->url = ''; |
|
|
$view->use_pager = TRUE; |
|
|
$view->nodes_per_page = '50'; |
|
|
$view->sort = array( |
|
|
); |
|
|
$view->argument = array( |
|
|
array( |
|
|
'type' => 'rss_feed', |
|
|
'argdefault' => '2', |
|
|
'title' => '', |
|
|
'options' => '', |
|
|
'wildcard' => '', |
|
|
'wildcard_substitution' => '', |
|
|
), |
|
|
); |
|
|
$view->field = array( |
|
|
array( |
|
|
'tablename' => 'node', |
|
|
'field' => 'title', |
|
|
'label' => t('Group'), |
|
|
'handler' => 'views_handler_field_nodelink', |
|
|
'sortable' => '1', |
|
|
'defaultsort' => 'ASC', |
|
|
'options' => 'link', |
|
|
), |
|
|
array( |
|
|
'tablename' => 'users', |
|
|
'field' => 'name', |
|
|
'label' => t('Manager'), |
|
|
), |
|
|
array( |
|
|
'tablename' => 'og_reg_keys', |
|
|
'field' => 'code', |
|
|
'label' => t('Registration Key'), |
|
|
), |
|
|
array( |
|
|
'tablename' => 'og_reg_keys', |
|
|
'field' => 'editlink', |
|
|
'label' => t('Edit Registration Key'), |
|
|
), |
|
|
); |
|
|
$view->filter = array( |
|
|
array( |
|
|
'tablename' => 'og_views', |
|
|
'field' => 'og_type', |
|
|
'operator' => '=', |
|
|
'options' => '', |
|
|
'value' => '0', |
|
|
), |
|
|
array( |
|
|
'tablename' => 'node', |
|
|
'field' => 'title', |
|
|
'operator' => 'contains', |
|
|
'options' => '', |
|
|
'value' => '\'\'', |
|
|
), |
|
|
); |
|
|
$view->exposed_filter = array( |
|
|
array( |
|
|
'tablename' => 'node', |
|
|
'field' => 'title', |
|
|
'label' => t('Search for a group by name'), |
|
|
'optional' => '1', |
|
|
'is_default' => '0', |
|
|
'operator' => '1', |
|
|
'single' => '0', |
|
|
), |
|
|
); |
|
|
$view->requires = array(node, users, og_reg_keys, og_views); |
|
|
$views[$view->name] = $view; |
|
|
|
|
|
return $views; |
|
|
} |
|
|
|
|
|
/** |
|
|
* Handler used to create dynamic field 'editlink' as defined in hook_views_tables |
|
|
*/ |
|
|
function og_reg_keys_handler_field_node_edit($fieldinfo, $fielddata, $value, $data) { |
|
|
return l(t('Edit Reg Key'), "node/$data->nid/edit"); |
|
|
} |
|
|
|
|
|
/** |
|
| 206 |
* Menu callback for 'admin/og/reg-keys-edit' |
* Menu callback for 'admin/og/reg-keys-edit' |
| 207 |
*/ |
*/ |
| 208 |
function og_reg_keys_edit_reg_keys() { |
function og_reg_keys_edit_reg_keys() { |
| 209 |
if (user_access('administer organic groups')) { |
if (user_access('administer organic groups')) { |
| 210 |
$view = views_get_view('og_reg_keys_edit'); |
return views_embed_view('og_reg_keys_edit', 'page'); |
|
return views_build_view('page', $view, array(), FALSE); |
|
| 211 |
} |
} |
| 212 |
else { |
else { |
| 213 |
drupal_access_denied(); |
drupal_access_denied(); |
| 252 |
/** |
/** |
| 253 |
* Validation routine for form submission of 'admin/og/reg-keys-settings' |
* Validation routine for form submission of 'admin/og/reg-keys-settings' |
| 254 |
*/ |
*/ |
| 255 |
function og_reg_keys_settings_validate($form_id, $form_values, $form) { |
function og_reg_keys_settings_validate($form, &$form_state) { |
| 256 |
$op = isset($_POST['op']) ? $_POST['op'] : ''; |
$op = isset($_POST['op']) ? $_POST['op'] : ''; |
| 257 |
|
|
| 258 |
if ($op == t('Save configuration') && !strstr($form_values['og_reg_keys_message'], '%reg_key')) { |
if ($op == t('Save configuration') && !strstr($form_state['values']['og_reg_keys_message'], '%reg_key')) { |
| 259 |
form_set_error('og_reg_keys_message', t("You must include in your message the token '%reg_key'")); |
form_set_error('og_reg_keys_message', t("You must include in your message the token '%reg_key'")); |
| 260 |
} |
} |
| 261 |
} |
} |
| 263 |
|
|
| 264 |
/** |
/** |
| 265 |
* Menu callback function for "check group" and "join a group" page. |
* Menu callback function for "check group" and "join a group" page. |
| 266 |
* 'join/reg-key' this is also used by og_reg_keys_contents() |
* 'og/reg-key-join' this is also used by og_reg_keys_contents() |
| 267 |
*/ |
*/ |
| 268 |
function og_reg_keys_join($size = 64) { |
function og_reg_keys_join($size = 64) { |
| 269 |
global $user; |
global $user; |
| 273 |
'#required' => TRUE, |
'#required' => TRUE, |
| 274 |
'#size' => $size, |
'#size' => $size, |
| 275 |
); |
); |
| 276 |
|
|
| 277 |
|
$form['#after_build'] = array('og_reg_keys_add_preview'); |
| 278 |
|
|
| 279 |
$form['#after_build'] = array('og_reg_keys_add_preview'); |
$form['preview'] = array( |
| 280 |
|
'#type' => 'button', |
| 281 |
$form['preview'] = array('#type' => 'button', '#value' => t('Check key')); |
'#value' => t('Check key'), |
| 282 |
|
); |
| 283 |
|
|
| 284 |
if ($user->uid > 0) { |
if ($user->uid > 0) { |
| 285 |
$form['submit'] = array('#type' => 'submit', '#value' => t('Join') ); |
$form['submit'] = array( |
| 286 |
|
'#type' => 'submit', |
| 287 |
|
'#value' => t('Join'), |
| 288 |
|
); |
| 289 |
} |
} |
| 290 |
return $form; |
return $form; |
|
|
|
| 291 |
} |
} |
| 292 |
|
|
| 293 |
/** |
/** |
| 294 |
* Validation routine for 'join/reg-key' and the block submitted reg-key form |
* Validation routine for 'og/reg-key-join' and the block submitted reg-key form |
| 295 |
*/ |
*/ |
| 296 |
function og_reg_keys_join_validate($form_id, $form_values, $form) { |
function og_reg_keys_join_validate($form, &$form_state) { |
| 297 |
$result = db_query("SELECT (nid) FROM {og_reg_keys} WHERE code = '%s'", $form_values['og_reg_key']); |
$result = db_query("SELECT (nid) FROM {og_reg_keys} WHERE code = '%s'", $form_state['values']['og_reg_key']); |
| 298 |
$r = db_fetch_array($result); |
$r = db_fetch_array($result); |
| 299 |
if (!$r) { |
if (!$r) { |
| 300 |
form_set_error('og_reg_key', t('This is not a valid group registration key.')); |
form_set_error('og_reg_key', t('This is not a valid group registration key.')); |
| 302 |
} |
} |
| 303 |
|
|
| 304 |
/** |
/** |
| 305 |
* Routine to handle form submission for 'join/reg-key' and the block submitted reg-key form |
* Routine to handle form submission for 'og/reg-key-join' and the block submitted reg-key form |
| 306 |
*/ |
*/ |
| 307 |
function og_reg_keys_join_submit($form_id, $form_values) { |
function og_reg_keys_join_submit($form, &$form_state) { |
| 308 |
global $user; |
global $user; |
| 309 |
if ($user->uid) { |
if ($user->uid) { |
| 310 |
|
$gid = og_reg_keys_get_gid($form_state['values']['og_reg_key']); |
| 311 |
|
|
| 312 |
$gid = og_reg_keys_get_gid($form_values['og_reg_key']); |
// Use og_save_subscription() to get around og_subscribe_user()'s |
| 313 |
|
// selectivity checks. |
|
// use og_save_subscription() rather than og_subscribe_user to avoid ACLs |
|
| 314 |
og_save_subscription($gid, $user->uid, array('is_active' => 1)); |
og_save_subscription($gid, $user->uid, array('is_active' => 1)); |
| 315 |
|
|
| 316 |
// Existing user so preserve roles as user_save is destructive |
// Existing user so preserve roles as user_save is destructive |
| 321 |
// to menu items secured by their newly granted role. |
// to menu items secured by their newly granted role. |
| 322 |
cache_clear_all($user->uid .':', 'cache_menu', TRUE); |
cache_clear_all($user->uid .':', 'cache_menu', TRUE); |
| 323 |
|
|
| 324 |
|
// Load the group node to get the name of the group. |
| 325 |
|
$group = node_load(array('nid' => $gid)); |
| 326 |
|
drupal_set_message(t('You are now a member of !group_name.', array('!group_name' => $group->title))); |
| 327 |
drupal_goto('node/'. $gid); |
drupal_goto('node/'. $gid); |
| 328 |
} |
} |
| 329 |
else { |
else { |
| 335 |
* Routine used to build preview info for what would happen if the user submitted the form |
* Routine used to build preview info for what would happen if the user submitted the form |
| 336 |
* with og_reg_key present |
* with og_reg_key present |
| 337 |
*/ |
*/ |
| 338 |
function og_reg_keys_add_preview($form) { |
function og_reg_keys_add_preview($form, &$form_state) { |
| 339 |
global $form_values; |
$op = isset($form['#post']['op']) ? $form['#post']['op'] : ''; |
|
$op = isset($_POST['op']) ? $_POST['op'] : ''; |
|
| 340 |
if ($op == t('Check key')) { |
if ($op == t('Check key')) { |
| 341 |
drupal_validate_form($form['form_id']['#value'], $form); |
drupal_validate_form($form['form_id']['#value'], $form, $form_state); |
| 342 |
if (!form_get_errors()) { |
if (!form_get_errors()) { |
| 343 |
$gid = og_reg_keys_get_gid($form['og_reg_key']['#value']); |
$gid = og_reg_keys_get_gid($form['og_reg_key']['#value']); |
| 344 |
$node = node_load(array('nid' => $gid)); // node_load doesn't handle integers properly :-( |
$node = node_load(array('nid' => $gid)); |
| 345 |
$preview = theme('og_reg_keys_join_preview', $node); |
$preview = theme('og_reg_keys_join_preview', $node); |
| 346 |
$form['#prefix'] = isset($form['#prefix']) ? $preview . $form['#prefix'] : $preview; |
$form['#prefix'] = isset($form['#prefix']) ? $preview . $form['#prefix'] : $preview; |
| 347 |
} |
} |
| 362 |
return $output; |
return $output; |
| 363 |
} |
} |
| 364 |
|
|
| 365 |
|
/** |
| 366 |
|
* Implementation of hook_theme(). |
| 367 |
|
*/ |
| 368 |
|
function og_reg_keys_theme() { |
| 369 |
|
return array( |
| 370 |
|
'og_reg_keys_join_preview' => array( |
| 371 |
|
'arguments' => array('node' => NULL), |
| 372 |
|
), |
| 373 |
|
); |
| 374 |
|
} |
| 375 |
|
|
| 376 |
/** |
/** |
| 377 |
* Implementation of hook_block(). |
* Implementation of hook_block(). |
| 499 |
/** |
/** |
| 500 |
* Validation routine for new user registration form |
* Validation routine for new user registration form |
| 501 |
*/ |
*/ |
| 502 |
function og_reg_keys_register_validate($form_id, $form_values, $form) { |
function og_reg_keys_register_validate($form, &$form_state) { |
| 503 |
$error = _og_reg_keys_validate_user($form_values['name'], $form_values['mail']); |
$error = _og_reg_keys_validate_user($form_state['values']['name'], $form_state['values']['mail']); |
| 504 |
|
|
| 505 |
if (!empty($error)) { |
if (!empty($error)) { |
| 506 |
foreach ($error as $errkey => $errval) { |
foreach ($error as $errkey => $errval) { |
| 508 |
} |
} |
| 509 |
} |
} |
| 510 |
|
|
| 511 |
if (!og_reg_keys_valid_key($form_values['og_reg_key'])) { |
if (!og_reg_keys_valid_key($form_state['values']['og_reg_key'])) { |
| 512 |
form_set_error('og_reg_key', t('This is not a valid group registration key, or group membership is by invite only.')); |
form_set_error('og_reg_key', t('This is not a valid group registration key, or group membership is by invite only.')); |
| 513 |
} |
} |
| 514 |
} |
} |
| 516 |
/** |
/** |
| 517 |
* Routine to submit new user registration form. This process creates new users, and adds og subscriptions |
* Routine to submit new user registration form. This process creates new users, and adds og subscriptions |
| 518 |
*/ |
*/ |
| 519 |
function og_reg_keys_register_submit($form_id, $form_values) { |
function og_reg_keys_register_submit($form, &$form_state) { |
| 520 |
watchdog('user', t('New user: %name %email.', array('%name' => $u['name'], '%email' => '<'. $u['mail'] .'>'))); |
watchdog('user', 'New user: %name %email.', array('%name' => $form_state['values']['name'], '%email' => '<'. $form_state['values']['mail'] .'>')); |
| 521 |
|
|
| 522 |
user_save('', array('name' => $form_values['name'], |
user_save('', array('name' => $form_state['values']['name'], |
| 523 |
'pass' => $form_values['pass'], |
'pass' => $form_state['values']['pass'], |
| 524 |
'init' => $form_values['mail'], |
'init' => $form_state['values']['mail'], |
| 525 |
'mail' => $form_values['mail'], |
'mail' => $form_state['values']['mail'], |
| 526 |
'roles' => array(variable_get('og_reg_keys_role', DRUPAL_AUTHENTICATED_RID) => 1), |
'roles' => array(variable_get('og_reg_keys_role', DRUPAL_AUTHENTICATED_RID) => 1), |
| 527 |
'status' => 1)); |
'status' => 1)); |
| 528 |
$user = user_authenticate($form_values['name'], $form_values['pass']); |
$user = user_authenticate($form_state['values']); |
| 529 |
|
|
| 530 |
$gid = og_reg_keys_get_gid($form_values['og_reg_key']); |
$gid = og_reg_keys_get_gid($form_state['values']['og_reg_key']); |
| 531 |
|
|
| 532 |
// Use og_save_subscription() rather than og_subscribe_user to avoid ACLs |
// Use og_save_subscription() to get around og_subscribe_user()'s |
| 533 |
|
// selectivity checks. |
| 534 |
og_save_subscription($gid, $user->uid, array('is_active' => 1)); |
og_save_subscription($gid, $user->uid, array('is_active' => 1)); |
| 535 |
|
|
| 536 |
|
// Load the group node to get the name of the group. |
| 537 |
|
$group = node_load(array('nid' => $gid)); |
| 538 |
|
drupal_set_message(t('You are now a member of !group_name.', array('!group_name' => $group->title))); |
| 539 |
drupal_goto('node/'. $gid); |
drupal_goto('node/'. $gid); |
| 540 |
} |
} |
| 541 |
|
|
| 642 |
if ($err = user_validate_name($name)) { |
if ($err = user_validate_name($name)) { |
| 643 |
$error['name'] = $err; |
$error['name'] = $err; |
| 644 |
} |
} |
| 645 |
else if (db_num_rows(db_query('SELECT uid FROM {users} WHERE LOWER(name) = LOWER("%s")', $name)) > 0) { |
else if (db_result(db_query('SELECT COUNT(*) FROM {users} WHERE LOWER(name) = LOWER("%s")', $name)) > 0) { |
| 646 |
$error['name'] = t('The name %name is already taken.', array('%name' => $name)); |
$error['name'] = t('The name %name is already taken.', array('%name' => $name)); |
| 647 |
} |
} |
| 648 |
else if (drupal_is_denied('user', $name)) { |
else if (drupal_is_denied('user', $name)) { |
| 655 |
if ($err = user_validate_mail($mail)) { |
if ($err = user_validate_mail($mail)) { |
| 656 |
$error['mail'] = $err; |
$error['mail'] = $err; |
| 657 |
} |
} |
| 658 |
else if (db_num_rows(db_query('SELECT uid FROM {users} WHERE LOWER(mail) = LOWER("%s")', $mail)) > 0) { |
else if (db_result(db_query('SELECT COUNT(*) FROM {users} WHERE LOWER(mail) = LOWER("%s")', $mail)) > 0) { |
| 659 |
$error['mail'] = t('The e-mail address %email is already taken.', array('%email' => $mail)); |
$error['mail'] = t('The e-mail address %email is already taken.', array('%email' => $mail)); |
| 660 |
} |
} |
| 661 |
else if (drupal_is_denied('mail', $mail)) { |
else if (drupal_is_denied('mail', $mail)) { |