Version 20.51.22: Mar 19, 2021 Pending database tables renamed.

This commit is contained in:
acanas 2021-03-19 16:29:43 +01:00
parent dcae8af717
commit ef28d28e0d
6 changed files with 99 additions and 78 deletions

View File

@ -1141,24 +1141,6 @@ CREATE TABLE IF NOT EXISTS ntf_notifications (
INDEX(ToUsrCod),
INDEX(TimeNotif));
--
-- Table pending_emails: stores the emails pending of confirmation
--
CREATE TABLE IF NOT EXISTS pending_emails (
UsrCod INT NOT NULL,
E_mail VARCHAR(255) COLLATE latin1_general_ci NOT NULL,
MailKey CHAR(43) COLLATE latin1_bin NOT NULL,
DateAndTime DATETIME NOT NULL,
INDEX(UsrCod),
UNIQUE INDEX(MailKey));
--
-- Table pending_passwd: stores the passwords pending of activation, sent by e-mail when a user who have forgotten his/her password request a new one
--
CREATE TABLE IF NOT EXISTS pending_passwd (
UsrCod INT NOT NULL,
PendingPassword CHAR(86) COLLATE latin1_bin NOT NULL,
DateAndTime DATETIME NOT NULL,
PRIMARY KEY(UsrCod));
--
-- Table pho_clicks_without_photo: stores the number of clicks that remains to each user before being required to submit his/her photo
--
CREATE TABLE IF NOT EXISTS pho_clicks_without_photo (
@ -1737,6 +1719,24 @@ CREATE TABLE IF NOT EXISTS usr_nicknames (
UNIQUE INDEX(UsrCod,Nickname),
UNIQUE INDEX(Nickname));
--
-- Table usr_pending_emails: stores the emails pending of confirmation
--
CREATE TABLE IF NOT EXISTS usr_pending_emails (
UsrCod INT NOT NULL,
E_mail VARCHAR(255) COLLATE latin1_general_ci NOT NULL,
MailKey CHAR(43) COLLATE latin1_bin NOT NULL,
DateAndTime DATETIME NOT NULL,
INDEX(UsrCod),
UNIQUE INDEX(MailKey));
--
-- Table usr_pending_passwd: stores the passwords pending of activation, sent by e-mail when a user who have forgotten his/her password request a new one
--
CREATE TABLE IF NOT EXISTS usr_pending_passwd (
UsrCod INT NOT NULL,
PendingPassword CHAR(86) COLLATE latin1_bin NOT NULL,
DateAndTime DATETIME NOT NULL,
PRIMARY KEY(UsrCod));
--
-- Table usr_report: stores users' usage reports
--
CREATE TABLE IF NOT EXISTS usr_report (

View File

@ -1167,36 +1167,43 @@ static void Acc_RemoveUsr (struct UsrData *UsrDat)
{
/***** Remove user's webs / social networks *****/
DB_QueryDELETE ("can not remove user's webs / social networks",
"DELETE FROM usr_webs WHERE UsrCod=%ld",
"DELETE FROM usr_webs"
" WHERE UsrCod=%ld",
UsrDat->UsrCod);
/***** Remove user's nicknames *****/
DB_QueryDELETE ("can not remove user's nicknames",
"DELETE FROM usr_nicknames WHERE UsrCod=%ld",
"DELETE FROM usr_nicknames"
" WHERE UsrCod=%ld",
UsrDat->UsrCod);
/***** Remove user's emails *****/
DB_QueryDELETE ("can not remove pending user's emails",
"DELETE FROM pending_emails WHERE UsrCod=%ld",
"DELETE FROM usr_pending_emails"
" WHERE UsrCod=%ld",
UsrDat->UsrCod);
DB_QueryDELETE ("can not remove user's emails",
"DELETE FROM usr_emails WHERE UsrCod=%ld",
"DELETE FROM usr_emails"
" WHERE UsrCod=%ld",
UsrDat->UsrCod);
/***** Remove user's IDs *****/
DB_QueryDELETE ("can not remove user's IDs",
"DELETE FROM usr_IDs WHERE UsrCod=%ld",
"DELETE FROM usr_IDs"
" WHERE UsrCod=%ld",
UsrDat->UsrCod);
/***** Remove user's last data *****/
DB_QueryDELETE ("can not remove user's last data",
"DELETE FROM usr_last WHERE UsrCod=%ld",
"DELETE FROM usr_last"
" WHERE UsrCod=%ld",
UsrDat->UsrCod);
/***** Remove user's data *****/
DB_QueryDELETE ("can not remove user's data",
"DELETE FROM usr_data WHERE UsrCod=%ld",
"DELETE FROM usr_data"
" WHERE UsrCod=%ld",
UsrDat->UsrCod);
}

View File

@ -600,17 +600,23 @@ TODO: Salvador Romero Cort
TODO: FIX BUG, URGENT! En las fechas como parámetro Dat_WriteParamsIniEndDates(), por ejemplo al cambiar el color de la gráfica de accesos por día y hora, no se respeta la zona horaria.
*/
#define Log_PLATFORM_VERSION "SWAD 20.51.21 (2021-03-19)"
#define Log_PLATFORM_VERSION "SWAD 20.51.22 (2021-03-19)"
#define CSS_FILE "swad20.45.css"
#define JS_FILE "swad20.6.2.js"
/*
TODO: Rename CENTRE to CENTER in help wiki.
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
Version 20.51.21: Mar 19, 2021 Notices database tables renamed. (308101 lines)
Version 20.51.22: Mar 19, 2021 Rooms database tables renamed. (308117 lines)
2 changes necessary in database:
RENAME TABLE pending_emails TO usr_pending_emails;
RENAME TABLE pending_passwd TO usr_pending_passwd;
Version 20.51.21: Mar 19, 2021 Notices database tables renamed. (308101 lines)
3 changes necessary in database:
RENAME TABLE notices TO not_notices;
RENAME TABLE notices_deleted TO not_deleted;
RENAME TABLE links TO lnk_links;
Version 20.51.20: Mar 19, 2021 Rooms database tables renamed. (308069 lines)
2 changes necessary in database:

View File

@ -2377,45 +2377,6 @@ mysql> DESCRIBE ntf_notifications;
"INDEX(CrsCod),"
"INDEX(TimeNotif))");
/***** Table pending_emails *****/
/*
mysql> DESCRIBE pending_emails;
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| UsrCod | int(11) | NO | MUL | NULL | |
| E_mail | varchar(255) | NO | | NULL | |
| MailKey | char(43) | NO | PRI | NULL | |
| DateAndTime | datetime | NO | | NULL | |
+-------------+--------------+------+-----+---------+-------+
4 rows in set (0,00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS pending_emails ("
"UsrCod INT NOT NULL,"
"E_mail VARCHAR(255) COLLATE latin1_general_ci NOT NULL," // Cns_MAX_CHARS_EMAIL_ADDRESS
"MailKey CHAR(43) COLLATE latin1_bin NOT NULL," // Mai_LENGTH_EMAIL_CONFIRM_KEY
"DateAndTime DATETIME NOT NULL,"
"INDEX(UsrCod),"
"UNIQUE INDEX(MailKey))");
/***** Table pending_passwd *****/
/*
mysql> DESCRIBE pending_passwd;
+-----------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+----------+------+-----+---------+-------+
| UsrCod | int(11) | NO | PRI | NULL | |
| PendingPassword | char(86) | NO | | NULL | |
| DateAndTime | datetime | NO | | NULL | |
+-----------------+----------+------+-----+---------+-------+
3 rows in set (0.00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS pending_passwd ("
"UsrCod INT NOT NULL,"
"PendingPassword CHAR(86) COLLATE latin1_bin NOT NULL," // Pwd_BYTES_ENCRYPTED_PASSWORD
"DateAndTime DATETIME NOT NULL,"
"PRIMARY KEY (UsrCod))");
/***** Table pho_clicks_without_photo *****/
/*
mysql> DESCRIBE pho_clicks_without_photo;
@ -3631,6 +3592,45 @@ mysql> DESCRIBE usr_nicknames;
"UNIQUE INDEX(UsrCod,Nickname),"
"UNIQUE INDEX(Nickname))");
/***** Table usr_pending_emails *****/
/*
mysql> DESCRIBE usr_pending_emails;
+-------------+--------------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-------------+--------------+------+-----+---------+-------+
| UsrCod | int(11) | NO | MUL | NULL | |
| E_mail | varchar(255) | NO | | NULL | |
| MailKey | char(43) | NO | PRI | NULL | |
| DateAndTime | datetime | NO | | NULL | |
+-------------+--------------+------+-----+---------+-------+
4 rows in set (0,00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_pending_emails ("
"UsrCod INT NOT NULL,"
"E_mail VARCHAR(255) COLLATE latin1_general_ci NOT NULL," // Cns_MAX_CHARS_EMAIL_ADDRESS
"MailKey CHAR(43) COLLATE latin1_bin NOT NULL," // Mai_LENGTH_EMAIL_CONFIRM_KEY
"DateAndTime DATETIME NOT NULL,"
"INDEX(UsrCod),"
"UNIQUE INDEX(MailKey))");
/***** Table usr_pending_passwd *****/
/*
mysql> DESCRIBE usr_pending_passwd;
+-----------------+----------+------+-----+---------+-------+
| Field | Type | Null | Key | Default | Extra |
+-----------------+----------+------+-----+---------+-------+
| UsrCod | int(11) | NO | PRI | NULL | |
| PendingPassword | char(86) | NO | | NULL | |
| DateAndTime | datetime | NO | | NULL | |
+-----------------+----------+------+-----+---------+-------+
3 rows in set (0.00 sec)
*/
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_pending_passwd ("
"UsrCod INT NOT NULL,"
"PendingPassword CHAR(86) COLLATE latin1_bin NOT NULL," // Pwd_BYTES_ENCRYPTED_PASSWORD
"DateAndTime DATETIME NOT NULL,"
"PRIMARY KEY (UsrCod))");
/***** Table usr_report *****/
/*
mysql> DESCRIBE usr_report;

View File

@ -1625,7 +1625,7 @@ bool Mai_UpdateEmailInDB (const struct UsrData *UsrDat,const char NewEmail[Cns_M
/***** Delete email (not confirmed) for other users *****/
DB_QueryDELETE ("can not remove pending email for other users",
"DELETE FROM pending_emails"
"DELETE FROM usr_pending_emails"
" WHERE E_mail='%s' AND UsrCod<>%ld",
NewEmail,UsrDat->UsrCod);
@ -1738,13 +1738,13 @@ static void Mai_InsertMailKey (const char Email[Cns_MAX_BYTES_EMAIL_ADDRESS + 1]
{
/***** Remove expired pending emails from database *****/
DB_QueryDELETE ("can not remove old pending mail keys",
"DELETE LOW_PRIORITY FROM pending_emails"
"DELETE LOW_PRIORITY FROM usr_pending_emails"
" WHERE DateAndTime<FROM_UNIXTIME(UNIX_TIMESTAMP()-%lu)",
Cfg_TIME_TO_DELETE_OLD_PENDING_EMAILS);
/***** Insert mail key in database *****/
DB_QueryREPLACE ("can not create pending password",
"INSERT INTO pending_emails"
"INSERT INTO usr_pending_emails"
" (UsrCod,E_mail,MailKey,DateAndTime)"
" VALUES"
" (%ld,'%s','%s',NOW())",
@ -1776,7 +1776,9 @@ void Mai_ConfirmEmail (void)
/***** Get user's code and email from key *****/
if (DB_QuerySELECT (&mysql_res,"can not get user's code and email from key",
"SELECT UsrCod,E_mail FROM pending_emails"
"SELECT UsrCod," // row[0]
"E_mail" // row[1]
" FROM usr_pending_emails"
" WHERE MailKey='%s'",
MailKey))
{
@ -1804,15 +1806,19 @@ void Mai_ConfirmEmail (void)
{
/***** Delete this key *****/
DB_QueryDELETE ("can not remove an email key",
"DELETE FROM pending_emails WHERE MailKey='%s'",
"DELETE FROM usr_pending_emails"
" WHERE MailKey='%s'",
MailKey);
/***** Check user's code and email
and get if email is already confirmed *****/
if (DB_QuerySELECT (&mysql_res,"can not check if email is confirmed",
"SELECT Confirmed FROM usr_emails"
" WHERE UsrCod=%ld AND E_mail='%s'",
UsrCod,Email))
"SELECT Confirmed"
" FROM usr_emails"
" WHERE UsrCod=%ld"
" AND E_mail='%s'",
UsrCod,
Email))
{
Confirmed = false;
if (row)

View File

@ -120,7 +120,8 @@ bool Pwd_CheckPendingPassword (void)
/***** Get pending password from database *****/
if (DB_QuerySELECT (&mysql_res,"can not get pending password",
"SELECT PendingPassword FROM pending_passwd"
"SELECT PendingPassword"
" FROM usr_pending_passwd"
" WHERE UsrCod=%ld",
Gbl.Usrs.Me.UsrDat.UsrCod))
{
@ -160,7 +161,8 @@ void Pwd_AssignMyPendingPasswordToMyCurrentPassword (void)
/***** Remove my pending password from database
since it is not longer necessary *****/
DB_QueryDELETE ("can not remove pending password",
"DELETE FROM pending_passwd WHERE UsrCod=%ld",
"DELETE FROM usr_pending_passwd"
" WHERE UsrCod=%ld",
Gbl.Usrs.Me.UsrDat.UsrCod);
}
@ -493,13 +495,13 @@ void Pwd_SetMyPendingPassword (char PlainPassword[Pwd_MAX_BYTES_PLAIN_PASSWORD +
/***** Remove expired pending passwords from database *****/
DB_QueryDELETE ("can not remove expired pending passwords",
"DELETE LOW_PRIORITY FROM pending_passwd"
"DELETE LOW_PRIORITY FROM usr_pending_passwd"
" WHERE DateAndTime<FROM_UNIXTIME(UNIX_TIMESTAMP()-%lu)",
Cfg_TIME_TO_DELETE_OLD_PENDING_PASSWORDS);
/***** Update my current password in database *****/
DB_QueryREPLACE ("can not create pending password",
"REPLACE INTO pending_passwd"
"REPLACE INTO usr_pending_passwd"
" (UsrCod,PendingPassword,DateAndTime)"
" VALUES"
" (%ld,'%s',NOW())",