Version 16.49

This commit is contained in:
Antonio Cañas Vargas 2016-11-08 00:58:32 +01:00
parent 84835270ad
commit d7f7e0fc75
9 changed files with 57 additions and 38 deletions

View File

@ -538,7 +538,7 @@ static void Acc_PrintAccountSeparator (void)
// Return true if no error and user can be logged in
// Return false on error
bool Acc_CreateNewAccountAndLogIn (void)
bool Acc_CreateMyNewAccountAndLogIn (void)
{
char NewNicknameWithoutArroba[Nck_MAX_BYTES_NICKNAME_WITH_ARROBA+1];
char NewEmail[Usr_MAX_BYTES_USR_EMAIL+1];
@ -554,7 +554,8 @@ bool Acc_CreateNewAccountAndLogIn (void)
strcpy (Gbl.Usrs.Me.UsrDat.Password,NewEncryptedPassword);
/***** User does not exist in the platform, so create him/her! *****/
Acc_CreateNewUsr (&Gbl.Usrs.Me.UsrDat);
Acc_CreateNewUsr (&Gbl.Usrs.Me.UsrDat,
true); // I am creating my own account
/***** Save nickname *****/
Nck_UpdateMyNick (NewNicknameWithoutArroba);
@ -678,7 +679,7 @@ static bool Acc_GetParamsNewAccount (char *NewNicknameWithoutArroba,
// UsrDat->UsrCod must be <= 0
// UsrDat->UsrDat.IDs must contain a list of IDs for the new user
void Acc_CreateNewUsr (struct UsrData *UsrDat)
void Acc_CreateNewUsr (struct UsrData *UsrDat,bool CreatingMyOwnAccount)
{
extern const char *The_ThemeId[The_NUM_THEMES];
extern const char *Ico_IconSetId[Ico_NUM_ICON_SETS];
@ -754,7 +755,7 @@ void Acc_CreateNewUsr (struct UsrData *UsrDat)
Fil_CreateDirIfNotExists (PathRelUsr);
/***** Create user's figures *****/
Prf_CreateNewUsrFigures (UsrDat->UsrCod);
Prf_CreateNewUsrFigures (UsrDat->UsrCod,CreatingMyOwnAccount);
}
/*****************************************************************************/

View File

@ -57,8 +57,8 @@ void Acc_CheckIfEmptyAccountExists (void);
void Acc_ShowFormGoToRequestNewAccount (void);
void Acc_ShowFormChangeMyAccount (void);
bool Acc_CreateNewAccountAndLogIn (void);
void Acc_CreateNewUsr (struct UsrData *UsrDat);
bool Acc_CreateMyNewAccountAndLogIn (void);
void Acc_CreateNewUsr (struct UsrData *UsrDat,bool CreatingMyOwnAccount);
void Acc_AfterCreationNewAccount (void);
void Acc_GetUsrCodAndRemUsrGbl (void);

View File

@ -156,13 +156,14 @@
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.48.12 (2016-11-07)"
#define Log_PLATFORM_VERSION "SWAD 16.49 (2016-11-08)"
#define CSS_FILE "swad16.48.4.css"
#define JS_FILE "swad16.46.1.js"
// Number of lines (includes comments but not blank lines) has been got with the following command:
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1
/*
Version 16.49: Nov 08, 2016 Set some user's figures to 0 when creating an account. (206555 lines)
Version 16.48.12: Nov 07, 2016 Icon in my webs / social networks to show figure (statistics). (206537 lines)
Version 16.48.11: Nov 07, 2016 Changes in order of figures (statistics). (206523 lines)
Version 16.48.10: Nov 07, 2016 Changes in text related to notifications stats. (206522 lines)

View File

@ -1630,9 +1630,10 @@ static void Enr_RegisterUsr (struct UsrData *UsrDat,Rol_Role_t RegRemRole,
// Reset user's data
Usr_ResetUsrDataExceptUsrCodAndIDs (UsrDat); // It's necessary, because the same struct UsrDat was used for former user
// User does not exist in database;list of IDs is initialized
// User does not exist in database; list of IDs is initialized
UsrDat->IDs.List[0].Confirmed = true; // If he/she is a new user ==> his/her ID will be stored as confirmed in database
Acc_CreateNewUsr (UsrDat);
Acc_CreateNewUsr (UsrDat,
false); // I am NOT creating my own account
}
/***** Register user in current course in database *****/
@ -3496,7 +3497,8 @@ void Enr_CreateNewUsr (void)
/***** Create user *****/
Gbl.Usrs.Other.UsrDat.IDs.List[0].Confirmed = true; // User's ID will be stored as confirmed
Acc_CreateNewUsr (&Gbl.Usrs.Other.UsrDat);
Acc_CreateNewUsr (&Gbl.Usrs.Other.UsrDat,
false); // I am NOT creating my own account
/***** Register user in current course in database *****/
if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected

View File

@ -1654,7 +1654,7 @@ static void Msg_ShowSentOrReceivedMessages (void)
unsigned long NumRow;
unsigned long NumRows;
unsigned long NumMsg = 0; // Initialized to avoid warning
unsigned NumUnreadMsgs;
unsigned NumUnreadMsgs = 0; // Initialized to avoid warning
struct Pagination Pagination;
long MsgCod;
static const Pag_WhatPaginate_t WhatPaginate[Msg_NUM_TYPES_OF_MSGS] =
@ -2798,7 +2798,7 @@ static void Msg_ShowASentOrReceivedMessage (long MsgNum,long MsgCod)
extern const char *Txt_MSG_To;
extern const char *Txt_MSG_Message;
struct UsrData UsrDat;
const char *Title;
const char *Title = NULL; // Initialized to avoid warning
bool FromThisCrs = false; // Initialized to avoid warning
time_t CreatTimeUTC; // Creation time of a message
long CrsCod;

View File

@ -26,6 +26,7 @@
/*****************************************************************************/
#include <linux/stddef.h> // For NULL
#include <string.h> // For string functions
#include "swad_config.h"
#include "swad_database.h"
@ -86,7 +87,8 @@ static void Prf_GetNumForPstAndStoreAsUsrFigure (long UsrCod);
static void Prf_GetNumMsgSntAndStoreAsUsrFigure (long UsrCod);
static void Prf_ResetUsrFigures (struct UsrFigures *UsrFigures);
static void Prf_CreateUsrFigures (long UsrCod,const struct UsrFigures *UsrFigures);
static void Prf_CreateUsrFigures (long UsrCod,const struct UsrFigures *UsrFigures,
bool CreatingMyOwnAccount);
static bool Prf_CheckIfUsrFiguresExists (long UsrCod);
static void Prf_GetAndShowRankingFigure (const char *FieldName);
@ -860,7 +862,7 @@ static void Prf_GetFirstClickFromLogAndStoreAsUsrFigure (long UsrCod)
DB_QueryUPDATE (Query,"can not update user's figures");
}
else // User entry does not exist
Prf_CreateUsrFigures (UsrCod,&UsrFigures);
Prf_CreateUsrFigures (UsrCod,&UsrFigures,false);
}
}
@ -892,7 +894,7 @@ static void Prf_GetNumClicksAndStoreAsUsrFigure (long UsrCod)
DB_QueryUPDATE (Query,"can not update user's figures");
}
else // User entry does not exist
Prf_CreateUsrFigures (UsrCod,&UsrFigures);
Prf_CreateUsrFigures (UsrCod,&UsrFigures,false);
}
}
@ -922,7 +924,7 @@ static void Prf_GetNumFileViewsAndStoreAsUsrFigure (long UsrCod)
DB_QueryUPDATE (Query,"can not update user's figures");
}
else // User entry does not exist
Prf_CreateUsrFigures (UsrCod,&UsrFigures);
Prf_CreateUsrFigures (UsrCod,&UsrFigures,false);
}
}
@ -952,7 +954,7 @@ static void Prf_GetNumForPstAndStoreAsUsrFigure (long UsrCod)
DB_QueryUPDATE (Query,"can not update user's figures");
}
else // User entry does not exist
Prf_CreateUsrFigures (UsrCod,&UsrFigures);
Prf_CreateUsrFigures (UsrCod,&UsrFigures,false);
}
}
@ -982,7 +984,7 @@ static void Prf_GetNumMsgSntAndStoreAsUsrFigure (long UsrCod)
DB_QueryUPDATE (Query,"can not update user's figures");
}
else // User entry does not exist
Prf_CreateUsrFigures (UsrCod,&UsrFigures);
Prf_CreateUsrFigures (UsrCod,&UsrFigures,false);
}
}
@ -990,15 +992,19 @@ static void Prf_GetNumMsgSntAndStoreAsUsrFigure (long UsrCod)
/******************* Create user's figures for a new user ********************/
/*****************************************************************************/
void Prf_CreateNewUsrFigures (long UsrCod)
void Prf_CreateNewUsrFigures (long UsrCod,bool CreatingMyOwnAccount)
{
struct UsrFigures UsrFigures;
/***** Reset user's figures *****/
Prf_ResetUsrFigures (&UsrFigures);
UsrFigures.NumClicks = 0; // set number of clicks to 0
UsrFigures.NumFileViews = 0; // set number of file views to 0
UsrFigures.NumForPst = 0; // set number of forum posts to 0
UsrFigures.NumMsgSnt = 0; // set number of messages sent to 0
/***** Create user's figures *****/
Prf_CreateUsrFigures (UsrCod,&UsrFigures);
Prf_CreateUsrFigures (UsrCod,&UsrFigures,CreatingMyOwnAccount);
}
/*****************************************************************************/
@ -1008,31 +1014,39 @@ void Prf_CreateNewUsrFigures (long UsrCod)
static void Prf_ResetUsrFigures (struct UsrFigures *UsrFigures)
{
UsrFigures->FirstClickTimeUTC = (time_t) 0; // unknown first click time or user never logged
UsrFigures->NumDays = -1; // not applicable
UsrFigures->NumClicks = -1L; // unknown number of clicks
UsrFigures->NumFileViews = -1L; // unknown number of file views
UsrFigures->NumForPst = -1L; // unknown number of forum posts
UsrFigures->NumMsgSnt = -1L; // unknown number of messages sent
UsrFigures->NumDays = -1; // not applicable
UsrFigures->NumClicks = -1L; // unknown number of clicks
UsrFigures->NumFileViews = -1L; // unknown number of file views
UsrFigures->NumForPst = -1L; // unknown number of forum posts
UsrFigures->NumMsgSnt = -1L; // unknown number of messages sent
}
/*****************************************************************************/
/***** Get number of messages sent by a user and store in user's figures *****/
/*****************************************************************************/
static void Prf_CreateUsrFigures (long UsrCod,const struct UsrFigures *UsrFigures)
static void Prf_CreateUsrFigures (long UsrCod,const struct UsrFigures *UsrFigures,
bool CreatingMyOwnAccount)
{
char Query[512];
char SubQueryFirstClickTime[64];
if (CreatingMyOwnAccount)
strcpy (SubQueryFirstClickTime,"NOW()"); // This is the first click
else
sprintf (SubQueryFirstClickTime,"FROM_UNIXTIME('%ld')",
(long) UsrFigures->FirstClickTimeUTC); // 0 ==> unknown first click time or user never logged
/***** Create user's figures *****/
sprintf (Query,"INSERT INTO usr_figures"
"(UsrCod,FirstClickTime,NumClicks,NumFileViews,NumForPst,NumMsgSnt)"
" VALUES ('%ld',FROM_UNIXTIME('%ld'),'%ld','%ld','%ld','%ld')",
" VALUES ('%ld',%s,'%ld','%ld','%ld','%ld')",
UsrCod,
(long) UsrFigures->FirstClickTimeUTC, // 0 ==> unknown first click time or user never logged
UsrFigures->NumClicks, // -1L ==> unknown number of clicks
UsrFigures->NumFileViews, // -1L ==> unknown number of file views
UsrFigures->NumForPst, // -1L ==> unknown number of forum posts
UsrFigures->NumMsgSnt); // -1L ==> unknown number of messages sent
SubQueryFirstClickTime,
UsrFigures->NumClicks, // -1L ==> unknown number of clicks
UsrFigures->NumFileViews, // -1L ==> unknown number of file views
UsrFigures->NumForPst, // -1L ==> unknown number of forum posts
UsrFigures->NumMsgSnt); // -1L ==> unknown number of messages sent
DB_QueryINSERT (Query,"can not create user's figures");
}

View File

@ -64,7 +64,7 @@ void Prf_GetUsrFigures (long UsrCod,struct UsrFigures *UsrFigures);
void Prf_CalculateFigures (void);
bool Prf_GetAndStoreAllUsrFigures (long UsrCod,struct UsrFigures *UsrFigures);
void Prf_CreateNewUsrFigures (long UsrCod);
void Prf_CreateNewUsrFigures (long UsrCod,bool CreatingMyOwnAccount);
void Prf_RemoveUsrFigures (long UsrCod);
void Prf_IncrementNumClicksUsr (long UsrCod);
void Prf_IncrementNumFileViewsUsr (long UsrCod);

View File

@ -2208,8 +2208,8 @@ void Usr_ChkUsrAndGetUsrData (void)
/***** Check user and get user's data *****/
if (Gbl.Action.Act == ActCreUsrAcc)
{
/***** Create new account and login *****/
if (Acc_CreateNewAccountAndLogIn ()) // User logged in
/***** Create my new account and login *****/
if (Acc_CreateMyNewAccountAndLogIn ()) // User logged in
{
Gbl.Usrs.Me.Logged = true;
Usr_SetUsrRoleAndPrefs ();
@ -2229,7 +2229,7 @@ void Usr_ChkUsrAndGetUsrData (void)
/***** Check user and get user's data *****/
if (Gbl.Session.IsOpen)
{
if (Usr_ChkUsrAndGetUsrDataFromSession ()) // User logged in
if (Usr_ChkUsrAndGetUsrDataFromSession ()) // User logged in
{
Gbl.Usrs.Me.Logged = true;
Usr_SetUsrRoleAndPrefs ();

View File

@ -672,7 +672,7 @@ static bool Svc_GetSomeUsrDataFromUsrCod (struct UsrData *UsrDat,long CrsCod)
int swad__createAccount (struct soap *soap,
char *userNickname,char *userEmail,char *userPassword,char *appKey, // input
struct swad__createAccountOutput *createAccountOut) // output
struct swad__createAccountOutput *createAccountOut) // output
{
char NewNicknameWithoutArroba[Nck_MAX_BYTES_NICKNAME_WITH_ARROBA+1];
char NewEncryptedPassword[Cry_LENGTH_ENCRYPTED_STR_SHA512_BASE64+1];
@ -714,7 +714,8 @@ int swad__createAccount (struct soap *soap,
strcpy (Gbl.Usrs.Me.UsrDat.Password,NewEncryptedPassword);
/***** User does not exist in the platform, so create him/her! *****/
Acc_CreateNewUsr (&Gbl.Usrs.Me.UsrDat);
Acc_CreateNewUsr (&Gbl.Usrs.Me.UsrDat,
true); // I am creating my own account
/***** Save nickname *****/
Nck_UpdateMyNick (NewNicknameWithoutArroba);