18 public static $passwordNeedsRehash;
24 public static function userinfo()
29 $root =& XCube_Root::getSingleton();
30 $root->mController->executeHeader();
32 $root->mController->setupModuleContext(
'user');
33 $root->mLanguageManager->loadModuleMessageCatalog(
'user');
35 require_once XOOPS_MODULE_PATH .
'/user/class/ActionFrame.class.php';
38 $moduleRunner->setActionName(
'UserInfo');
40 $root->mController->mExecute->add([&$moduleRunner,
'execute']);
42 $root->mController->execute();
44 $root->mController->executeView();
52 public static function edituser()
54 $actionName =
'EditUser';
55 switch (xoops_getrequest(
'op')) {
58 $actionName =
'AvatarEdit';
62 $actionName =
'AvatarSelect';
69 $root =& XCube_Root::getSingleton();
70 $root->mController->executeHeader();
72 $root->mController->setupModuleContext(
'user');
73 $root->mLanguageManager->loadModuleMessageCatalog(
'user');
75 require_once XOOPS_MODULE_PATH .
'/user/class/ActionFrame.class.php';
78 $moduleRunner->setActionName($actionName);
80 $root->mController->mExecute->add([&$moduleRunner,
'execute']);
82 $root->mController->execute();
84 $root->mController->executeView();
92 public static function register()
94 $root =& XCube_Root::getSingleton();
95 $xoopsUser =& $root->mContext->mXoopsUser;
97 if (is_object($xoopsUser)) {
98 $root->mController->executeForward(XOOPS_URL);
104 $root->mController->executeHeader();
106 $root->mController->setupModuleContext(
'user');
107 $root->mLanguageManager->loadModuleMessageCatalog(
'user');
109 require_once XOOPS_MODULE_PATH .
'/user/class/ActionFrame.class.php';
112 $action = $root->mContext->mRequest->getRequest(
'action');
113 if (
null != $action &&
'UserRegister' == $action) {
114 $actionName =
'UserRegister';
116 $actionName =
null != $action ?
'UserRegister_confirm' :
'UserRegister';
120 $moduleRunner->setActionName($actionName);
122 $root->mController->mExecute->add([&$moduleRunner,
'execute']);
124 $root->mController->execute();
126 $root->mController->executeView();
135 public static function lostpass()
137 $root =& XCube_Root::getSingleton();
138 $xoopsUser =& $root->mContext->mXoopsUser;
140 if (is_object($xoopsUser)) {
141 $root->mController->executeForward(XOOPS_URL);
147 $root->mController->executeHeader();
149 $root->mController->setupModuleContext(
'user');
150 $root->mLanguageManager->loadModuleMessageCatalog(
'user');
152 require_once XOOPS_MODULE_PATH .
'/user/class/ActionFrame.class.php';
154 $root =& XCube_Root::getSingleton();
157 $moduleRunner->setActionName(
'LostPass');
159 $root->mController->mExecute->add([&$moduleRunner,
'execute']);
161 $root->mController->execute();
163 $root->mController->executeView();
171 public static function user()
173 $root =& XCube_Root::getSingleton();
174 $op = isset($_REQUEST[
'op']) ? trim(xoops_getrequest(
'op')) :
'main';
175 $xoopsUser =& $root->mContext->mXoopsUser;
177 $actionName =
'default';
181 $root->mController->checkLogin();
185 $root->mController->logout();
189 if (is_object($xoopsUser)) {
190 $root->mController->executeForward(XOOPS_URL .
'/userinfo.php?uid=' . $xoopsUser->get(
'uid'));
195 $actionName =
'UserActivate';
199 $actionName =
'UserDelete';
206 $root =& XCube_Root::getSingleton();
207 $root->mController->executeHeader();
209 $root->mController->setupModuleContext(
'user');
210 $root->mLanguageManager->loadModuleMessageCatalog(
'user');
212 require_once XOOPS_MODULE_PATH .
'/user/class/ActionFrame.class.php';
215 $moduleRunner->setActionName($actionName);
217 $root->mController->mExecute->add([&$moduleRunner,
'execute']);
219 $root->mController->execute();
221 $root->mController->executeView();
224 public static function checkLogin(&$xoopsUser)
226 if (is_object($xoopsUser)) {
230 $root = XCube_Root::getSingleton();
231 $root->mLanguageManager->loadModuleMessageCatalog(
'user');
233 $userHandler = xoops_getmodulehandler(
'users',
'user');
236 $criteria->add(
new Criteria(
'uname', xoops_getrequest(
'uname')));
237 $userArr = $userHandler->getObjects($criteria);
238 if (1 != (is_countable($userArr) ? count($userArr) : 0)) {
242 $pass = xoops_getrequest(
'pass');
243 $hash = $userArr[0]->get(
'pass');
248 if (0 == $userArr[0]->
get(
'level')) {
253 $handler =& xoops_gethandler(
'user');
254 $user =& $handler->get($userArr[0]->
get(
'uid'));
256 if (is_callable([$user,
'getNumGroups'])) {
257 if (0 == $user->getNumGroups()) {
261 $groups = $user->getGroups();
262 if (0 == (is_countable($groups) ? count($groups) : 0)) {
270 if (!$handler->insert($user,
true)) {
272 self::$passwordNeedsRehash =
true;
281 if (!isset($_SESSION)) {
282 $root->mSession->regenerate();
285 $_SESSION[
'xoopsUserId'] = $xoopsUser->get(
'uid');
286 $_SESSION[
'xoopsUserGroups'] = $xoopsUser->getGroups();
289 public static function checkLoginSuccess(&$xoopsUser)
291 if (is_object($xoopsUser)) {
292 $handler = xoops_gethandler(
'user');
293 $xoopsUser->set(
'last_login', time());
295 $handler->insert($xoopsUser);
297 if (self::$passwordNeedsRehash) {
298 $url = XOOPS_URL .
'/edituser.php';
299 if (($redirect = xoops_getrequest(
'xoops_redirect')) &&
'/' === $redirect[0]) {
300 $url .=
'?xoops_redirect=' . rawurlencode($redirect);
302 $root = XCube_Root::getSingleton();
303 $root->mController->executeRedirect($url, 5, _MD_USER_MESSAGE_REPASSWORD);
308 public static function logout(&$successFlag, $xoopsUser)
310 $root =& XCube_Root::getSingleton();
311 $xoopsConfig = $root->mContext->mXoopsConfig;
313 $root->mLanguageManager->loadModuleMessageCatalog(
'user');
317 $root->mSession->destroy(
true);
320 if (is_object($xoopsUser)) {
321 $onlineHandler =& xoops_gethandler(
'online');
322 $onlineHandler->destroy($xoopsUser->get(
'uid'));
328 public static function misc()
330 if (
'online' !== xoops_getrequest(
'type')) {
334 require_once XOOPS_MODULE_PATH .
'/user/class/ActionFrame.class.php';
336 $root =& XCube_Root::getSingleton();
337 $root->mController->setupModuleContext(
'user');
339 $actionName =
'MiscOnline';
342 $moduleRunner->setActionName($actionName);
344 $root->mController->mExecute->add([&$moduleRunner,
'execute']);
346 $root->mController->setDialogMode(
true);
348 $root->mController->execute();
350 $root->mController->executeView();