Version 21.20.1: Sep 30, 2021 Code refactoring related to nicknames.

This commit is contained in:
acanas 2021-09-30 20:11:00 +02:00
parent bed2db97f9
commit 265f284802
18 changed files with 66 additions and 60 deletions

View File

@ -231,7 +231,7 @@ static int API_GetCurrentDegCodFromCurrentCrsCod (void);
static bool API_GetSomeUsrDataFromUsrCod (struct UsrData *UsrDat,long CrsCod); static bool API_GetSomeUsrDataFromUsrCod (struct UsrData *UsrDat,long CrsCod);
static int API_CheckParamsNewAccount (char *NewNickWithArr, // Input static int API_CheckParamsNewAccount (char *NewNickWithArr, // Input
char NewNickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1], // Output char NewNickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1], // Output
char *NewEmail, // Input-output char *NewEmail, // Input-output
char *NewPlainPassword, // Input char *NewPlainPassword, // Input
char *NewEncryptedPassword); // Output char *NewEncryptedPassword); // Output
@ -679,7 +679,7 @@ int swad__createAccount (struct soap *soap,
char *userNickname,char *userEmail,char *userPassword,char *appKey, // input char *userNickname,char *userEmail,char *userPassword,char *appKey, // input
struct swad__createAccountOutput *createAccountOut) // output struct swad__createAccountOutput *createAccountOut) // output
{ {
char NewNickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1]; char NewNickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
char NewEncryptedPassword[Pwd_BYTES_ENCRYPTED_PASSWORD + 1]; char NewEncryptedPassword[Pwd_BYTES_ENCRYPTED_PASSWORD + 1];
int Result; int Result;
int ReturnCode; int ReturnCode;
@ -752,14 +752,14 @@ int swad__createAccount (struct soap *soap,
// Return false on error // Return false on error
//char *userNickname,char *userEmail,char *userID,char *userPassword //char *userNickname,char *userEmail,char *userID,char *userPassword
static int API_CheckParamsNewAccount (char *NewNickWithArr, // Input static int API_CheckParamsNewAccount (char *NewNickWithArr, // Input
char NewNickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1], // Output char NewNickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1], // Output
char *NewEmail, // Input-output char *NewEmail, // Input-output
char *NewPlainPassword, // Input char *NewPlainPassword, // Input
char *NewEncryptedPassword) // Output char *NewEncryptedPassword) // Output
{ {
/***** Step 1/3: Check new nickname *****/ /***** Step 1/3: Check new nickname *****/
/* Make a copy without possible starting arrobas */ /* Make a copy without possible starting arrobas */
Str_Copy (NewNickWithoutArr,NewNickWithArr,Cns_MAX_BYTES_USR_LOGIN); Str_Copy (NewNickWithoutArr,NewNickWithArr,Nck_MAX_BYTES_NICK_WITHOUT_ARROBA);
if (Nck_CheckIfNickWithArrIsValid (NewNickWithArr)) // If new nickname is valid if (Nck_CheckIfNickWithArrIsValid (NewNickWithArr)) // If new nickname is valid
{ {
/***** Remove arrobas at the beginning *****/ /***** Remove arrobas at the beginning *****/
@ -3569,7 +3569,7 @@ int swad__sendMessage (struct soap *soap,
{ {
int ReturnCode; int ReturnCode;
long ReplyUsrCod = -1L; long ReplyUsrCod = -1L;
char Nickname[Cns_MAX_BYTES_USR_LOGIN + 1]; char Nickname[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
char *Query = NULL; char *Query = NULL;
MYSQL_RES *mysql_res; MYSQL_RES *mysql_res;
MYSQL_ROW row; MYSQL_ROW row;
@ -3658,7 +3658,7 @@ int swad__sendMessage (struct soap *soap,
while (*Ptr) while (*Ptr)
{ {
/* Find next string in text until comma (leading and trailing spaces are removed) */ /* Find next string in text until comma (leading and trailing spaces are removed) */
Str_GetNextStringUntilComma (&Ptr,Nickname,Cns_MAX_BYTES_USR_LOGIN); Str_GetNextStringUntilComma (&Ptr,Nickname,sizeof (Nickname) - 1);
/* Check if string is a valid nickname */ /* Check if string is a valid nickname */
if (Nck_CheckIfNickWithArrIsValid (Nickname)) // String is a nickname? if (Nck_CheckIfNickWithArrIsValid (Nickname)) // String is a nickname?

View File

@ -94,9 +94,9 @@ extern struct Globals Gbl;
static void Acc_ShowFormCheckIfIHaveAccount (const char *Title); static void Acc_ShowFormCheckIfIHaveAccount (const char *Title);
static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrData *UsrDat); static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrData *UsrDat);
static void Acc_ShowFormRequestNewAccountWithParams (const char NewNickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1], static void Acc_ShowFormRequestNewAccountWithParams (const char NewNickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1],
const char *NewEmail); const char *NewEmail);
static bool Acc_GetParamsNewAccount (char NewNickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1], static bool Acc_GetParamsNewAccount (char NewNickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1],
char NewEmail[Cns_MAX_BYTES_EMAIL_ADDRESS + 1], char NewEmail[Cns_MAX_BYTES_EMAIL_ADDRESS + 1],
char *NewEncryptedPassword); char *NewEncryptedPassword);
static void Acc_CreateNewEncryptedUsrCod (struct UsrData *UsrDat); static void Acc_CreateNewEncryptedUsrCod (struct UsrData *UsrDat);
@ -361,7 +361,7 @@ void Acc_ShowFormCreateMyAccount (void)
/************ Show form to create a new account using parameters *************/ /************ Show form to create a new account using parameters *************/
/*****************************************************************************/ /*****************************************************************************/
static void Acc_ShowFormRequestNewAccountWithParams (const char NewNickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1], static void Acc_ShowFormRequestNewAccountWithParams (const char NewNickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1],
const char *NewEmail) const char *NewEmail)
{ {
extern const char *Hlp_PROFILE_SignUp; extern const char *Hlp_PROFILE_SignUp;
@ -371,7 +371,7 @@ static void Acc_ShowFormRequestNewAccountWithParams (const char NewNickWithoutAr
extern const char *Txt_HELP_nickname; extern const char *Txt_HELP_nickname;
extern const char *Txt_HELP_email; extern const char *Txt_HELP_email;
extern const char *Txt_Email; extern const char *Txt_Email;
char NewNickWithArr[Cns_MAX_BYTES_USR_LOGIN + 1]; char NewNickWithArr[1 + Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
/***** Begin form to enter some data of the new user *****/ /***** Begin form to enter some data of the new user *****/
Frm_BeginForm (ActCreUsrAcc); Frm_BeginForm (ActCreUsrAcc);
@ -596,7 +596,7 @@ static void Acc_PutParamsToRemoveMyAccount (void *EncryptedUsrCod)
bool Acc_CreateMyNewAccountAndLogIn (void) bool Acc_CreateMyNewAccountAndLogIn (void)
{ {
char NewNickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1]; char NewNickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
char NewEmail[Cns_MAX_BYTES_EMAIL_ADDRESS + 1]; char NewEmail[Cns_MAX_BYTES_EMAIL_ADDRESS + 1];
char NewEncryptedPassword[Pwd_BYTES_ENCRYPTED_PASSWORD + 1]; char NewEncryptedPassword[Pwd_BYTES_ENCRYPTED_PASSWORD + 1];
@ -644,7 +644,7 @@ bool Acc_CreateMyNewAccountAndLogIn (void)
/*****************************************************************************/ /*****************************************************************************/
// Return false on error // Return false on error
static bool Acc_GetParamsNewAccount (char NewNickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1], static bool Acc_GetParamsNewAccount (char NewNickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1],
char NewEmail[Cns_MAX_BYTES_EMAIL_ADDRESS + 1], char NewEmail[Cns_MAX_BYTES_EMAIL_ADDRESS + 1],
char NewEncryptedPassword[Pwd_BYTES_ENCRYPTED_PASSWORD + 1]) char NewEncryptedPassword[Pwd_BYTES_ENCRYPTED_PASSWORD + 1])
{ {
@ -652,15 +652,15 @@ static bool Acc_GetParamsNewAccount (char NewNickWithoutArr[Cns_MAX_BYTES_USR_LO
extern const char *Txt_The_nickname_entered_X_is_not_valid_; extern const char *Txt_The_nickname_entered_X_is_not_valid_;
extern const char *Txt_The_email_address_X_had_been_registered_by_another_user; extern const char *Txt_The_email_address_X_had_been_registered_by_another_user;
extern const char *Txt_The_email_address_entered_X_is_not_valid; extern const char *Txt_The_email_address_entered_X_is_not_valid;
char NewNickWithArr[1 + Cns_MAX_BYTES_USR_LOGIN + 1]; char NewNickWithArr[1 + Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
char NewPlainPassword[Pwd_MAX_BYTES_PLAIN_PASSWORD + 1]; char NewPlainPassword[Pwd_MAX_BYTES_PLAIN_PASSWORD + 1];
bool Error = false; bool Error = false;
/***** Step 1/3: Get new nickname from form *****/ /***** Step 1/3: Get new nickname from form *****/
Par_GetParToText ("NewNick",NewNickWithArr,Cns_MAX_BYTES_USR_LOGIN); Par_GetParToText ("NewNick",NewNickWithArr,sizeof (NewNickWithArr) - 1);
/* Remove arrobas at the beginning */ /* Remove arrobas at the beginning */
Str_Copy (NewNickWithoutArr,NewNickWithArr,Cns_MAX_BYTES_USR_LOGIN); Str_Copy (NewNickWithoutArr,NewNickWithArr,sizeof (NewNickWithArr) - 1);
Str_RemoveLeadingArrobas (NewNickWithoutArr); Str_RemoveLeadingArrobas (NewNickWithoutArr);
/* Create a new version of the nickname with arroba */ /* Create a new version of the nickname with arroba */

View File

@ -80,7 +80,7 @@ unsigned Acc_DB_GetUsrsWithID (MYSQL_RES **mysql_res,
/****** Check if a nickname matches any of the nicknames of other users ******/ /****** Check if a nickname matches any of the nicknames of other users ******/
/*****************************************************************************/ /*****************************************************************************/
bool Acc_DB_CheckIfNicknameAlreadyExists (const char NewNickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1]) bool Acc_DB_CheckIfNicknameAlreadyExists (const char NewNickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1])
{ {
return (DB_QueryCOUNT ("can not check if nickname already existed", return (DB_QueryCOUNT ("can not check if nickname already existed",
"SELECT COUNT(*)" "SELECT COUNT(*)"

View File

@ -47,7 +47,7 @@
unsigned Acc_DB_GetUsrsWithID (MYSQL_RES **mysql_res, unsigned Acc_DB_GetUsrsWithID (MYSQL_RES **mysql_res,
const char ID[ID_MAX_BYTES_USR_ID + 1]); const char ID[ID_MAX_BYTES_USR_ID + 1]);
bool Acc_DB_CheckIfNicknameAlreadyExists (const char NewNickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1]); bool Acc_DB_CheckIfNicknameAlreadyExists (const char NewNickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1]);
bool Acc_DB_CheckIfEmailAlreadyExists (const char NewEmail[Cns_MAX_BYTES_EMAIL_ADDRESS + 1]); bool Acc_DB_CheckIfEmailAlreadyExists (const char NewEmail[Cns_MAX_BYTES_EMAIL_ADDRESS + 1]);
long Acc_DB_CreateNewUsr (const struct UsrData *UsrDat); long Acc_DB_CreateNewUsr (const struct UsrData *UsrDat);

View File

@ -156,7 +156,7 @@ void Agd_PutFormLogInToShowUsrAgenda (void)
void Agd_PutParamAgd (void) void Agd_PutParamAgd (void)
{ {
char Nickname[1 + Cns_MAX_BYTES_USR_LOGIN + 1]; char Nickname[1 + Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
snprintf (Nickname,sizeof (Nickname),"@%s",Gbl.Usrs.Other.UsrDat.Nickname); snprintf (Nickname,sizeof (Nickname),"@%s",Gbl.Usrs.Other.UsrDat.Nickname);
Par_PutHiddenParamString (NULL,"agd",Nickname); Par_PutHiddenParamString (NULL,"agd",Nickname);
@ -710,7 +710,7 @@ static void Agd_PutIconToViewEditMyFullAgenda (void *EncryptedUsrCod)
static void Agd_PutIconToShowQR (void) static void Agd_PutIconToShowQR (void)
{ {
char URL[Cns_MAX_BYTES_WWW + Cns_MAX_BYTES_USR_LOGIN + 1]; char URL[Cns_MAX_BYTES_WWW + 1];
extern const char *Lan_STR_LANG_ID[1 + Lan_NUM_LANGUAGES]; extern const char *Lan_STR_LANG_ID[1 + Lan_NUM_LANGUAGES];
snprintf (URL,sizeof (URL),"%s/%s?agd=@%s", snprintf (URL,sizeof (URL),"%s/%s?agd=@%s",

View File

@ -602,13 +602,14 @@ TODO: FIX BUG, URGENT! En las fechas como par
TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo. TODO: En las encuestas, que los estudiantes no puedan ver los resultados hasta que no finalice el plazo.
*/ */
#define Log_PLATFORM_VERSION "SWAD 21.20 (2021-09-30)" #define Log_PLATFORM_VERSION "SWAD 21.20.1 (2021-09-30)"
#define CSS_FILE "swad20.45.css" #define CSS_FILE "swad20.45.css"
#define JS_FILE "swad20.69.1.js" #define JS_FILE "swad20.69.1.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 21.20.1: Sep 30, 2021 Code refactoring related to nicknames. (317756 lines)
Version 21.20: Sep 30, 2021 New module swad_nickname_database for database queries related to nicknames. (317751 lines) Version 21.20: Sep 30, 2021 New module swad_nickname_database for database queries related to nicknames. (317751 lines)
Version 21.19: Sep 29, 2021 New module swad_network_database for database queries related to webs/social networks. (317644 lines) Version 21.19: Sep 29, 2021 New module swad_network_database for database queries related to webs/social networks. (317644 lines)
Version 21.18: Sep 29, 2021 New module swad_MFU_database for database queries related to most frequently used actions. (317529 lines) Version 21.18: Sep 29, 2021 New module swad_MFU_database for database queries related to most frequently used actions. (317529 lines)

View File

@ -1102,7 +1102,7 @@ static void Enr_ReceiveFormUsrsCrs (Rol_Role_t Role)
/* Find next string in text */ /* Find next string in text */
Str_GetNextStringUntilSeparator (&Ptr,UsrDat.UsrIDNickOrEmail, Str_GetNextStringUntilSeparator (&Ptr,UsrDat.UsrIDNickOrEmail,
Cns_MAX_BYTES_USR_LOGIN); sizeof (UsrDat.UsrIDNickOrEmail) - 1);
/* Reset default list of users' codes */ /* Reset default list of users' codes */
ListUsrCods.NumUsrs = 0; ListUsrCods.NumUsrs = 0;
@ -1230,7 +1230,7 @@ static void Enr_ReceiveFormUsrsCrs (Rol_Role_t Role)
/* Find next string in text */ /* Find next string in text */
Str_GetNextStringUntilSeparator (&Ptr,UsrDat.UsrIDNickOrEmail, Str_GetNextStringUntilSeparator (&Ptr,UsrDat.UsrIDNickOrEmail,
Cns_MAX_BYTES_USR_LOGIN); sizeof (UsrDat.UsrIDNickOrEmail) - 1);
/* Reset default list of users' codes */ /* Reset default list of users' codes */
ListUsrCods.NumUsrs = 0; ListUsrCods.NumUsrs = 0;

View File

@ -674,7 +674,7 @@ static void Msg_WriteFormSubjectAndContentMsgToUsrs (struct Msg_Messages *Messag
static void Msg_PutHiddenParamAnotherRecipient (const struct UsrData *UsrDat) static void Msg_PutHiddenParamAnotherRecipient (const struct UsrData *UsrDat)
{ {
char NickWithArr[1 + Cns_MAX_BYTES_USR_LOGIN + 1]; char NickWithArr[1 + Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
snprintf (NickWithArr,sizeof (NickWithArr),"@%s",UsrDat->Nickname); snprintf (NickWithArr,sizeof (NickWithArr),"@%s",UsrDat->Nickname);
Par_PutHiddenParamString (NULL,"OtherRecipients",NickWithArr); Par_PutHiddenParamString (NULL,"OtherRecipients",NickWithArr);

View File

@ -38,6 +38,8 @@
#define Msg_MAX_CHARS_FILTER_CONTENT (128 - 1) // 127 #define Msg_MAX_CHARS_FILTER_CONTENT (128 - 1) // 127
#define Msg_MAX_BYTES_FILTER_CONTENT ((Msg_MAX_CHARS_FILTER_CONTENT + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047 #define Msg_MAX_BYTES_FILTER_CONTENT ((Msg_MAX_CHARS_FILTER_CONTENT + 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047
#define Msg_MAX_BYTES_LIST_OTHER_RECIPIENTS ((Cns_MAX_BYTES_USR_LOGIN + 2) * Cfg_MAX_USRS_IN_LIST)
/*****************************************************************************/ /*****************************************************************************/
/******************************** Public types *******************************/ /******************************** Public types *******************************/
/*****************************************************************************/ /*****************************************************************************/

View File

@ -75,7 +75,7 @@ static void Nck_UpdateUsrNick (struct UsrData *UsrDat);
bool Nck_CheckIfNickWithArrIsValid (const char *NickWithArr) bool Nck_CheckIfNickWithArrIsValid (const char *NickWithArr)
{ {
char NickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1]; char NickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
unsigned Length; unsigned Length;
const char *Ptr; const char *Ptr;
@ -113,9 +113,10 @@ bool Nck_CheckIfNickWithArrIsValid (const char *NickWithArr)
// Nickname may have leading '@' // Nickname may have leading '@'
// Returns true if nickname found in database // Returns true if nickname found in database
long Nck_GetUsrCodFromNickname (const char Nickname[Cns_MAX_BYTES_USR_LOGIN + 1]) long Nck_GetUsrCodFromNickname (const char Nickname[1 + Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1])
{ {
char NickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1]; char NickWithArr[1 + Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
char NickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
/***** Trivial check 1: nickname should be not null *****/ /***** Trivial check 1: nickname should be not null *****/
if (!Nickname) if (!Nickname)
@ -125,9 +126,12 @@ long Nck_GetUsrCodFromNickname (const char Nickname[Cns_MAX_BYTES_USR_LOGIN + 1]
if (!Nickname[0]) if (!Nickname[0])
return -1L; return -1L;
/***** Make a copy without possible starting arrobas *****/ /***** Make a copy with possible leading arrobas *****/
Str_Copy (NickWithoutArr,Nickname,sizeof (NickWithoutArr) - 1); Str_Copy (NickWithArr,Nickname,sizeof (NickWithArr) - 1);
Str_RemoveLeadingArrobas (NickWithoutArr);
/***** Remove leading arrobas *****/
Str_RemoveLeadingArrobas (NickWithArr);
Str_Copy (NickWithoutArr,NickWithArr,sizeof (NickWithoutArr) - 1);
/***** Get user's code from database *****/ /***** Get user's code from database *****/
return Nck_DB_GetUsrCodFromNickname (NickWithoutArr); return Nck_DB_GetUsrCodFromNickname (NickWithoutArr);
@ -175,7 +179,7 @@ static void Nck_ShowFormChangeUsrNickname (bool ItsMe,
unsigned NumNicks; unsigned NumNicks;
unsigned NumNick; unsigned NumNick;
Act_Action_t NextAction; Act_Action_t NextAction;
char NickWithArr[1 + Cns_MAX_BYTES_USR_LOGIN + 1]; char NickWithArr[1 + Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
const struct UsrData *UsrDat = (ItsMe ? &Gbl.Usrs.Me.UsrDat : const struct UsrData *UsrDat = (ItsMe ? &Gbl.Usrs.Me.UsrDat :
&Gbl.Usrs.Other.UsrDat); &Gbl.Usrs.Other.UsrDat);

View File

@ -38,15 +38,13 @@
#define Nck_MAX_CHARS_NICK_WITHOUT_ARROBA 16 #define Nck_MAX_CHARS_NICK_WITHOUT_ARROBA 16
#define Nck_MAX_BYTES_NICK_WITHOUT_ARROBA Nck_MAX_CHARS_NICK_WITHOUT_ARROBA #define Nck_MAX_BYTES_NICK_WITHOUT_ARROBA Nck_MAX_CHARS_NICK_WITHOUT_ARROBA
#define Nck_MAX_BYTES_LIST_NICKS ((Cns_MAX_BYTES_USR_LOGIN + 2) * Cfg_MAX_USRS_IN_LIST)
/*****************************************************************************/ /*****************************************************************************/
/***************************** Public prototypes *****************************/ /***************************** Public prototypes *****************************/
/*****************************************************************************/ /*****************************************************************************/
bool Nck_CheckIfNickWithArrIsValid (const char *NickWithArr); bool Nck_CheckIfNickWithArrIsValid (const char *NickWithArr);
long Nck_GetUsrCodFromNickname (const char Nickname[Cns_MAX_BYTES_USR_LOGIN + 1]); long Nck_GetUsrCodFromNickname (const char Nickname[1 + Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1]);
void Nck_ShowFormChangeMyNickname (bool IMustFillNickname); void Nck_ShowFormChangeMyNickname (bool IMustFillNickname);
void Nck_ShowFormChangeOtherUsrNickname (void); void Nck_ShowFormChangeOtherUsrNickname (void);

View File

@ -79,7 +79,7 @@ void Nck_DB_UpdateNick (long UsrCod,const char *NewNickname)
/************** Get user's code of a user from his/her nickname **************/ /************** Get user's code of a user from his/her nickname **************/
/*****************************************************************************/ /*****************************************************************************/
long Nck_DB_GetUsrCodFromNickname (const char NickWithoutArroba[Cns_MAX_BYTES_USR_LOGIN + 1]) long Nck_DB_GetUsrCodFromNickname (const char NickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1])
{ {
return DB_QuerySELECTCode ("can not get user's code", return DB_QuerySELECTCode ("can not get user's code",
"SELECT usr_nicknames.UsrCod" "SELECT usr_nicknames.UsrCod"
@ -87,7 +87,7 @@ long Nck_DB_GetUsrCodFromNickname (const char NickWithoutArroba[Cns_MAX_BYTES_US
"usr_data" "usr_data"
" WHERE usr_nicknames.Nickname='%s'" " WHERE usr_nicknames.Nickname='%s'"
" AND usr_nicknames.UsrCod=usr_data.UsrCod", " AND usr_nicknames.UsrCod=usr_data.UsrCod",
NickWithoutArroba); NickWithoutArr);
} }
/*****************************************************************************/ /*****************************************************************************/
@ -95,10 +95,10 @@ long Nck_DB_GetUsrCodFromNickname (const char NickWithoutArroba[Cns_MAX_BYTES_US
/*****************************************************************************/ /*****************************************************************************/
void Nck_DB_GetNicknameFromUsrCod (long UsrCod, void Nck_DB_GetNicknameFromUsrCod (long UsrCod,
char NickWithoutArroba[Cns_MAX_BYTES_USR_LOGIN + 1]) char NickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1])
{ {
/***** Get current (last updated) user's nickname from database *****/ /***** Get current (last updated) user's nickname from database *****/
DB_QuerySELECTString (NickWithoutArroba,Cns_MAX_BYTES_USR_LOGIN, DB_QuerySELECTString (NickWithoutArr,Nck_MAX_BYTES_NICK_WITHOUT_ARROBA,
"can not get nickname", "can not get nickname",
"SELECT Nickname" "SELECT Nickname"
" FROM usr_nicknames" " FROM usr_nicknames"
@ -127,7 +127,7 @@ unsigned Nck_DB_GetUsrNicknames (MYSQL_RES **mysql_res,long UsrCod)
/************ Check if nickname matches any of a user's nicknames ************/ /************ Check if nickname matches any of a user's nicknames ************/
/*****************************************************************************/ /*****************************************************************************/
bool Nck_DB_CheckIfNickMatchesAnyUsrNick (long UsrCod,const char NickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1]) bool Nck_DB_CheckIfNickMatchesAnyUsrNick (long UsrCod,const char NickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1])
{ {
return (DB_QueryCOUNT ("can not check if nickname already existed", return (DB_QueryCOUNT ("can not check if nickname already existed",
"SELECT COUNT(*)" "SELECT COUNT(*)"
@ -142,7 +142,7 @@ bool Nck_DB_CheckIfNickMatchesAnyUsrNick (long UsrCod,const char NickWithoutArr[
/********* Check if nickname matches any of other user's nicknames ***********/ /********* Check if nickname matches any of other user's nicknames ***********/
/*****************************************************************************/ /*****************************************************************************/
bool Nck_DB_CheckIfNickMatchesAnyOtherUsrsNicks (long UsrCod,const char NickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1]) bool Nck_DB_CheckIfNickMatchesAnyOtherUsrsNicks (long UsrCod,const char NickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1])
{ {
return (DB_QueryCOUNT ("can not check if nickname already existed", return (DB_QueryCOUNT ("can not check if nickname already existed",
"SELECT COUNT(*)" "SELECT COUNT(*)"

View File

@ -40,12 +40,12 @@
void Nck_DB_UpdateNick (long UsrCod,const char *NewNickname); void Nck_DB_UpdateNick (long UsrCod,const char *NewNickname);
long Nck_DB_GetUsrCodFromNickname (const char NickWithoutArroba[Cns_MAX_BYTES_USR_LOGIN + 1]); long Nck_DB_GetUsrCodFromNickname (const char NickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1]);
void Nck_DB_GetNicknameFromUsrCod (long UsrCod, void Nck_DB_GetNicknameFromUsrCod (long UsrCod,
char Nickname[Cns_MAX_BYTES_USR_LOGIN + 1]); char NickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1]);
unsigned Nck_DB_GetUsrNicknames (MYSQL_RES **mysql_res,long UsrCod); unsigned Nck_DB_GetUsrNicknames (MYSQL_RES **mysql_res,long UsrCod);
bool Nck_DB_CheckIfNickMatchesAnyUsrNick (long UsrCod,const char NickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1]); bool Nck_DB_CheckIfNickMatchesAnyUsrNick (long UsrCod,const char NickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1]);
bool Nck_DB_CheckIfNickMatchesAnyOtherUsrsNicks (long UsrCod,const char NickWithoutArr[Cns_MAX_BYTES_USR_LOGIN + 1]); bool Nck_DB_CheckIfNickMatchesAnyOtherUsrsNicks (long UsrCod,const char NickWithoutArr[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1]);
void Nck_DB_RemoveNickname (long UsrCod,const char *Nickname); void Nck_DB_RemoveNickname (long UsrCod,const char *Nickname);
void Nck_DB_RemoveUsrNicknames (long UsrCod); void Nck_DB_RemoveUsrNicknames (long UsrCod);

View File

@ -662,7 +662,7 @@ void Par_GetMainParams (void)
extern const char *The_ThemeId[The_NUM_THEMES]; extern const char *The_ThemeId[The_NUM_THEMES];
extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS]; extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS];
long ActCod; long ActCod;
char Nickname[Cns_MAX_BYTES_USR_LOGIN + 1]; char Nickname[1 + Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
char URL[PATH_MAX + 1]; char URL[PATH_MAX + 1];
char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1]; char LongStr[Cns_MAX_DECIMAL_DIGITS_LONG + 1];
@ -690,7 +690,7 @@ void Par_GetMainParams (void)
/***** Get another user's nickname, if exists /***** Get another user's nickname, if exists
(this nickname is used to go to another user's profile, (this nickname is used to go to another user's profile,
not to get the logged user) *****/ not to get the logged user) *****/
if (Par_GetParToText ("usr",Nickname,Cns_MAX_BYTES_USR_LOGIN)) if (Par_GetParToText ("usr",Nickname,sizeof (Nickname) - 1))
{ {
if (Nickname[0]) if (Nickname[0])
{ {
@ -706,7 +706,7 @@ void Par_GetMainParams (void)
Gbl.Action.Act = Gbl.Action.Original = ActSeeOthPubPrf; // Set default action if no other is specified Gbl.Action.Act = Gbl.Action.Original = ActSeeOthPubPrf; // Set default action if no other is specified
} }
} }
else if (Par_GetParToText ("agd",Nickname,Cns_MAX_BYTES_USR_LOGIN)) else if (Par_GetParToText ("agd",Nickname,sizeof (Nickname) - 1))
{ {
if (Nickname[0]) if (Nickname[0])
{ {

View File

@ -195,7 +195,7 @@ void Prf_RequestUserProfile (void)
extern const char *The_ClassFormInBox[The_NUM_THEMES]; extern const char *The_ClassFormInBox[The_NUM_THEMES];
extern const char *Txt_Nickname; extern const char *Txt_Nickname;
extern const char *Txt_Continue; extern const char *Txt_Continue;
char NickWithArr[1 + Cns_MAX_BYTES_USR_LOGIN + 1]; char NickWithArr[1 + Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
if (Gbl.Usrs.Me.Logged) if (Gbl.Usrs.Me.Logged)
{ {
@ -222,7 +222,7 @@ void Prf_RequestUserProfile (void)
snprintf (NickWithArr,sizeof (NickWithArr),"@%s", snprintf (NickWithArr,sizeof (NickWithArr),"@%s",
Gbl.Usrs.Me.UsrDat.Nickname); Gbl.Usrs.Me.UsrDat.Nickname);
HTM_INPUT_TEXT ("usr",Cns_MAX_BYTES_USR_LOGIN,NickWithArr, HTM_INPUT_TEXT ("usr",sizeof (NickWithArr) - 1,NickWithArr,
HTM_DONT_SUBMIT_ON_CHANGE, HTM_DONT_SUBMIT_ON_CHANGE,
"size=\"18\""); "size=\"18\"");
HTM_LABEL_End (); HTM_LABEL_End ();

View File

@ -1885,16 +1885,16 @@ void Str_RemoveLeadingZeros (char *Str)
void Str_RemoveLeadingArrobas (char *Str) void Str_RemoveLeadingArrobas (char *Str)
{ {
size_t NumLeadingArrobas; size_t NumLeadingArr;
if (Str) if (Str)
if (Str[0]) if (Str[0])
{ {
NumLeadingArrobas = strspn (Str,"@"); NumLeadingArr = strspn (Str,"@");
if (NumLeadingArrobas) if (NumLeadingArr)
// Do not use strcpy / memcpy because the strings overlap // Do not use strcpy / memcpy because the strings overlap
memmove (Str,&Str[NumLeadingArrobas], memmove (Str,&Str[NumLeadingArr],
strlen (Str) - NumLeadingArrobas + 1); strlen (Str) - NumLeadingArr + 1);
} }
} }

View File

@ -62,6 +62,7 @@
#include "swad_ID.h" #include "swad_ID.h"
#include "swad_language.h" #include "swad_language.h"
#include "swad_mail_database.h" #include "swad_mail_database.h"
#include "swad_message.h"
#include "swad_MFU.h" #include "swad_MFU.h"
#include "swad_nickname.h" #include "swad_nickname.h"
#include "swad_nickname_database.h" #include "swad_nickname_database.h"
@ -2870,7 +2871,7 @@ void Usr_PutFormLogOut (void)
void Usr_GetParamUsrIdLogin (void) void Usr_GetParamUsrIdLogin (void)
{ {
Par_GetParToText ("UsrId",Gbl.Usrs.Me.UsrIdLogin,Cns_MAX_BYTES_USR_LOGIN); Par_GetParToText ("UsrId",Gbl.Usrs.Me.UsrIdLogin,sizeof (Gbl.Usrs.Me.UsrIdLogin) - 1);
// Users' IDs are always stored internally without leading zeros // Users' IDs are always stored internally without leading zeros
Str_RemoveLeadingZeros (Gbl.Usrs.Me.UsrIdLogin); Str_RemoveLeadingZeros (Gbl.Usrs.Me.UsrIdLogin);
} }
@ -2884,7 +2885,7 @@ static void Usr_GetParamOtherUsrIDNickOrEMail (void)
/***** Get parameter with the plain user's ID, @nick or email of another user *****/ /***** Get parameter with the plain user's ID, @nick or email of another user *****/
Par_GetParToText ("OtherUsrIDNickOrEMail", Par_GetParToText ("OtherUsrIDNickOrEMail",
Gbl.Usrs.Other.UsrDat.UsrIDNickOrEmail, Gbl.Usrs.Other.UsrDat.UsrIDNickOrEmail,
Cns_MAX_BYTES_USR_LOGIN); sizeof (Gbl.Usrs.Other.UsrDat.UsrIDNickOrEmail) - 1);
// If it's a user's ID (if does not contain '@') // If it's a user's ID (if does not contain '@')
if (strchr (Gbl.Usrs.Other.UsrDat.UsrIDNickOrEmail,(int) '@') != NULL) // '@' not found if (strchr (Gbl.Usrs.Other.UsrDat.UsrIDNickOrEmail,(int) '@') != NULL) // '@' not found
@ -6003,7 +6004,7 @@ bool Usr_GetListMsgRecipientsWrittenExplicitelyBySender (bool WriteErrorMsgs)
/***** Get recipients written explicetely *****/ /***** Get recipients written explicetely *****/
Par_GetParToText ("OtherRecipients",Gbl.Usrs.ListOtherRecipients, Par_GetParToText ("OtherRecipients",Gbl.Usrs.ListOtherRecipients,
Nck_MAX_BYTES_LIST_NICKS); Msg_MAX_BYTES_LIST_OTHER_RECIPIENTS);
/***** Add encrypted users' IDs to the list with all selected users *****/ /***** Add encrypted users' IDs to the list with all selected users *****/
if (Gbl.Usrs.ListOtherRecipients[0]) if (Gbl.Usrs.ListOtherRecipients[0])
@ -6016,7 +6017,7 @@ bool Usr_GetListMsgRecipientsWrittenExplicitelyBySender (bool WriteErrorMsgs)
while (*Ptr) while (*Ptr)
{ {
/* Find next string in text until comma or semicolon (leading and trailing spaces are removed) */ /* Find next string in text until comma or semicolon (leading and trailing spaces are removed) */
Str_GetNextStringUntilComma (&Ptr,UsrIDNickOrEmail,Cns_MAX_BYTES_USR_LOGIN); Str_GetNextStringUntilComma (&Ptr,UsrIDNickOrEmail,sizeof (UsrIDNickOrEmail) - 1);
/* Check if string is plain user's ID or nickname and get encrypted user's ID */ /* Check if string is plain user's ID or nickname and get encrypted user's ID */
if (UsrIDNickOrEmail[0]) if (UsrIDNickOrEmail[0])
@ -6356,7 +6357,7 @@ static void Usr_AllocateListOtherRecipients (void)
{ {
if (!Gbl.Usrs.ListOtherRecipients) if (!Gbl.Usrs.ListOtherRecipients)
{ {
if ((Gbl.Usrs.ListOtherRecipients = malloc (Nck_MAX_BYTES_LIST_NICKS + 1)) == NULL) if ((Gbl.Usrs.ListOtherRecipients = malloc (Msg_MAX_BYTES_LIST_OTHER_RECIPIENTS + 1)) == NULL)
Err_NotEnoughMemoryExit (); Err_NotEnoughMemoryExit ();
Gbl.Usrs.ListOtherRecipients[0] = '\0'; Gbl.Usrs.ListOtherRecipients[0] = '\0';
} }
@ -10170,7 +10171,7 @@ void Usr_DB_RemoveUsrFromBanned (long UsrCod)
void Usr_PrintUsrQRCode (void) void Usr_PrintUsrQRCode (void)
{ {
char NewNickWithArr[1 + Cns_MAX_BYTES_USR_LOGIN + 1]; char NewNickWithArr[1 + Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ()) if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ())
{ {

View File

@ -172,7 +172,7 @@ struct UsrData
struct ListIDs *List; struct ListIDs *List;
unsigned Num; unsigned Num;
} IDs; } IDs;
char Nickname [Cns_MAX_BYTES_USR_LOGIN + 1]; char Nickname [Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1];
char Password [Pwd_BYTES_ENCRYPTED_PASSWORD + 1]; char Password [Pwd_BYTES_ENCRYPTED_PASSWORD + 1];
struct struct
{ {