/** * Check email confirmation code * * @return true; */ public function checkEmailConfirmation($h) { $user_id = $h->cage->get->getInt('id'); $conf = $h->cage->get->getAlnum('conf'); $user = new UserAuth(); $user->getUserBasic($h, $user_id); if (!$user_id || !$conf) { $h->messages[$h->lang['user_signin_register_emailconf_fail']] = 'red'; } $sql = "SELECT user_email_conf FROM " . TABLE_USERS . " WHERE user_id = %d"; $user_email_conf = $h->db->get_var($h->db->prepare($sql, $user_id)); if ($conf === $user_email_conf) { // update role: $user->role = $h->vars['regStatus']; $h->pluginHook('user_signin_email_conf_post_role'); // update user with new permissions: $new_perms = $user->getDefaultPermissions($h, $user->role); unset($new_perms['options']); // don't need this for individual users $user->setAllPermissions($new_perms); $user->updatePermissions($h); $user->updateUserBasic($h); // set email valid to 1: $sql = "UPDATE " . TABLE_USERS . " SET user_email_valid = %d WHERE user_id = %d"; $h->db->query($h->db->prepare($sql, 1, $user->id)); // notify chosen mods of new user by email: if ($h->vars['useEmailNotify'] == 'checked' && file_exists(PLUGINS . 'users/libs/UserFunctions.php')) { require_once PLUGINS . 'users/libs/UserFunctions.php'; $uf = new UserFunctions(); $uf->notifyMods($h, 'user', $user->role, $user->id); } $success_message = $h->lang['user_signin_register_emailconf_success'] . " <br /><b><a href='" . $h->url(array('page' => 'login')) . "'>" . $h->lang['user_signin_register_emailconf_success_login'] . "</a></b>"; $h->messages[$success_message] = 'green'; } else { $h->messages[$h->lang['user_signin_register_emailconf_fail']] = 'red'; } return true; }