mirror of https://github.com/acanas/swad-core.git
Version 20.51.22: Mar 19, 2021 Pending database tables renamed.
This commit is contained in:
parent
dcae8af717
commit
ef28d28e0d
36
sql/swad.sql
36
sql/swad.sql
|
@ -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 (
|
||||||
|
|
|
@ -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);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -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:
|
||||||
|
|
|
@ -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;
|
||||||
|
|
22
swad_mail.c
22
swad_mail.c
|
@ -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)
|
||||||
|
|
|
@ -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())",
|
||||||
|
|
Loading…
Reference in New Issue