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(ToUsrCod),
INDEX(TimeNotif)); 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 -- 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 ( 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(UsrCod,Nickname),
UNIQUE INDEX(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 -- Table usr_report: stores users' usage reports
-- --
CREATE TABLE IF NOT EXISTS usr_report ( 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 *****/ /***** Remove user's webs / social networks *****/
DB_QueryDELETE ("can not 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); UsrDat->UsrCod);
/***** Remove user's nicknames *****/ /***** Remove user's nicknames *****/
DB_QueryDELETE ("can not 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); UsrDat->UsrCod);
/***** Remove user's emails *****/ /***** Remove user's emails *****/
DB_QueryDELETE ("can not remove pending 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); UsrDat->UsrCod);
DB_QueryDELETE ("can not remove user's emails", DB_QueryDELETE ("can not remove user's emails",
"DELETE FROM usr_emails WHERE UsrCod=%ld", "DELETE FROM usr_emails"
" WHERE UsrCod=%ld",
UsrDat->UsrCod); UsrDat->UsrCod);
/***** Remove user's IDs *****/ /***** Remove user's IDs *****/
DB_QueryDELETE ("can not 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); UsrDat->UsrCod);
/***** Remove user's last data *****/ /***** Remove user's last data *****/
DB_QueryDELETE ("can not 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); UsrDat->UsrCod);
/***** Remove user's data *****/ /***** Remove user's data *****/
DB_QueryDELETE ("can not 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); 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. 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 CSS_FILE "swad20.45.css"
#define JS_FILE "swad20.6.2.js" #define JS_FILE "swad20.6.2.js"
/* /*
TODO: Rename CENTRE to CENTER in help wiki. TODO: Rename CENTRE to CENTER in help wiki.
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams 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: 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 TO not_notices;
RENAME TABLE notices_deleted TO not_deleted; 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) Version 20.51.20: Mar 19, 2021 Rooms database tables renamed. (308069 lines)
2 changes necessary in database: 2 changes necessary in database:

View File

@ -2377,45 +2377,6 @@ mysql> DESCRIBE ntf_notifications;
"INDEX(CrsCod)," "INDEX(CrsCod),"
"INDEX(TimeNotif))"); "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 *****/ /***** Table pho_clicks_without_photo *****/
/* /*
mysql> DESCRIBE pho_clicks_without_photo; mysql> DESCRIBE pho_clicks_without_photo;
@ -3631,6 +3592,45 @@ mysql> DESCRIBE usr_nicknames;
"UNIQUE INDEX(UsrCod,Nickname)," "UNIQUE INDEX(UsrCod,Nickname),"
"UNIQUE INDEX(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 *****/ /***** Table usr_report *****/
/* /*
mysql> DESCRIBE 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 *****/ /***** Delete email (not confirmed) for other users *****/
DB_QueryDELETE ("can not remove pending email 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", " WHERE E_mail='%s' AND UsrCod<>%ld",
NewEmail,UsrDat->UsrCod); 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 *****/ /***** Remove expired pending emails from database *****/
DB_QueryDELETE ("can not remove old pending mail keys", 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)", " WHERE DateAndTime<FROM_UNIXTIME(UNIX_TIMESTAMP()-%lu)",
Cfg_TIME_TO_DELETE_OLD_PENDING_EMAILS); Cfg_TIME_TO_DELETE_OLD_PENDING_EMAILS);
/***** Insert mail key in database *****/ /***** Insert mail key in database *****/
DB_QueryREPLACE ("can not create pending password", DB_QueryREPLACE ("can not create pending password",
"INSERT INTO pending_emails" "INSERT INTO usr_pending_emails"
" (UsrCod,E_mail,MailKey,DateAndTime)" " (UsrCod,E_mail,MailKey,DateAndTime)"
" VALUES" " VALUES"
" (%ld,'%s','%s',NOW())", " (%ld,'%s','%s',NOW())",
@ -1776,7 +1776,9 @@ void Mai_ConfirmEmail (void)
/***** Get user's code and email from key *****/ /***** Get user's code and email from key *****/
if (DB_QuerySELECT (&mysql_res,"can not 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'", " WHERE MailKey='%s'",
MailKey)) MailKey))
{ {
@ -1804,15 +1806,19 @@ void Mai_ConfirmEmail (void)
{ {
/***** Delete this key *****/ /***** Delete this key *****/
DB_QueryDELETE ("can not remove an email 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); MailKey);
/***** Check user's code and email /***** Check user's code and email
and get if email is already confirmed *****/ and get if email is already confirmed *****/
if (DB_QuerySELECT (&mysql_res,"can not check if email is confirmed", if (DB_QuerySELECT (&mysql_res,"can not check if email is confirmed",
"SELECT Confirmed FROM usr_emails" "SELECT Confirmed"
" WHERE UsrCod=%ld AND E_mail='%s'", " FROM usr_emails"
UsrCod,Email)) " WHERE UsrCod=%ld"
" AND E_mail='%s'",
UsrCod,
Email))
{ {
Confirmed = false; Confirmed = false;
if (row) if (row)

View File

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