-
Notifications
You must be signed in to change notification settings - Fork 0
/
class.ext_update.php
130 lines (104 loc) · 4.35 KB
/
class.ext_update.php
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
<?php
/***************************************************************
* Copyright notice
*
* (c) 2012 Markus Kappe <[email protected]>
* All rights reserved
*
* This script is part of the TYPO3 project. The TYPO3 project is
* free software; you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation; either version 2 of the License, or
* (at your option) any later version.
*
* The GNU General Public License can be found at
* http://www.gnu.org/copyleft/gpl.html.
*
* This script is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* This copyright notice MUST APPEAR in all copies of the script!
***************************************************************/
/**
* Update Class for DB Updates of version <= 0.2.5
*
* Sets new randomized passwords to each user in fe_users registered via 3rd party authentication provider
*
* @author Markus Kappe <[email protected]>
* @credits Matteo Saivo <[email protected]>
*/
class ext_update {
function main() {
$content = '<p>If you upgrade from version 0.2.5 or earlier you are advised to randomize the passwords from users that registered or connected via 3rd party authentication. Please press "UPDATE Passwords" button to start.</p>';
$content .= '<form name="updateForm" action="" method="post">';
$content .= '<input type="hidden" name="updatePW" value="updatePW">';
$content .= '<p><input type="submit" name="submitButton" value="UPDATE Passwords"></p>';
$content .= '</form>';
if (t3lib_div::_GP('updatePW')) {
$content .= $this->doUpdatePW();
}
$content .= '<br /><br /><p>If you upgrade from below 0.3.0 you are advised to update the identifiers. This is due to a change in the database. This script transfers the old identifiers to the new place. Please press "UPDATE Identifiers" button to start.</p>';
$content .= '<form name="updateForm" action="" method="post">';
$content .= '<input type="hidden" name="updateID" value="updateID">';
$content .= '<p><input type="submit" name="submitButton" value="UPDATE Identifiers"></p>';
$content .= '</form>';
if (t3lib_div::_GP('updateID')) {
$content .= $this->doUpdateID();
}
return $content;
}
function doUpdatePW() {
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('uid', 'fe_users', "tx_dixeasylogin_openid <> ''");
$content = '<p>Start randomizing passwords</p>';
$i = 0;
while ($user = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
$GLOBALS['TYPO3_DB']->exec_UPDATEquery(
'fe_users',
'uid = ' . $user['uid'],
array('password' => t3lib_div::getRandomHexString(32))
);
$i++;
}
$content .= '<p><strong style="color:green;">Finished update. ' . $i . ' user(s) updated.</strong> You can redo this update any time.</p>';
return $content;
}
function doUpdateID() {
$res = $GLOBALS['TYPO3_DB']->exec_SELECTquery('*', 'fe_users', "tx_dixeasylogin_openid <> ''");
$content = '<p>Start transfering identifiers</p>';
$i = 0;
while ($user = $GLOBALS['TYPO3_DB']->sql_fetch_assoc($res)) {
$GLOBALS['TYPO3_DB']->exec_UPDATEquery(
'fe_users',
'uid = ' . $user['uid'],
array('tx_dixeasylogin_openid' => '')
);
$i++;
$values = array(
'user' => $user['uid'],
'crdate' => time(),
'tstamp' => time(),
'identifier' => $user['tx_dixeasylogin_openid'],
'pid' => $user['pid'],
);
$GLOBALS['TYPO3_DB']->exec_INSERTquery('tx_dixeasylogin_identifiers', $values);
}
$content .= '<p><strong style="color:green;">Finished update. ' . $i . ' user(s) updated.</strong>.</p>';
return $content;
}
/**
* Checks how many rows are found and returns true if there are any
* (this function is called from the extension manager)
*
* @param string $what: what should be updated
* @return boolean
*/
function access() {
return true;
}
}
if (defined('TYPO3_MODE') && $TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dix_easylogin/class.ext_update.php']) {
include_once($TYPO3_CONF_VARS[TYPO3_MODE]['XCLASS']['ext/dix_easylogin/class.ext_update.php']);
}
?>