* API: pageSet now supports pageids, revised revisions listings, lots of examples.
[lhc/web/wiklou.git] / includes / api / ApiLogin.php
1 <?php
2
3
4 /*
5 * Created on Sep 19, 2006
6 *
7 * API for MediaWiki 1.8+
8 *
9 * Copyright (C) 2006 Yuri Astrakhan <FirstnameLastname@gmail.com>
10 *
11 * This program is free software; you can redistribute it and/or modify
12 * it under the terms of the GNU General Public License as published by
13 * the Free Software Foundation; either version 2 of the License, or
14 * (at your option) any later version.
15 *
16 * This program is distributed in the hope that it will be useful,
17 * but WITHOUT ANY WARRANTY; without even the implied warranty of
18 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
19 * GNU General Public License for more details.
20 *
21 * You should have received a copy of the GNU General Public License along
22 * with this program; if not, write to the Free Software Foundation, Inc.,
23 * 59 Temple Place - Suite 330, Boston, MA 02111-1307, USA.
24 * http://www.gnu.org/copyleft/gpl.html
25 */
26
27 if (!defined('MEDIAWIKI')) {
28 // Eclipse helper - will be ignored in production
29 require_once ('ApiBase.php');
30 }
31
32 class ApiLogin extends ApiBase {
33
34 public function __construct($main, $action) {
35 parent :: __construct($main);
36 }
37
38 public function execute() {
39 $lgname = $lgpassword = $lgdomain = null;
40 extract($this->extractRequestParams());
41
42 $params = new FauxRequest(array (
43 'wpName' => $lgname,
44 'wpPassword' => $lgpassword,
45 'wpDomain' => $lgdomain,
46 'wpRemember' => ''
47 ));
48
49 $result = array ();
50
51 $loginForm = new LoginForm($params);
52 switch ($loginForm->authenticateUserData()) {
53 case LoginForm :: SUCCESS :
54 global $wgUser;
55
56 $wgUser->setOption('rememberpassword', 1);
57 $wgUser->setCookies();
58
59 $result['result'] = 'Success';
60 $result['lguserid'] = $_SESSION['wsUserID'];
61 $result['lgusername'] = $_SESSION['wsUserName'];
62 $result['lgtoken'] = $_SESSION['wsToken'];
63 break;
64
65 case LoginForm :: NO_NAME :
66 $result['result'] = 'NoName';
67 break;
68 case LoginForm :: ILLEGAL :
69 $result['result'] = 'Illegal';
70 break;
71 case LoginForm :: WRONG_PLUGIN_PASS :
72 $result['result'] = 'WrongPluginPass';
73 break;
74 case LoginForm :: NOT_EXISTS :
75 $result['result'] = 'NotExists';
76 break;
77 case LoginForm :: WRONG_PASS :
78 $result['result'] = 'WrongPass';
79 break;
80 case LoginForm :: EMPTY_PASS :
81 $result['result'] = 'EmptyPass';
82 break;
83 default :
84 ApiBase :: dieDebug(__METHOD__, 'Unhandled case value');
85 }
86
87 $this->getResult()->addValue(null, 'login', $result);
88 }
89
90 protected function getAllowedParams() {
91 return array (
92 'lgname' => '',
93 'lgpassword' => '',
94 'lgdomain' => null
95 );
96 }
97
98 protected function getParamDescription() {
99 return array (
100 'lgname' => 'User Name',
101 'lgpassword' => 'Password',
102 'lgdomain' => 'Domain (optional)'
103 );
104 }
105
106 protected function getDescription() {
107 return array (
108 'This module is used to login and get the authentication tokens.'
109 );
110 }
111 }
112 ?>