mirror of https://github.com/acanas/swad-core.git
Version 20.51.13: Mar 18, 2021 Session parameters database table renamed.
This commit is contained in:
parent
1de4eaff54
commit
a9e47d0759
16
sql/swad.sql
16
sql/swad.sql
|
@ -816,14 +816,6 @@ CREATE TABLE IF NOT EXISTS mch_times (
|
|||
ElapsedTime TIME NOT NULL DEFAULT 0,
|
||||
UNIQUE INDEX(MchCod,QstInd));
|
||||
--
|
||||
-- Table hidden_params: stores some hidden parameters passed from a page to another using database instead of forms
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS hidden_params (
|
||||
SessionId CHAR(43) NOT NULL,
|
||||
ParamName VARCHAR(255) NOT NULL,
|
||||
ParamValue LONGTEXT NOT NULL,
|
||||
INDEX(SessionId));
|
||||
--
|
||||
-- Table holidays: stores the holidays in each institution
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS holidays (
|
||||
|
@ -1284,6 +1276,14 @@ CREATE TABLE IF NOT EXISTS room_check_in (
|
|||
INDEX(UsrCod,CheckInTime),
|
||||
INDEX(CheckInTime));
|
||||
--
|
||||
-- Table ses_params: stores some hidden parameters passed from a page to another using database instead of forms
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS ses_params (
|
||||
SessionId CHAR(43) NOT NULL,
|
||||
ParamName VARCHAR(255) NOT NULL,
|
||||
ParamValue LONGTEXT NOT NULL,
|
||||
INDEX(SessionId));
|
||||
--
|
||||
-- Table sessions: stores the information of open sessions
|
||||
--
|
||||
CREATE TABLE IF NOT EXISTS sessions (
|
||||
|
|
|
@ -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.
|
||||
*/
|
||||
#define Log_PLATFORM_VERSION "SWAD 20.51.12 (2021-03-18)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 20.51.13 (2021-03-18)"
|
||||
#define CSS_FILE "swad20.45.css"
|
||||
#define JS_FILE "swad20.6.2.js"
|
||||
/*
|
||||
TODO: Rename CENTRE to CENTER in help wiki.
|
||||
TODO: Rename ASSESSMENT.Announcements to ASSESSMENT.Calls_for_exams
|
||||
|
||||
Version 20.51.13: Mar 18, 2021 Session parameters database table renamed. (307862 lines)
|
||||
1 change necessary in database:
|
||||
RENAME TABLE hidden_params TO ses_params;
|
||||
|
||||
Version 20.51.12: Mar 18, 2021 Forum threads database tables renamed. (307859 lines)
|
||||
3 changes necessary in database:
|
||||
RENAME TABLE forum_thr_clip TO for_clipboards;
|
||||
|
|
|
@ -1772,24 +1772,6 @@ mysql> DESCRIBE mch_times;
|
|||
"ElapsedTime TIME NOT NULL DEFAULT 0,"
|
||||
"UNIQUE INDEX(MchCod,QstInd))");
|
||||
|
||||
/***** Table hidden_params *****/
|
||||
/*
|
||||
mysql> DESCRIBE hidden_params;
|
||||
+------------+--------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+------------+--------------+------+-----+---------+-------+
|
||||
| SessionId | char(43) | NO | MUL | NULL | |
|
||||
| ParamName | varchar(255) | NO | | NULL | |
|
||||
| ParamValue | longtext | NO | | NULL | |
|
||||
+------------+--------------+------+-----+---------+-------+
|
||||
3 rows in set (0.01 sec)
|
||||
*/
|
||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS hidden_params ("
|
||||
"SessionId CHAR(43) NOT NULL," // Cns_BYTES_SESSION_ID
|
||||
"ParamName VARCHAR(255) NOT NULL,"
|
||||
"ParamValue LONGTEXT NOT NULL,"
|
||||
"INDEX(SessionId))");
|
||||
|
||||
/***** Table holidays *****/
|
||||
/*
|
||||
mysql> DESCRIBE holidays;
|
||||
|
@ -2703,6 +2685,24 @@ mysql> DESCRIBE room_check_in;
|
|||
"INDEX(UsrCod,CheckInTime),"
|
||||
"INDEX(CheckInTime))");
|
||||
|
||||
/***** Table ses_params *****/
|
||||
/*
|
||||
mysql> DESCRIBE ses_params;
|
||||
+------------+--------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+------------+--------------+------+-----+---------+-------+
|
||||
| SessionId | char(43) | NO | MUL | NULL | |
|
||||
| ParamName | varchar(255) | NO | | NULL | |
|
||||
| ParamValue | longtext | NO | | NULL | |
|
||||
+------------+--------------+------+-----+---------+-------+
|
||||
3 rows in set (0.01 sec)
|
||||
*/
|
||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS ses_params ("
|
||||
"SessionId CHAR(43) NOT NULL," // Cns_BYTES_SESSION_ID
|
||||
"ParamName VARCHAR(255) NOT NULL,"
|
||||
"ParamValue LONGTEXT NOT NULL,"
|
||||
"INDEX(SessionId))");
|
||||
|
||||
/***** Table sessions *****/
|
||||
/*
|
||||
mysql> DESCRIBE sessions;
|
||||
|
|
|
@ -136,8 +136,6 @@ void Gbl_InitializeGlobals (void)
|
|||
Gbl.DB.DatabaseIsOpen = false;
|
||||
Gbl.DB.LockedTables = false;
|
||||
|
||||
Gbl.HiddenParamsInsertedIntoDB = false;
|
||||
|
||||
Gbl.Prefs.Language = Txt_Current_CGI_SWAD_Language;
|
||||
Gbl.Prefs.FirstDayOfWeek = Cal_FIRST_DAY_OF_WEEK_DEFAULT; // Default first day of week
|
||||
Gbl.Prefs.DateFormat = Dat_FORMAT_DEFAULT; // Default date format
|
||||
|
@ -153,6 +151,7 @@ void Gbl_InitializeGlobals (void)
|
|||
Gbl.Session.IsOpen = false;
|
||||
Gbl.Session.HasBeenDisconnected = false;
|
||||
Gbl.Session.Id[0] = '\0';
|
||||
Gbl.Session.ParamsInsertedIntoDB = false;
|
||||
|
||||
Gbl.Usrs.Me.UsrIdLogin[0] = '\0';
|
||||
Gbl.Usrs.Me.LoginPlainPassword[0] = '\0';
|
||||
|
@ -160,7 +159,6 @@ void Gbl_InitializeGlobals (void)
|
|||
Gbl.Usrs.Me.UsrDat.UsrIDNickOrEmail[0] = '\0';
|
||||
Usr_UsrDataConstructor (&Gbl.Usrs.Me.UsrDat);
|
||||
Usr_ResetMyLastData ();
|
||||
Gbl.Session.Id[0] = '\0';
|
||||
Gbl.Usrs.Me.Logged = false;
|
||||
Gbl.Usrs.Me.Role.Available = 0;
|
||||
Gbl.Usrs.Me.Role.FromSession =
|
||||
|
@ -358,7 +356,7 @@ void Gbl_Cleanup (void)
|
|||
if (!Gbl.Action.UsesAJAX &&
|
||||
!Gbl.WebService.IsWebService &&
|
||||
Act_GetBrowserTab (Gbl.Action.Act) == Act_BRW_1ST_TAB)
|
||||
Ses_RemoveHiddenParFromThisSession ();
|
||||
Ses_RemoveParamFromThisSession ();
|
||||
Usr_FreeMyCourses ();
|
||||
Usr_FreeMyDegrees ();
|
||||
Usr_FreeMyCenters ();
|
||||
|
|
|
@ -132,8 +132,6 @@ struct Globals
|
|||
bool LockedTables;
|
||||
} DB;
|
||||
|
||||
bool HiddenParamsInsertedIntoDB; // If parameters are inserted in the database in this execution
|
||||
|
||||
/* To compute execution time of the program */
|
||||
struct timeval tvStart;
|
||||
struct timeval tvPageCreated;
|
||||
|
@ -165,6 +163,7 @@ struct Globals
|
|||
bool HasBeenDisconnected;
|
||||
char Id[Cns_BYTES_SESSION_ID + 1];
|
||||
long UsrCod;
|
||||
bool ParamsInsertedIntoDB; // If parameters are inserted in the database in this session
|
||||
} Session;
|
||||
|
||||
struct
|
||||
|
|
|
@ -52,7 +52,7 @@ extern struct Globals Gbl;
|
|||
|
||||
static void Ses_RemoveSessionFromDB (void);
|
||||
|
||||
static bool Ses_CheckIfHiddenParIsAlreadyInDB (const char *ParamName);
|
||||
static bool Ses_CheckIfParamIsAlreadyInDB (const char *ParamName);
|
||||
|
||||
static void Ses_DeletePublicDirFromCache (const char *FullPathMediaPriv);
|
||||
|
||||
|
@ -131,7 +131,7 @@ void Ses_CloseSession (void)
|
|||
Con_RemoveOldConnected ();
|
||||
|
||||
/***** Remove unused data associated to expired sessions *****/
|
||||
Ses_RemoveHiddenParFromExpiredSessions ();
|
||||
Ses_RemoveParamsFromExpiredSessions ();
|
||||
Ses_RemovePublicDirsFromExpiredSessions ();
|
||||
|
||||
/***** Now, user is not logged in *****/
|
||||
|
@ -332,24 +332,24 @@ bool Ses_GetSessionData (void)
|
|||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************* Insert hidden parameter in the database *****************/
|
||||
/******************* Insert session parameter in the database ****************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Ses_InsertHiddenParInDB (const char *ParamName,const char *ParamValue)
|
||||
void Ses_InsertParamInDB (const char *ParamName,const char *ParamValue)
|
||||
{
|
||||
/***** Before of inserting the first hidden parameter passed to the next action,
|
||||
/***** Before of inserting the first session parameter passed to the next action,
|
||||
delete all the parameters coming from the previous action *****/
|
||||
Ses_RemoveHiddenParFromThisSession ();
|
||||
Ses_RemoveParamFromThisSession ();
|
||||
|
||||
/***** For a unique session-parameter,
|
||||
don't insert a parameter more than one time *****/
|
||||
if (ParamName)
|
||||
if (ParamName[0])
|
||||
if (!Ses_CheckIfHiddenParIsAlreadyInDB (ParamName))
|
||||
if (!Ses_CheckIfParamIsAlreadyInDB (ParamName))
|
||||
{
|
||||
/***** Insert parameter in the database *****/
|
||||
DB_QueryINSERT ("can not create hidden parameter",
|
||||
"INSERT INTO hidden_params"
|
||||
/***** Insert session parameter in the database *****/
|
||||
DB_QueryINSERT ("can not create session parameter",
|
||||
"INSERT INTO ses_params"
|
||||
" (SessionId,ParamName,ParamValue)"
|
||||
" VALUES"
|
||||
" ('%s','%s','%s')",
|
||||
|
@ -357,21 +357,22 @@ void Ses_InsertHiddenParInDB (const char *ParamName,const char *ParamValue)
|
|||
ParamName,
|
||||
ParamValue ? ParamValue :
|
||||
"");
|
||||
Gbl.HiddenParamsInsertedIntoDB = true;
|
||||
Gbl.Session.ParamsInsertedIntoDB = true;
|
||||
}
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/************ Remove hidden parameters of a session from database ************/
|
||||
/************ Remove session parameters of a session from database ***********/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Ses_RemoveHiddenParFromThisSession (void)
|
||||
void Ses_RemoveParamFromThisSession (void)
|
||||
{
|
||||
if (Gbl.Session.IsOpen && // There is an open session
|
||||
!Gbl.HiddenParamsInsertedIntoDB) // No params just inserted
|
||||
/***** Remove hidden parameters of this session *****/
|
||||
DB_QueryDELETE ("can not remove hidden parameters of current session",
|
||||
"DELETE FROM hidden_params WHERE SessionId='%s'",
|
||||
!Gbl.Session.ParamsInsertedIntoDB) // No params just inserted
|
||||
/***** Remove session parameters of this session *****/
|
||||
DB_QueryDELETE ("can not remove session parameters of current session",
|
||||
"DELETE FROM ses_params"
|
||||
" WHERE SessionId='%s'",
|
||||
Gbl.Session.Id);
|
||||
}
|
||||
|
||||
|
@ -379,37 +380,38 @@ void Ses_RemoveHiddenParFromThisSession (void)
|
|||
/********* Remove expired hidden parameters (from expired sessions) **********/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Ses_RemoveHiddenParFromExpiredSessions (void)
|
||||
void Ses_RemoveParamsFromExpiredSessions (void)
|
||||
{
|
||||
/***** Remove hidden parameters from expired sessions *****/
|
||||
DB_QueryDELETE ("can not remove hidden parameters of expired sessions",
|
||||
"DELETE FROM hidden_params"
|
||||
/***** Remove session parameters from expired sessions *****/
|
||||
DB_QueryDELETE ("can not remove session parameters of expired sessions",
|
||||
"DELETE FROM ses_params"
|
||||
" WHERE SessionId NOT IN"
|
||||
" (SELECT SessionId FROM sessions)");
|
||||
" (SELECT SessionId"
|
||||
" FROM sessions)");
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/*************** Check if a hidden parameter existed in database *************/
|
||||
/************** Check if a session parameter existed in database *************/
|
||||
/*****************************************************************************/
|
||||
// Return true if the parameter already existed in database
|
||||
|
||||
static bool Ses_CheckIfHiddenParIsAlreadyInDB (const char *ParamName)
|
||||
static bool Ses_CheckIfParamIsAlreadyInDB (const char *ParamName)
|
||||
{
|
||||
return (DB_QueryCOUNT ("can not check if a hidden parameter"
|
||||
return (DB_QueryCOUNT ("can not check if a session parameter"
|
||||
" is already in database",
|
||||
"SELECT COUNT(*) FROM hidden_params"
|
||||
"SELECT COUNT(*)"
|
||||
" FROM ses_params"
|
||||
" WHERE SessionId='%s'"
|
||||
" AND ParamName='%s'",
|
||||
" AND ParamName='%s'",
|
||||
Gbl.Session.Id,
|
||||
ParamName) != 0);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/***************** Get hidden parameter from the database ********************/
|
||||
/***************** Get session parameter from the database *******************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Ses_GetHiddenParFromDB (const char *ParamName,char *ParamValue,
|
||||
size_t MaxBytes)
|
||||
void Ses_GetParamFromDB (const char *ParamName,char *ParamValue,size_t MaxBytes)
|
||||
{
|
||||
MYSQL_RES *mysql_res;
|
||||
MYSQL_ROW row;
|
||||
|
@ -420,12 +422,12 @@ void Ses_GetHiddenParFromDB (const char *ParamName,char *ParamValue,
|
|||
ParamValue[0] = '\0';
|
||||
if (Gbl.Session.IsOpen) // If the session is open, get parameter from DB
|
||||
{
|
||||
/***** Get a hidden parameter from database *****/
|
||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get a hidden parameter",
|
||||
/***** Get a session parameter from database *****/
|
||||
NumRows = DB_QuerySELECT (&mysql_res,"can not get a session parameter",
|
||||
"SELECT ParamValue"
|
||||
" FROM hidden_params"
|
||||
" FROM ses_params"
|
||||
" WHERE SessionId='%s'"
|
||||
" AND ParamName='%s'",
|
||||
" AND ParamName='%s'",
|
||||
Gbl.Session.Id,
|
||||
ParamName);
|
||||
|
||||
|
@ -447,7 +449,7 @@ void Ses_GetHiddenParFromDB (const char *ParamName,char *ParamValue,
|
|||
if (ParameterIsTooBig)
|
||||
{
|
||||
snprintf (ErrorTxt,sizeof (ErrorTxt),
|
||||
"Hidden parameter <strong>%s</strong> too large,"
|
||||
"Session parameter <strong>%s</strong> too large,"
|
||||
" it exceed the maximum allowed size (%lu bytes).",
|
||||
ParamName,(unsigned long) MaxBytes);
|
||||
Lay_ShowErrorAndExit (ErrorTxt);
|
||||
|
|
|
@ -47,11 +47,10 @@ void Ses_UpdateSessionLastRefreshInDB (void);
|
|||
void Ses_RemoveExpiredSessions (void);
|
||||
bool Ses_GetSessionData (void);
|
||||
|
||||
void Ses_InsertHiddenParInDB (const char *ParamName,const char *ParamValue);
|
||||
void Ses_RemoveHiddenParFromThisSession (void);
|
||||
void Ses_RemoveHiddenParFromExpiredSessions (void);
|
||||
void Ses_GetHiddenParFromDB (const char *ParamName,char *ParamValue,
|
||||
size_t MaxBytes);
|
||||
void Ses_InsertParamInDB (const char *ParamName,const char *ParamValue);
|
||||
void Ses_RemoveParamFromThisSession (void);
|
||||
void Ses_RemoveParamsFromExpiredSessions (void);
|
||||
void Ses_GetParamFromDB (const char *ParamName,char *ParamValue,size_t MaxBytes);
|
||||
|
||||
bool Ses_GetPublicDirFromCache (const char *FullPathMediaPriv,
|
||||
char TmpPubDir[PATH_MAX + 1]);
|
||||
|
|
|
@ -5718,7 +5718,7 @@ void Usr_PutHiddenParSelectedUsrsCods (struct SelectedUsrs *SelectedUsrs)
|
|||
|
||||
/* Put the parameter *****/
|
||||
if (Gbl.Session.IsOpen)
|
||||
Ses_InsertHiddenParInDB (ParamName,SelectedUsrs->List[Rol_UNK]);
|
||||
Ses_InsertParamInDB (ParamName,SelectedUsrs->List[Rol_UNK]);
|
||||
else
|
||||
Par_PutHiddenParamString (NULL,ParamName,SelectedUsrs->List[Rol_UNK]);
|
||||
|
||||
|
@ -5748,7 +5748,7 @@ void Usr_GetListsSelectedEncryptedUsrsCods (struct SelectedUsrs *SelectedUsrs)
|
|||
Usr_AllocateListSelectedEncryptedUsrCods (SelectedUsrs,Rol_UNK);
|
||||
if (Gbl.Session.IsOpen) // If the session is open, get parameter from DB
|
||||
{
|
||||
Ses_GetHiddenParFromDB (ParamName,SelectedUsrs->List[Rol_UNK],
|
||||
Ses_GetParamFromDB (ParamName,SelectedUsrs->List[Rol_UNK],
|
||||
Usr_MAX_BYTES_LIST_ENCRYPTED_USR_CODS);
|
||||
Str_ChangeFormat (Str_FROM_FORM,Str_TO_TEXT,SelectedUsrs->List[Rol_UNK],
|
||||
Usr_MAX_BYTES_LIST_ENCRYPTED_USR_CODS,true);
|
||||
|
|
Loading…
Reference in New Issue