Guest User

Untitled

a guest
Jul 17th, 2018
128
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.96 KB | None | 0 0
  1. <?php
  2.  
  3. $wgExtensionCredits['parserhook'][] = array (
  4. 'name' => 'MyExtension',
  5. 'author' => '',
  6. );
  7.  
  8. if (!class_exists('AuthPlugin')) {
  9. require_once ( 'AuthPlugin.php' );
  10. }
  11.  
  12. class MyExtensionPlugin extends AuthPlugin {
  13.  
  14. function userExists($username) {
  15. return true;
  16. }
  17.  
  18. function authenticate($username, $password) {
  19.  
  20. $id = $_SESSION['id'];
  21. if($username = $id) {
  22. return true;
  23. } else {
  24. return false;
  25. }
  26.  
  27. }
  28.  
  29. function updateUser(& $user) {
  30. $name = $user->getName();
  31. $user->load();
  32.  
  33. $user->mPassword = '';
  34. $user->mNewpassword = '';
  35. $user->mNewpassTime = null;
  36.  
  37. $user->setRealName($_SESSION['name']);
  38. $user->setEmail($_SESSION['email']);
  39. $user->mEmailAuthenticated = wfTimestampNow();
  40. $user->saveSettings();
  41.  
  42. return true;
  43. }
  44.  
  45. function modifyUITemplate(& $template) {
  46. $template->set('useemail', false);
  47. $template->set('remember', false);
  48. $template->set('create', false);
  49. $template->set('domain', false);
  50. $template->set('usedomain', false);
  51. }
  52.  
  53. function autoCreate() {
  54. return true;
  55. }
  56.  
  57. function disallowPrefsEditByUser() {
  58. return array (
  59. 'wpRealName' => true,
  60. 'wpUserEmail' => true,
  61. 'wpNick' => true
  62. );
  63. }
  64.  
  65. function allowPasswordChange() {
  66. return false;
  67. }
  68.  
  69.  
  70. function setPassword( $user, $password ) {
  71. return false;
  72. }
  73.  
  74.  
  75. function strict() {
  76. return true;
  77. }
  78.  
  79. function initUser( & $user ) {
  80. }
  81.  
  82. function updateExternalDB( $user ) {
  83. return false;
  84. }
  85.  
  86. function canCreateAccounts() {
  87. return false;
  88. }
  89.  
  90. function addUser( $user, $password ) {
  91. return false;
  92. }
  93.  
  94. function getCanonicalName( $username ) {
  95. return $username;
  96. }
  97. }
  98.  
  99.  
  100. function SetupAuthMyExtension() {
  101. global $wgHooks;
  102. global $wgAuth;
  103.  
  104. $wgHooks['UserLoadFromSession'][] = 'Auth_MyExtension_autologin_hook';
  105. $wgHooks['UserLogoutComplete'][] = 'Auth_MyExtension_UserLogoutComplete';
  106. $wgHooks['PersonalUrls'][] = 'Auth_MyExtension_personalURL_hook';
  107. $wgAuth = new MyExtensionPlugin();
  108. }
  109.  
  110. function Auth_MyExtension_autologin_hook($user, &$return_user ) {
  111. global $wgUser;
  112. global $wgAuth;
  113. global $wgContLang;
  114.  
  115. wfSetupSession();
  116.  
  117. // Give us a user, see if we're around
  118. $tmpuser = new User() ;
  119. $rc = $tmpuser->newFromSession();
  120. $rc = $tmpuser->load();
  121.  
  122. if( $rc && $rc->isLoggedIn() ) {
  123. if ( $rc->authenticate($rc->getName(), '') ) {
  124. return true;
  125. } else {
  126. $rc->logout();
  127. }
  128. }
  129.  
  130. $id = trim($_SESSION['id']);
  131. $name = ucfirst(trim($_SESSION['name']));
  132.  
  133. if (empty($dsid)) {
  134. $result = false; // Deny access
  135. return true;
  136. }
  137.  
  138. $user = User::newFromName($dsid);
  139.  
  140. if (0 == $user->getID() ) {
  141. // we have a new user to add...
  142. $user->setName( $id);
  143. $user->addToDatabase();
  144. $user->setToken();
  145. $user->saveSettings();
  146.  
  147. $ssUpdate = new SiteStatsUpdate( 0, 0, 0, 0, 1 );
  148. $ssUpdate->doUpdate();
  149.  
  150. } else {
  151. $user->saveToCache();
  152. }
  153.  
  154. // update email, real name, etc.
  155. $wgAuth->updateUser( $user );
  156.  
  157. $result = true;
  158. // Go ahead and log 'em in
  159. $user->setToken();
  160. $user->saveSettings();
  161. $user->setupSession();
  162. $user->setCookies();
  163. return true;
  164.  
  165. }
  166.  
  167. function Auth_MyExtension_personalURL_hook(& $personal_urls, & $title) {
  168. global $wgUser;
  169. unset( $personal_urls['mytalk'] );
  170. unset($personal_urls['Userlogin']);
  171. $personal_urls['userpage']['text'] = $wgUser->getRealName();
  172.  
  173. foreach (array('login', 'anonlogin') as $k) {
  174. if (array_key_exists($k, $personal_urls)) {
  175. unset($personal_urls[$k]);
  176. }
  177. }
  178. return true;
  179. }
  180.  
  181.  
  182. function Auth_MyExtension_UserLogoutComplete(&$user, &$inject_html, $old_name) {
  183. setcookie( $GLOBALS['wgCookiePrefix'] . '_session', '', time() - 3600, $GLOBALS['wgCookiePath']);
  184. setcookie( $GLOBALS['wgCookiePrefix'] . 'UserName', '', time() - 3600, $GLOBALS['wgCookiePath']);
  185. setcookie( $GLOBALS['wgCookiePrefix'] . 'UserID', '', time() - 3600, $GLOBALS['wgCookiePath']);
  186. setcookie( $GLOBALS['wgCookiePrefix'] . 'Token', '', time() - 3600, $GLOBALS['wgCookiePath']);
  187. return true;
  188. }
  189.  
  190.  
  191. ?>
  192.  
  193. #############################
  194. # Disallow Anonymous Access
  195. #############################
  196. $wgGroupPermissions['*']['read'] = false;
  197. $wgGroupPermissions['*']['edit'] = false;
  198. $wgGroupPermissions['*']['createpage'] = false;
  199. $wgGroupPermissions['*']['createtalk'] = false;
  200. $wgGroupPermissions['*']['createaccount'] = false;
  201. $wgShowIPinHeader = false; # For non-logged in users
  202.  
  203. #############################
  204. # Extension: MyExtension
  205. #############################
  206. require_once("$IP/extensions/MyExtension.php");
  207. $wgAutoLogin = true;
  208. SetupAuthMyExtension();
  209. $wgDisableCookieCheck = true;
Add Comment
Please, Sign In to add comment