Guest User

Untitled

a guest
Dec 21st, 2010
1,559
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. <?php
  2. /*
  3. Plugin Name: Signup Password
  4. Plugin URI:
  5. Description:
  6. Author: Andrew Billits
  7. Version: 1.0.5
  8. Author URI:
  9. */
  10.  
  11. /*
  12. Copyright 2007-2009 Incsub (http://incsub.com)
  13.  
  14. This program is free software; you can redistribute it and/or modify
  15. it under the terms of the GNU General Public License (Version 2 - GPLv2) as published by
  16. the Free Software Foundation.
  17.  
  18. This program is distributed in the hope that it will be useful,
  19. but WITHOUT ANY WARRANTY; without even the implied warranty of
  20. MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  21. GNU General Public License for more details.
  22.  
  23. You should have received a copy of the GNU General Public License
  24. along with this program; if not, write to the Free Software
  25. Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  26. */
  27.  
  28. //------------------------------------------------------------------------//
  29. //---Config---------------------------------------------------------------//
  30. //------------------------------------------------------------------------//
  31. $signup_password_use_encryption = 'no'; //Either 'yes' OR 'no'
  32. //------------------------------------------------------------------------//
  33. //---Hook-----------------------------------------------------------------//
  34. //------------------------------------------------------------------------//
  35. add_action('wp_head', 'signup_password_stylesheet');
  36. add_action('signup_extra_fields', 'signup_password_fields');
  37. add_filter('wpmu_validate_user_signup', 'signup_password_filter');
  38. add_filter('signup_blogform', 'signup_password_fields_pass_through');
  39. add_filter('add_signup_meta', 'signup_password_meta_filter',99);
  40. add_filter('random_password', 'signup_password_random_password_filter');
  41. //------------------------------------------------------------------------//
  42. //---Functions------------------------------------------------------------//
  43. //------------------------------------------------------------------------//
  44.  
  45. function signup_password_encrypt($data) {
  46. if(!isset($chars))
  47. {
  48. // 3 different symbols (or combinations) for obfuscation
  49. // these should not appear within the original text
  50. $sym = array('¶', '¥xQ', '|');
  51.  
  52. foreach(range('a','z') as $key=>$val)
  53. $chars[$val] = str_repeat($sym[0],($key + 1)).$sym[1];
  54. $chars[' '] = $sym[2];
  55.  
  56. unset($sym);
  57. }
  58.  
  59. // encrypt
  60. $data = strtr(strtolower($data), $chars);
  61. return $data;
  62.  
  63. }
  64.  
  65. function signup_password_decrypt($data) {
  66. if(!isset($chars))
  67. {
  68. // 3 different symbols (or combinations) for obfuscation
  69. // these should not appear within the original text
  70. $sym = array('¶', '¥xQ', '|');
  71.  
  72. foreach(range('a','z') as $key=>$val)
  73. $chars[$val] = str_repeat($sym[0],($key + 1)).$sym[1];
  74. $chars[' '] = $sym[2];
  75.  
  76. unset($sym);
  77. }
  78.  
  79. // decrypt
  80. $charset = array_flip($chars);
  81. $charset = array_reverse($charset, true);
  82.  
  83. $data = strtr($data, $charset);
  84. unset($charset);
  85. return $data;
  86. }
  87.  
  88. function signup_password_filter($content) {
  89. $password_1 = $_POST['password_1'];
  90. $password_2 = $_POST['password_2'];
  91. if ( !empty( $password_1 ) && $_POST['stage'] == 'validate-user-signup' ) {
  92. if ( $password_1 != $password_2 ) {
  93. $content['errors']->add('password', __('Passwords do not match.'));
  94. }
  95. }
  96. return $content;
  97. }
  98.  
  99. function signup_password_meta_filter($meta) {
  100. global $signup_password_use_encryption;
  101. $password_1 = $_POST['password_1'];
  102. if ( !empty( $password_1 ) ) {
  103. if ( $signup_password_use_encryption == 'yes' ) {
  104. $password_1 = signup_password_encrypt($password_1);
  105. }
  106. $add_meta = array('password' => $password_1);
  107. $meta = array_merge($add_meta, $meta);
  108. }
  109. return $meta;
  110. }
  111.  
  112. function signup_password_random_password_filter($password) {
  113. global $wpdb, $signup_password_use_encryption;
  114.  
  115. if ( ! empty($_GET['key']) ) {
  116. $key = $_GET['key'];
  117. } else {
  118. $key = $_POST['key'];
  119. }
  120. if ( !empty($_POST['password_1']) ) {
  121. $password = $_POST['password_1'];
  122. } else if ( !empty( $key ) ) {
  123. $signup = $wpdb->get_row("SELECT * FROM " . $wpdb->signups . " WHERE activation_key = '" . $key . "'");
  124. if ( empty($signup) || $signup->active ) {
  125. //bad key or already active
  126. } else {
  127. //check for password in signup meta
  128. $meta = unserialize($signup->meta);
  129. if ( !empty( $meta['password'] ) ) {
  130. if ( $signup_password_use_encryption == 'yes' ) {
  131. $password = signup_password_decrypt($meta['password']);
  132. } else {
  133. $password = $meta['password'];
  134. }
  135. }
  136. }
  137. }
  138. return $password;
  139. }
  140.  
  141. //------------------------------------------------------------------------//
  142. //---Output Functions-----------------------------------------------------//
  143. //------------------------------------------------------------------------//
  144.  
  145. function signup_password_stylesheet() {
  146. ?>
  147. <style type="text/css">
  148. .mu_register #password_1,
  149. .mu_register #password_2 { width:100%; font-size: 24px; margin:5px 0; }
  150. </style>
  151. <?php
  152. }
  153.  
  154. function signup_password_fields_pass_through() {
  155. if ( !empty( $_POST['password_1'] ) && !empty( $_POST['password_2'] ) ) {
  156. ?>
  157. <input type="hidden" name="password_1" value="<?php echo $_POST['password_1']; ?>" />
  158. <?php
  159. }
  160. }
  161.  
  162. function signup_password_fields($errors) {
  163. $error = $errors->get_error_message('password');
  164. ?>
  165. <label for="password"><?php _e('Password'); ?>:</label>
  166. <?php
  167. if($error) {
  168. echo '<p class="error">' . $error . '</p>';
  169. }
  170. ?>
  171. <input name="password_1" type="password" id="password_1" value="" autocomplete="off" maxlength="20" /><br />
  172. (<?php _e('Leave fields blank for a random password to be generated.') ?>)
  173. <label for="password"><?php _e('Confirm Password'); ?>:</label>
  174. <input name="password_2" type="password" id="password_2" value="" autocomplete="off" maxlength="20" /><br />
  175. (<?php _e('Type your new password again.') ?>)
  176. <?php
  177. }
  178.  
  179. ?>
RAW Paste Data

Adblocker detected! Please consider disabling it...

We've detected AdBlock Plus or some other adblocking software preventing Pastebin.com from fully loading.

We don't have any obnoxious sound, or popup ads, we actively block these annoying types of ads!

Please add Pastebin.com to your ad blocker whitelist or disable your adblocking software.

×