mirror of https://github.com/acanas/swad-core.git
Version 16.155.17
This commit is contained in:
parent
97cd3b6643
commit
3cd89420a3
|
@ -682,7 +682,7 @@ CREATE TABLE IF NOT EXISTS log_recent (
|
|||
--
|
||||
CREATE TABLE IF NOT EXISTS log_search (
|
||||
LogCod INT NOT NULL,
|
||||
SearchStr VARCHAR(255) NOT NULL,
|
||||
SearchStr VARCHAR(2047) NOT NULL,
|
||||
UNIQUE INDEX(LogCod));
|
||||
--
|
||||
-- Table log_ws: stores the log of calls to web service from plugins
|
||||
|
|
|
@ -207,14 +207,19 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.155.16 (2017-03-12)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.155.17 (2017-03-12)"
|
||||
#define CSS_FILE "swad16.147.css"
|
||||
#define JS_FILE "swad16.144.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.155.16:Mar 11, 2017 Adjusting size of database fields. (216746 lines)
|
||||
Version 16.155.17:Mar 11, 2017 Adjusting size of database fields. (216755 lines)
|
||||
2 changes necessary in database:
|
||||
ALTER TABLE log_search CHANGE COLUMN SearchStr SearchStr VARCHAR(2047) NOT NULL;
|
||||
ALTER TABLE sessions CHANGE COLUMN SearchString SearchStr VARCHAR(2047) NOT NULL DEFAULT '';
|
||||
|
||||
Version 16.155.16:Mar 11, 2017 Adjusting size of database fields. (216749 lines)
|
||||
1 change necessary in database:
|
||||
ALTER TABLE log_comments CHANGE COLUMN Comments Comments TEXT NOT NULL;
|
||||
|
||||
|
|
168
swad_database.c
168
swad_database.c
|
@ -1349,13 +1349,13 @@ mysql> DESCRIBE log_banners;
|
|||
/***** Table log_comments *****/
|
||||
/*
|
||||
mysql> DESCRIBE log_comments;
|
||||
+----------+--------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+----------+--------------+------+-----+---------+-------+
|
||||
| LogCod | int(11) | NO | PRI | NULL | |
|
||||
| Comments | varchar(255) | NO | | NULL | |
|
||||
+----------+--------------+------+-----+---------+-------+
|
||||
2 rows in set (0.00 sec)
|
||||
+----------+---------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+----------+---------+------+-----+---------+-------+
|
||||
| LogCod | int(11) | NO | PRI | NULL | |
|
||||
| Comments | text | NO | | NULL | |
|
||||
+----------+---------+------+-----+---------+-------+
|
||||
2 rows in set (0,00 sec)
|
||||
*/
|
||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS log_comments ("
|
||||
"LogCod INT NOT NULL,"
|
||||
|
@ -1386,28 +1386,28 @@ mysql> DESCRIBE log_full;
|
|||
*/
|
||||
// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables.
|
||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS log ("
|
||||
"LogCod INT NOT NULL AUTO_INCREMENT,"
|
||||
"ActCod INT NOT NULL DEFAULT -1,"
|
||||
"CtyCod INT NOT NULL DEFAULT -1,"
|
||||
"InsCod INT NOT NULL DEFAULT -1,"
|
||||
"CtrCod INT NOT NULL DEFAULT -1,"
|
||||
"DegCod INT NOT NULL DEFAULT -1,"
|
||||
"CrsCod INT NOT NULL DEFAULT -1,"
|
||||
"UsrCod INT NOT NULL DEFAULT -1,"
|
||||
"Role TINYINT NOT NULL,"
|
||||
"ClickTime DATETIME NOT NULL,"
|
||||
"TimeToGenerate INT NOT NULL,"
|
||||
"TimeToSend INT NOT NULL,"
|
||||
"IP CHAR(15) NOT NULL,"
|
||||
"UNIQUE INDEX(LogCod),"
|
||||
"INDEX(ActCod),"
|
||||
"INDEX(CtyCod),"
|
||||
"INDEX(InsCod),"
|
||||
"INDEX(CtrCod),"
|
||||
"INDEX(DegCod),"
|
||||
"INDEX(CrsCod),"
|
||||
"INDEX(UsrCod),"
|
||||
"INDEX(ClickTime,Role))");
|
||||
"LogCod INT NOT NULL AUTO_INCREMENT,"
|
||||
"ActCod INT NOT NULL DEFAULT -1,"
|
||||
"CtyCod INT NOT NULL DEFAULT -1,"
|
||||
"InsCod INT NOT NULL DEFAULT -1,"
|
||||
"CtrCod INT NOT NULL DEFAULT -1,"
|
||||
"DegCod INT NOT NULL DEFAULT -1,"
|
||||
"CrsCod INT NOT NULL DEFAULT -1,"
|
||||
"UsrCod INT NOT NULL DEFAULT -1,"
|
||||
"Role TINYINT NOT NULL,"
|
||||
"ClickTime DATETIME NOT NULL,"
|
||||
"TimeToGenerate INT NOT NULL,"
|
||||
"TimeToSend INT NOT NULL,"
|
||||
"IP CHAR(15) NOT NULL," // Cns_MAX_CHARS_IP
|
||||
"UNIQUE INDEX(LogCod),"
|
||||
"INDEX(ActCod),"
|
||||
"INDEX(CtyCod),"
|
||||
"INDEX(InsCod),"
|
||||
"INDEX(CtrCod),"
|
||||
"INDEX(DegCod),"
|
||||
"INDEX(CrsCod),"
|
||||
"INDEX(UsrCod),"
|
||||
"INDEX(ClickTime,Role))");
|
||||
|
||||
/***** Table log_recent *****/
|
||||
/*
|
||||
|
@ -1433,44 +1433,44 @@ mysql> DESCRIBE log_recent;
|
|||
*/
|
||||
// TODO: Change NtfCod and LogCod from INT to BIGINT in database tables.
|
||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS log_recent ("
|
||||
"LogCod INT NOT NULL,"
|
||||
"ActCod INT NOT NULL DEFAULT -1,"
|
||||
"CtyCod INT NOT NULL DEFAULT -1,"
|
||||
"InsCod INT NOT NULL DEFAULT -1,"
|
||||
"CtrCod INT NOT NULL DEFAULT -1,"
|
||||
"DegCod INT NOT NULL DEFAULT -1,"
|
||||
"CrsCod INT NOT NULL DEFAULT -1,"
|
||||
"UsrCod INT NOT NULL DEFAULT -1,"
|
||||
"Role TINYINT NOT NULL,"
|
||||
"ClickTime DATETIME NOT NULL,"
|
||||
"TimeToGenerate INT NOT NULL,"
|
||||
"TimeToSend INT NOT NULL,"
|
||||
"IP CHAR(15) NOT NULL,"
|
||||
"UNIQUE INDEX(LogCod),"
|
||||
"INDEX(ActCod),"
|
||||
"INDEX(CtyCod),"
|
||||
"INDEX(InsCod),"
|
||||
"INDEX(CtrCod),"
|
||||
"INDEX(DegCod),"
|
||||
"INDEX(CrsCod),"
|
||||
"INDEX(UsrCod),"
|
||||
"INDEX(ClickTime,Role))");
|
||||
"LogCod INT NOT NULL,"
|
||||
"ActCod INT NOT NULL DEFAULT -1,"
|
||||
"CtyCod INT NOT NULL DEFAULT -1,"
|
||||
"InsCod INT NOT NULL DEFAULT -1,"
|
||||
"CtrCod INT NOT NULL DEFAULT -1,"
|
||||
"DegCod INT NOT NULL DEFAULT -1,"
|
||||
"CrsCod INT NOT NULL DEFAULT -1,"
|
||||
"UsrCod INT NOT NULL DEFAULT -1,"
|
||||
"Role TINYINT NOT NULL,"
|
||||
"ClickTime DATETIME NOT NULL,"
|
||||
"TimeToGenerate INT NOT NULL,"
|
||||
"TimeToSend INT NOT NULL,"
|
||||
"IP CHAR(15) NOT NULL," // Cns_MAX_CHARS_IP
|
||||
"UNIQUE INDEX(LogCod),"
|
||||
"INDEX(ActCod),"
|
||||
"INDEX(CtyCod),"
|
||||
"INDEX(InsCod),"
|
||||
"INDEX(CtrCod),"
|
||||
"INDEX(DegCod),"
|
||||
"INDEX(CrsCod),"
|
||||
"INDEX(UsrCod),"
|
||||
"INDEX(ClickTime,Role))");
|
||||
|
||||
/***** Table log_search *****/
|
||||
/*
|
||||
mysql> DESCRIBE log_search;
|
||||
+-----------+--------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+-----------+--------------+------+-----+---------+-------+
|
||||
| LogCod | int(11) | NO | PRI | NULL | |
|
||||
| SearchStr | varchar(255) | NO | | NULL | |
|
||||
+-----------+--------------+------+-----+---------+-------+
|
||||
+-----------+---------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+-----------+---------------+------+-----+---------+-------+
|
||||
| LogCod | int(11) | NO | PRI | NULL | |
|
||||
| SearchStr | varchar(2047) | NO | | NULL | |
|
||||
+-----------+---------------+------+-----+---------+-------+
|
||||
2 rows in set (0,00 sec)
|
||||
*/
|
||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS log_search ("
|
||||
"LogCod INT NOT NULL,"
|
||||
"SearchStr VARCHAR(255) NOT NULL,"
|
||||
"UNIQUE INDEX(LogCod))");
|
||||
"LogCod INT NOT NULL,"
|
||||
"SearchStr VARCHAR(2047) NOT NULL," // Sch_MAX_BYTES_STRING_TO_FIND
|
||||
"UNIQUE INDEX(LogCod))");
|
||||
|
||||
/***** Table log_ws *****/
|
||||
/*
|
||||
|
@ -1877,29 +1877,29 @@ mysql> DESCRIBE plugins;
|
|||
/***** Table sessions *****/
|
||||
/*
|
||||
mysql> DESCRIBE sessions;
|
||||
+----------------+--------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+----------------+--------------+------+-----+---------+-------+
|
||||
| SessionId | char(43) | NO | PRI | NULL | |
|
||||
| UsrCod | int(11) | NO | MUL | NULL | |
|
||||
| Password | char(86) | NO | | NULL | |
|
||||
| Role | tinyint(4) | NO | | 0 | |
|
||||
| CtyCod | int(11) | NO | | -1 | |
|
||||
| InsCod | int(11) | NO | | -1 | |
|
||||
| CtrCod | int(11) | NO | | -1 | |
|
||||
| DegCod | int(11) | NO | | -1 | |
|
||||
| CrsCod | int(11) | NO | | -1 | |
|
||||
| LastTime | datetime | NO | | NULL | |
|
||||
| LastRefresh | datetime | NO | | NULL | |
|
||||
| FirstPubCod | bigint(20) | NO | | 0 | |
|
||||
| LastPubCod | bigint(20) | NO | | 0 | |
|
||||
| LastPageMsgRcv | int(11) | NO | | 1 | |
|
||||
| LastPageMsgSnt | int(11) | NO | | 1 | |
|
||||
| WhatToSearch | tinyint(4) | NO | | 0 | |
|
||||
| SearchString | varchar(255) | NO | | | |
|
||||
| SideCols | tinyint(4) | NO | | 3 | |
|
||||
+----------------+--------------+------+-----+---------+-------+
|
||||
18 rows in set (1,06 sec)
|
||||
+----------------+---------------+------+-----+---------+-------+
|
||||
| Field | Type | Null | Key | Default | Extra |
|
||||
+----------------+---------------+------+-----+---------+-------+
|
||||
| SessionId | char(43) | NO | PRI | NULL | |
|
||||
| UsrCod | int(11) | NO | MUL | NULL | |
|
||||
| Password | char(86) | NO | | NULL | |
|
||||
| Role | tinyint(4) | NO | | 0 | |
|
||||
| CtyCod | int(11) | NO | | -1 | |
|
||||
| InsCod | int(11) | NO | | -1 | |
|
||||
| CtrCod | int(11) | NO | | -1 | |
|
||||
| DegCod | int(11) | NO | | -1 | |
|
||||
| CrsCod | int(11) | NO | | -1 | |
|
||||
| LastTime | datetime | NO | | NULL | |
|
||||
| LastRefresh | datetime | NO | | NULL | |
|
||||
| FirstPubCod | bigint(20) | NO | | 0 | |
|
||||
| LastPubCod | bigint(20) | NO | | 0 | |
|
||||
| LastPageMsgRcv | int(11) | NO | | 1 | |
|
||||
| LastPageMsgSnt | int(11) | NO | | 1 | |
|
||||
| WhatToSearch | tinyint(4) | NO | | 0 | |
|
||||
| SearchStr | varchar(2047) | NO | | | |
|
||||
| SideCols | tinyint(4) | NO | | 3 | |
|
||||
+----------------+---------------+------+-----+---------+-------+
|
||||
18 rows in set (0,00 sec)
|
||||
*/
|
||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS sessions ("
|
||||
"SessionId CHAR(43) NOT NULL,"
|
||||
|
@ -1918,7 +1918,7 @@ mysql> DESCRIBE sessions;
|
|||
"LastPageMsgRcv INT NOT NULL DEFAULT 1,"
|
||||
"LastPageMsgSnt INT NOT NULL DEFAULT 1,"
|
||||
"WhatToSearch TINYINT NOT NULL DEFAULT 0,"
|
||||
"SearchString VARCHAR(255) NOT NULL DEFAULT '',"
|
||||
"SearchStr VARCHAR(2047) NOT NULL DEFAULT ''," // Sch_MAX_BYTES_STRING_TO_FIND
|
||||
"SideCols TINYINT NOT NULL DEFAULT 3,"
|
||||
"UNIQUE INDEX(SessionId),"
|
||||
"INDEX(UsrCod))");
|
||||
|
|
|
@ -64,7 +64,7 @@ extern struct Globals Gbl;
|
|||
|
||||
static void Sch_PutFormToSearchWithWhatToSearchAndScope (Act_Action_t Action,Sco_Scope_t DefaultScope);
|
||||
static bool Sch_CheckIfIHavePermissionToSearch (Sch_WhatToSearch_t WhatToSearch);
|
||||
static void Sch_GetParamSearch (char *SearchStr,size_t MaxLength);
|
||||
static void Sch_GetParamSearch (void);
|
||||
static void Sch_SearchInDB (void);
|
||||
static unsigned Sch_SearchCountriesInDB (const char *RangeQuery);
|
||||
static unsigned Sch_SearchInstitutionsInDB (const char *RangeQuery);
|
||||
|
@ -405,10 +405,10 @@ void Sch_GetParamWhatToSearch (void)
|
|||
/*********************** Get string from search form *************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
static void Sch_GetParamSearch (char *SearchStr,size_t MaxLength)
|
||||
static void Sch_GetParamSearch (void)
|
||||
{
|
||||
/***** Get string to search *****/
|
||||
Par_GetParToText ("Search",SearchStr,MaxLength);
|
||||
Par_GetParToText ("Search",Gbl.Search.Str,Sch_MAX_BYTES_STRING_TO_FIND);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
@ -421,7 +421,7 @@ void Sch_GetParamsSearch (void)
|
|||
Sch_GetParamWhatToSearch ();
|
||||
|
||||
/***** Get search string *****/
|
||||
Sch_GetParamSearch (Gbl.Search.Str,sizeof (Gbl.Search.Str) - 1);
|
||||
Sch_GetParamSearch ();
|
||||
|
||||
/***** Save my search in order to show it in current session *****/
|
||||
if (Gbl.Usrs.Me.Logged)
|
||||
|
@ -1297,7 +1297,7 @@ bool Sch_BuildSearchQuery (char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1],
|
|||
LengthTotal += LengthWord;
|
||||
if (LengthWord > MaxLengthWord)
|
||||
MaxLengthWord = LengthWord;
|
||||
if (strlen (SearchQuery) + LengthWord + 512 >
|
||||
if (strlen (SearchQuery) + 128 + LengthWord >
|
||||
Sch_MAX_BYTES_SEARCH_QUERY) // Prevent string overflow
|
||||
break;
|
||||
if (NumWords)
|
||||
|
@ -1341,7 +1341,9 @@ bool Sch_BuildSearchQuery (char SearchQuery[Sch_MAX_BYTES_SEARCH_QUERY + 1],
|
|||
|
||||
static void Sch_SaveLastSearchIntoSession (void)
|
||||
{
|
||||
char Query[512];
|
||||
char Query[256 +
|
||||
Sch_MAX_BYTES_STRING_TO_FIND +
|
||||
Ses_LENGTH_SESSION_ID];
|
||||
|
||||
if (Gbl.Usrs.Me.Logged)
|
||||
{
|
||||
|
@ -1349,7 +1351,7 @@ static void Sch_SaveLastSearchIntoSession (void)
|
|||
Gbl.Search.WhatToSearch = Sch_WHAT_TO_SEARCH_DEFAULT;
|
||||
|
||||
/***** Save last search in session *****/
|
||||
sprintf (Query,"UPDATE sessions SET WhatToSearch='%u',SearchString='%s'"
|
||||
sprintf (Query,"UPDATE sessions SET WhatToSearch='%u',SearchStr='%s'"
|
||||
" WHERE SessionId='%s'",
|
||||
(unsigned) Gbl.Search.WhatToSearch,
|
||||
Gbl.Search.Str,
|
||||
|
@ -1359,8 +1361,7 @@ static void Sch_SaveLastSearchIntoSession (void)
|
|||
/***** Update my last type of search *****/
|
||||
// WhatToSearch is stored in usr_last for next time I log in
|
||||
// In other existing sessions distinct to this, WhatToSearch will remain unchanged
|
||||
sprintf (Query,"UPDATE usr_last SET WhatToSearch='%u'"
|
||||
" WHERE UsrCod='%ld'",
|
||||
sprintf (Query,"UPDATE usr_last SET WhatToSearch='%u' WHERE UsrCod='%ld'",
|
||||
(unsigned) Gbl.Search.WhatToSearch,
|
||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||
DB_QueryUPDATE (Query,"can not update type of search in user's last data");
|
||||
|
|
|
@ -39,7 +39,7 @@
|
|||
#define Sch_MAX_CHARS_SEARCH_WORD (128 - 1) // 127
|
||||
#define Sch_MAX_BYTES_SEARCH_WORD ((Sch_MAX_CHARS_SEARCH_WORD - 1) * Str_MAX_BYTES_PER_CHAR - 1) // 2047
|
||||
|
||||
#define Sch_MAX_BYTES_SEARCH_QUERY (Sch_MAX_WORDS_IN_SEARCH * Sch_MAX_BYTES_SEARCH_WORD)
|
||||
#define Sch_MAX_BYTES_SEARCH_QUERY (Sch_MAX_WORDS_IN_SEARCH * (128 + Sch_MAX_BYTES_SEARCH_WORD))
|
||||
|
||||
/*****************************************************************************/
|
||||
/******************************** Public types *******************************/
|
||||
|
|
|
@ -274,7 +274,7 @@ bool Ses_GetSessionData (void)
|
|||
/***** Query data of session from database *****/
|
||||
sprintf (Query,"SELECT UsrCod,Password,Role,"
|
||||
"CtyCod,InsCod,CtrCod,DegCod,CrsCod,"
|
||||
"WhatToSearch,SearchString"
|
||||
"WhatToSearch,SearchStr"
|
||||
" FROM sessions WHERE SessionId='%s'",
|
||||
Gbl.Session.Id);
|
||||
|
||||
|
|
|
@ -270,7 +270,8 @@ void Sta_GetRemoteAddr (void)
|
|||
void Sta_LogAccess (const char *Comments)
|
||||
{
|
||||
extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS];
|
||||
char Query[Sta_MAX_BYTES_QUERY_LOG + 1];
|
||||
char Query[Sta_MAX_BYTES_QUERY_LOG +
|
||||
Sch_MAX_BYTES_STRING_TO_FIND + 1];
|
||||
long LogCod;
|
||||
Rol_Role_t RoleToStore = (Gbl.Action.Act == ActLogOut) ? Gbl.Usrs.Me.LoggedRoleBeforeCloseSession :
|
||||
Gbl.Usrs.Me.LoggedRole;
|
||||
|
|
Loading…
Reference in New Issue