mirror of https://github.com/acanas/swad-core.git
Version 20.51.49: Mar 26, 2021 User IDs database table renamed.
This commit is contained in:
parent
6e17eabcd5
commit
bad9767bd1
|
@ -1690,9 +1690,9 @@ CREATE TABLE IF NOT EXISTS usr_follow (
|
||||||
UNIQUE INDEX (FollowedCod,FollowerCod),
|
UNIQUE INDEX (FollowedCod,FollowerCod),
|
||||||
INDEX (FollowTime));
|
INDEX (FollowTime));
|
||||||
--
|
--
|
||||||
-- Table usr_IDs: stores the users' IDs
|
-- Table usr_ids: stores the users' IDs
|
||||||
--
|
--
|
||||||
CREATE TABLE IF NOT EXISTS usr_IDs (
|
CREATE TABLE IF NOT EXISTS usr_ids (
|
||||||
UsrCod INT NOT NULL,
|
UsrCod INT NOT NULL,
|
||||||
UsrID CHAR(16) NOT NULL,
|
UsrID CHAR(16) NOT NULL,
|
||||||
CreatTime DATETIME NOT NULL,
|
CreatTime DATETIME NOT NULL,
|
||||||
|
|
17
swad_API.c
17
swad_API.c
|
@ -952,12 +952,14 @@ int swad__loginByUserPasswordKey (struct soap *soap,
|
||||||
// TODO: Get only if ID confirmed?
|
// TODO: Get only if ID confirmed?
|
||||||
NumRows =
|
NumRows =
|
||||||
(unsigned) DB_QuerySELECT (&mysql_res,"can not get user's data",
|
(unsigned) DB_QuerySELECT (&mysql_res,"can not get user's data",
|
||||||
"SELECT usr_IDs.UsrCod"
|
"SELECT usr_ids.UsrCod"
|
||||||
" FROM usr_IDs,usr_data"
|
" FROM usr_ids,"
|
||||||
" WHERE usr_IDs.UsrID='%s'"
|
"usr_data"
|
||||||
" AND usr_IDs.UsrCod=usr_data.UsrCod"
|
" WHERE usr_ids.UsrID='%s'"
|
||||||
" AND usr_data.Password='%s'",
|
" AND usr_ids.UsrCod=usr_data.UsrCod"
|
||||||
UsrIDNickOrEmail,userPassword);
|
" AND usr_data.Password='%s'",
|
||||||
|
UsrIDNickOrEmail,
|
||||||
|
userPassword);
|
||||||
}
|
}
|
||||||
else // String is not a valid user's nickname, email or ID
|
else // String is not a valid user's nickname, email or ID
|
||||||
return soap_receiver_fault (soap,
|
return soap_receiver_fault (soap,
|
||||||
|
@ -1307,7 +1309,8 @@ int swad__getNewPassword (struct soap *soap,
|
||||||
// TODO: Get only if ID confirmed?
|
// TODO: Get only if ID confirmed?
|
||||||
NumRows =
|
NumRows =
|
||||||
(unsigned) DB_QuerySELECT (&mysql_res,"can not get user's data",
|
(unsigned) DB_QuerySELECT (&mysql_res,"can not get user's data",
|
||||||
"SELECT UsrCod FROM usr_IDs"
|
"SELECT UsrCod"
|
||||||
|
" FROM usr_ids"
|
||||||
" WHERE UsrID='%s'",
|
" WHERE UsrID='%s'",
|
||||||
UsrIDNickOrEmail);
|
UsrIDNickOrEmail);
|
||||||
}
|
}
|
||||||
|
|
54
swad_ID.c
54
swad_ID.c
|
@ -103,9 +103,12 @@ void ID_GetListIDsFromUsrCod (struct UsrData *UsrDat)
|
||||||
// First the confirmed (Confirmed == 'Y')
|
// First the confirmed (Confirmed == 'Y')
|
||||||
// Then the unconfirmed (Confirmed == 'N')
|
// Then the unconfirmed (Confirmed == 'N')
|
||||||
NumIDs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get user's IDs",
|
NumIDs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get user's IDs",
|
||||||
"SELECT UsrID,Confirmed FROM usr_IDs"
|
"SELECT UsrID," // row[0]
|
||||||
|
"Confirmed" // row[1]
|
||||||
|
" FROM usr_ids"
|
||||||
" WHERE UsrCod=%ld"
|
" WHERE UsrCod=%ld"
|
||||||
" ORDER BY Confirmed DESC,UsrID",
|
" ORDER BY Confirmed DESC,"
|
||||||
|
"UsrID",
|
||||||
UsrDat->UsrCod);
|
UsrDat->UsrCod);
|
||||||
if (NumIDs)
|
if (NumIDs)
|
||||||
{
|
{
|
||||||
|
@ -215,22 +218,26 @@ unsigned ID_GetListUsrCodsFromUsrID (struct UsrData *UsrDat,
|
||||||
// or if password in database is empty (new user)
|
// or if password in database is empty (new user)
|
||||||
ListUsrCods->NumUsrs =
|
ListUsrCods->NumUsrs =
|
||||||
(unsigned) DB_QuerySELECT (&mysql_res,"can not get user's codes",
|
(unsigned) DB_QuerySELECT (&mysql_res,"can not get user's codes",
|
||||||
"SELECT DISTINCT(usr_IDs.UsrCod) FROM usr_IDs,usr_data"
|
"SELECT DISTINCT(usr_ids.UsrCod)"
|
||||||
" WHERE usr_IDs.UsrID IN (%s)"
|
" FROM usr_ids,"
|
||||||
"%s"
|
"usr_data"
|
||||||
" AND usr_IDs.UsrCod=usr_data.UsrCod"
|
" WHERE usr_ids.UsrID IN (%s)"
|
||||||
" AND (usr_data.Password='%s' OR usr_data.Password='')",
|
"%s"
|
||||||
|
" AND usr_ids.UsrCod=usr_data.UsrCod"
|
||||||
|
" AND (usr_data.Password='%s'"
|
||||||
|
" OR usr_data.Password='')",
|
||||||
SubQueryAllUsrs,
|
SubQueryAllUsrs,
|
||||||
OnlyConfirmedIDs ? " AND usr_IDs.Confirmed='Y'" :
|
OnlyConfirmedIDs ? " AND usr_ids.Confirmed='Y'" :
|
||||||
"",
|
"",
|
||||||
EncryptedPassword);
|
EncryptedPassword);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
ListUsrCods->NumUsrs =
|
ListUsrCods->NumUsrs =
|
||||||
(unsigned) DB_QuerySELECT (&mysql_res,"can not get user's codes",
|
(unsigned) DB_QuerySELECT (&mysql_res,"can not get user's codes",
|
||||||
"SELECT DISTINCT(UsrCod) FROM usr_IDs"
|
"SELECT DISTINCT(UsrCod)"
|
||||||
|
" FROM usr_ids"
|
||||||
" WHERE UsrID IN (%s)"
|
" WHERE UsrID IN (%s)"
|
||||||
"%s",
|
"%s",
|
||||||
SubQueryAllUsrs,
|
SubQueryAllUsrs,
|
||||||
OnlyConfirmedIDs ? " AND Confirmed='Y'" :
|
OnlyConfirmedIDs ? " AND Confirmed='Y'" :
|
||||||
"");
|
"");
|
||||||
|
@ -832,9 +839,13 @@ static bool ID_CheckIfConfirmed (long UsrCod,const char *UsrID)
|
||||||
{
|
{
|
||||||
/***** Get if ID is confirmed from database *****/
|
/***** Get if ID is confirmed from database *****/
|
||||||
return (DB_QueryCOUNT ("can not check if ID is confirmed",
|
return (DB_QueryCOUNT ("can not check if ID is confirmed",
|
||||||
"SELECT COUNT(*) FROM usr_IDs"
|
"SELECT COUNT(*)"
|
||||||
" WHERE UsrCod=%ld AND UsrID='%s' AND Confirmed='Y'",
|
" FROM usr_ids"
|
||||||
UsrCod,UsrID) != 0);
|
" WHERE UsrCod=%ld"
|
||||||
|
" AND UsrID='%s'"
|
||||||
|
" AND Confirmed='Y'",
|
||||||
|
UsrCod,
|
||||||
|
UsrID) != 0);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -845,8 +856,9 @@ static void ID_RemoveUsrIDFromDB (long UsrCod,const char *UsrID)
|
||||||
{
|
{
|
||||||
/***** Remove one of my user's IDs *****/
|
/***** Remove one of my user's IDs *****/
|
||||||
DB_QueryREPLACE ("can not remove a user's ID",
|
DB_QueryREPLACE ("can not remove a user's ID",
|
||||||
"DELETE FROM usr_IDs"
|
"DELETE FROM usr_ids"
|
||||||
" WHERE UsrCod=%ld AND UsrID='%s'",
|
" WHERE UsrCod=%ld"
|
||||||
|
" AND UsrID='%s'",
|
||||||
UsrCod,UsrID);
|
UsrCod,UsrID);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -982,7 +994,7 @@ static void ID_InsertANewUsrIDInDB (long UsrCod,const char *NewID,bool Confirmed
|
||||||
{
|
{
|
||||||
/***** Update my nickname in database *****/
|
/***** Update my nickname in database *****/
|
||||||
DB_QueryINSERT ("can not insert a new ID",
|
DB_QueryINSERT ("can not insert a new ID",
|
||||||
"INSERT INTO usr_IDs"
|
"INSERT INTO usr_ids"
|
||||||
" (UsrCod,UsrID,CreatTime,Confirmed)"
|
" (UsrCod,UsrID,CreatTime,Confirmed)"
|
||||||
" VALUES"
|
" VALUES"
|
||||||
" (%ld,'%s',NOW(),'%c')",
|
" (%ld,'%s',NOW(),'%c')",
|
||||||
|
@ -1106,7 +1118,11 @@ void ID_ConfirmUsrID (const struct UsrData *UsrDat,const char *UsrID)
|
||||||
{
|
{
|
||||||
/***** Update database *****/
|
/***** Update database *****/
|
||||||
DB_QueryINSERT ("can not confirm a user's ID",
|
DB_QueryINSERT ("can not confirm a user's ID",
|
||||||
"UPDATE usr_IDs SET Confirmed='Y'"
|
"UPDATE usr_ids"
|
||||||
" WHERE UsrCod=%ld AND UsrID='%s' AND Confirmed<>'Y'",
|
" SET Confirmed='Y'"
|
||||||
UsrDat->UsrCod,UsrID);
|
" WHERE UsrCod=%ld"
|
||||||
|
" AND UsrID='%s'"
|
||||||
|
" AND Confirmed<>'Y'",
|
||||||
|
UsrDat->UsrCod,
|
||||||
|
UsrID);
|
||||||
}
|
}
|
||||||
|
|
|
@ -212,11 +212,12 @@ void Acc_CheckIfEmptyAccountExists (void)
|
||||||
if (ID_CheckIfUsrIDIsValid (ID))
|
if (ID_CheckIfUsrIDIsValid (ID))
|
||||||
{
|
{
|
||||||
NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get user's codes",
|
NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get user's codes",
|
||||||
"SELECT usr_IDs.UsrCod"
|
"SELECT usr_ids.UsrCod"
|
||||||
" FROM usr_IDs,usr_data"
|
" FROM usr_ids,"
|
||||||
" WHERE usr_IDs.UsrID='%s'"
|
"usr_data"
|
||||||
" AND usr_IDs.UsrCod=usr_data.UsrCod"
|
" WHERE usr_ids.UsrID='%s'"
|
||||||
" AND usr_data.Password=''",
|
" AND usr_ids.UsrCod=usr_data.UsrCod"
|
||||||
|
" AND usr_data.Password=''",
|
||||||
ID);
|
ID);
|
||||||
if (NumUsrs)
|
if (NumUsrs)
|
||||||
{
|
{
|
||||||
|
@ -797,7 +798,7 @@ void Acc_CreateNewUsr (struct UsrData *UsrDat,bool CreatingMyOwnAccount)
|
||||||
{
|
{
|
||||||
Str_ConvertToUpperText (UsrDat->IDs.List[NumID].ID);
|
Str_ConvertToUpperText (UsrDat->IDs.List[NumID].ID);
|
||||||
DB_QueryINSERT ("can not store user's ID when creating user",
|
DB_QueryINSERT ("can not store user's ID when creating user",
|
||||||
"INSERT INTO usr_IDs"
|
"INSERT INTO usr_ids"
|
||||||
" (UsrCod,UsrID,CreatTime,Confirmed)"
|
" (UsrCod,UsrID,CreatTime,Confirmed)"
|
||||||
" VALUES"
|
" VALUES"
|
||||||
" (%ld,'%s',NOW(),'%c')",
|
" (%ld,'%s',NOW(),'%c')",
|
||||||
|
@ -1193,7 +1194,7 @@ static void Acc_RemoveUsr (struct UsrData *UsrDat)
|
||||||
|
|
||||||
/***** 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"
|
"DELETE FROM usr_ids"
|
||||||
" WHERE UsrCod=%ld",
|
" WHERE UsrCod=%ld",
|
||||||
UsrDat->UsrCod);
|
UsrDat->UsrCod);
|
||||||
|
|
||||||
|
|
|
@ -600,13 +600,17 @@ 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.48 (2021-03-26)"
|
#define Log_PLATFORM_VERSION "SWAD 20.51.49 (2021-03-26)"
|
||||||
#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.49: Mar 26, 2021 User IDs database table renamed. (308816 lines)
|
||||||
|
1 change necessary in database:
|
||||||
|
RENAME TABLE usr_IDs TO usr_ids;
|
||||||
|
|
||||||
Version 20.51.48: Mar 26, 2021 Room MAC addresses database table renamed. (308782 lines)
|
Version 20.51.48: Mar 26, 2021 Room MAC addresses database table renamed. (308782 lines)
|
||||||
1 change necessary in database:
|
1 change necessary in database:
|
||||||
RENAME TABLE roo_MACs TO roo_macs;
|
RENAME TABLE roo_MACs TO roo_macs;
|
||||||
|
|
|
@ -3283,27 +3283,6 @@ mysql> DESCRIBE tst_tags;
|
||||||
"UNIQUE INDEX(TagCod),"
|
"UNIQUE INDEX(TagCod),"
|
||||||
"INDEX(CrsCod,ChangeTime))");
|
"INDEX(CrsCod,ChangeTime))");
|
||||||
|
|
||||||
/***** Table usr_IDs *****/
|
|
||||||
/*
|
|
||||||
mysql> DESCRIBE usr_IDs;
|
|
||||||
+-----------+---------------+------+-----+---------+-------+
|
|
||||||
| Field | Type | Null | Key | Default | Extra |
|
|
||||||
+-----------+---------------+------+-----+---------+-------+
|
|
||||||
| UsrCod | int(11) | NO | PRI | NULL | |
|
|
||||||
| UsrID | char(16) | NO | PRI | NULL | |
|
|
||||||
| CreatTime | datetime | NO | | NULL | |
|
|
||||||
| Confirmed | enum('N','Y') | NO | | N | |
|
|
||||||
+-----------+---------------+------+-----+---------+-------+
|
|
||||||
4 rows in set (0.01 sec)
|
|
||||||
*/
|
|
||||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_IDs ("
|
|
||||||
"UsrCod INT NOT NULL,"
|
|
||||||
"UsrID CHAR(16) NOT NULL," // ID_MAX_BYTES_USR_ID
|
|
||||||
"CreatTime DATETIME NOT NULL,"
|
|
||||||
"Confirmed ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
|
||||||
"UNIQUE INDEX(UsrCod,UsrID),"
|
|
||||||
"INDEX(UsrID))");
|
|
||||||
|
|
||||||
/***** Table usr_admins *****/
|
/***** Table usr_admins *****/
|
||||||
/*
|
/*
|
||||||
mysql> DESCRIBE usr_admins;
|
mysql> DESCRIBE usr_admins;
|
||||||
|
@ -3565,6 +3544,27 @@ mysql> DESCRIBE usr_follow;
|
||||||
"UNIQUE INDEX (FollowedCod,FollowerCod),"
|
"UNIQUE INDEX (FollowedCod,FollowerCod),"
|
||||||
"INDEX (FollowTime))");
|
"INDEX (FollowTime))");
|
||||||
|
|
||||||
|
/***** Table usr_ids *****/
|
||||||
|
/*
|
||||||
|
mysql> DESCRIBE usr_ids;
|
||||||
|
+-----------+---------------+------+-----+---------+-------+
|
||||||
|
| Field | Type | Null | Key | Default | Extra |
|
||||||
|
+-----------+---------------+------+-----+---------+-------+
|
||||||
|
| UsrCod | int(11) | NO | PRI | NULL | |
|
||||||
|
| UsrID | char(16) | NO | PRI | NULL | |
|
||||||
|
| CreatTime | datetime | NO | | NULL | |
|
||||||
|
| Confirmed | enum('N','Y') | NO | | N | |
|
||||||
|
+-----------+---------------+------+-----+---------+-------+
|
||||||
|
4 rows in set (0.01 sec)
|
||||||
|
*/
|
||||||
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_ids ("
|
||||||
|
"UsrCod INT NOT NULL,"
|
||||||
|
"UsrID CHAR(16) NOT NULL," // ID_MAX_BYTES_USR_ID
|
||||||
|
"CreatTime DATETIME NOT NULL,"
|
||||||
|
"Confirmed ENUM('N','Y') NOT NULL DEFAULT 'N',"
|
||||||
|
"UNIQUE INDEX(UsrCod,UsrID),"
|
||||||
|
"INDEX(UsrID))");
|
||||||
|
|
||||||
/***** Table usr_last *****/
|
/***** Table usr_last *****/
|
||||||
/*
|
/*
|
||||||
mysql> DESCRIBE usr_last;
|
mysql> DESCRIBE usr_last;
|
||||||
|
|
|
@ -273,21 +273,28 @@ static void Dup_ListSimilarUsrs (void)
|
||||||
if (Gbl.Usrs.Other.UsrDat.Surname1[0] &&
|
if (Gbl.Usrs.Other.UsrDat.Surname1[0] &&
|
||||||
Gbl.Usrs.Other.UsrDat.FrstName[0]) // Name and surname 1 not empty
|
Gbl.Usrs.Other.UsrDat.FrstName[0]) // Name and surname 1 not empty
|
||||||
NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get similar users",
|
NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get similar users",
|
||||||
"SELECT DISTINCT UsrCod FROM"
|
"SELECT DISTINCT UsrCod"
|
||||||
"(SELECT DISTINCT UsrCod FROM usr_IDs"
|
" FROM (SELECT DISTINCT UsrCod"
|
||||||
" WHERE UsrID IN (SELECT UsrID FROM usr_IDs WHERE UsrCod=%ld)"
|
" FROM usr_ids"
|
||||||
" UNION"
|
" WHERE UsrID IN"
|
||||||
" SELECT UsrCod FROM usr_data"
|
" (SELECT UsrID"
|
||||||
" WHERE Surname1='%s' AND Surname2='%s' AND FirstName='%s')"
|
" FROM usr_ids"
|
||||||
" AS U",
|
" WHERE UsrCod=%ld)"
|
||||||
|
" UNION"
|
||||||
|
" SELECT UsrCod"
|
||||||
|
" FROM usr_data"
|
||||||
|
" WHERE Surname1='%s'"
|
||||||
|
" AND Surname2='%s'"
|
||||||
|
" AND FirstName='%s')"
|
||||||
|
" AS U",
|
||||||
Gbl.Usrs.Other.UsrDat.UsrCod,
|
Gbl.Usrs.Other.UsrDat.UsrCod,
|
||||||
Gbl.Usrs.Other.UsrDat.Surname1,
|
Gbl.Usrs.Other.UsrDat.Surname1,
|
||||||
Gbl.Usrs.Other.UsrDat.Surname2,
|
Gbl.Usrs.Other.UsrDat.Surname2,
|
||||||
Gbl.Usrs.Other.UsrDat.FrstName);
|
Gbl.Usrs.Other.UsrDat.FrstName);
|
||||||
else
|
else
|
||||||
NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get similar users",
|
NumUsrs = (unsigned) DB_QuerySELECT (&mysql_res,"can not get similar users",
|
||||||
"SELECT DISTINCT UsrCod FROM usr_IDs"
|
"SELECT DISTINCT UsrCod FROM usr_ids"
|
||||||
" WHERE UsrID IN (SELECT UsrID FROM usr_IDs WHERE UsrCod=%ld)",
|
" WHERE UsrID IN (SELECT UsrID FROM usr_ids WHERE UsrCod=%ld)",
|
||||||
Gbl.Usrs.Other.UsrDat.UsrCod);
|
Gbl.Usrs.Other.UsrDat.UsrCod);
|
||||||
|
|
||||||
/***** List possible similar users *****/
|
/***** List possible similar users *****/
|
||||||
|
|
|
@ -552,7 +552,8 @@ static bool Pwd_CheckIfPasswdIsUsrIDorName (const char *PlainPassword)
|
||||||
|
|
||||||
/***** Get if password is found in user's ID from database *****/
|
/***** Get if password is found in user's ID from database *****/
|
||||||
Found = (DB_QueryCOUNT ("can not check if a password matches a user's ID",
|
Found = (DB_QueryCOUNT ("can not check if a password matches a user's ID",
|
||||||
"SELECT COUNT(*) FROM usr_IDs"
|
"SELECT COUNT(*)"
|
||||||
|
" FROM usr_ids"
|
||||||
" WHERE UsrID='%s'",
|
" WHERE UsrID='%s'",
|
||||||
PlainPassword) != 0);
|
PlainPassword) != 0);
|
||||||
|
|
||||||
|
@ -560,11 +561,14 @@ static bool Pwd_CheckIfPasswdIsUsrIDorName (const char *PlainPassword)
|
||||||
if (!Found)
|
if (!Found)
|
||||||
Found = (DB_QueryCOUNT ("can not check if a password matches"
|
Found = (DB_QueryCOUNT ("can not check if a password matches"
|
||||||
" a first name or a surname",
|
" a first name or a surname",
|
||||||
"SELECT COUNT(*) FROM usr_data"
|
"SELECT COUNT(*)"
|
||||||
|
" FROM usr_data"
|
||||||
" WHERE FirstName='%s'"
|
" WHERE FirstName='%s'"
|
||||||
" OR Surname1='%s'"
|
" OR Surname1='%s'"
|
||||||
" OR Surname2='%s'",
|
" OR Surname2='%s'",
|
||||||
PlainPassword,PlainPassword,PlainPassword) != 0);
|
PlainPassword,
|
||||||
|
PlainPassword,
|
||||||
|
PlainPassword) != 0);
|
||||||
|
|
||||||
return Found;
|
return Found;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Reference in New Issue