mirror of https://github.com/acanas/swad-core.git
Version 15.44.2
This commit is contained in:
parent
7fae861a6a
commit
5deedc39f7
|
@ -11164,3 +11164,5 @@ SELECT TstCod,AllowTeachers,UNIX_TIMESTAMP(TstTime) AS T,NumQsts,NumQstsNotBlank
|
|||
SELECT * FROM expanded_folders WHERE UNIX_TIMESTAMP() > UNIX_TIMESTAMP(ClickTime)+'1000';
|
||||
SELECT * FROM expanded_folders WHERE ClickTime<FROM_UNIXTIME(UNIX_TIMESTAMP()-'1000');
|
||||
|
||||
-----
|
||||
SELECT UsrCod,'Y',Sex FROM usr_data WHERE UsrCod IN (SELECT DISTINCT UsrCod FROM admin WHERE Scope='Sys' UNION SELECT DISTINCT admin.UsrCod FROM admin,institutions WHERE admin.Scope='Ins' AND admin.Cod=institutions.InsCod AND institutions.CtyCod='724') AS admin_codes ORDER BY Surname1,Surname2,FirstName,UsrCod;
|
||||
|
|
|
@ -100,22 +100,23 @@
|
|||
// TODO: Show guests in connected users.
|
||||
// TODO: A teacher should may confirm a student ID? In what conditions? (Necessary in order to a student can view his/her marks)
|
||||
// TODO: Put headers Content-type and Content-disposition when redirecting with Location:
|
||||
// TODO: System admin should be able to remove/edit user's mail (when he/she detects a recipient does not exists, for example)
|
||||
// TODO: When a new assignment/attendance/survey is incorrect, the second time the form is shown, it should be filled with partial data, now is always empty
|
||||
// TODO: Remove columns "first year, last year, optional, status" when listing degrees?
|
||||
// TODO: Show message indicating that mail could be in SPAM folder
|
||||
// TODO: Do not show e-mails of administrators and teachers in lists openly
|
||||
// TODO: Show nicknames of users in lists?
|
||||
// TODO: Form to register and remove system admins
|
||||
|
||||
/*****************************************************************************/
|
||||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.44.1 (2015/11/23)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 15.44.2 (2015/11/23)"
|
||||
|
||||
// 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 15.44.2: Nov 23, 2015 Improvement of speed in list of administrators. (187819 lines)
|
||||
Version 15.44.1: Nov 23, 2015 Fixed bug in list of administrators. (187809 lines)
|
||||
Version 15.44: Nov 23, 2015 Changes in list of institution, centre and degree administrators. (187788 lines)
|
||||
Version 15.43.2: Nov 22, 2015 Minor changes in CSS. (187719 lines)
|
||||
|
|
87
swad_user.c
87
swad_user.c
|
@ -4148,6 +4148,8 @@ static void Usr_GetAdmsLst (Sco_Scope_t Scope)
|
|||
char Query[1024];
|
||||
|
||||
/***** Build query *****/
|
||||
// Very important: use UNION instead OR in the following queries
|
||||
// (OR with different tables is very slow)
|
||||
switch (Scope)
|
||||
{
|
||||
case Sco_SCOPE_SYS: // All admins
|
||||
|
@ -4157,23 +4159,28 @@ static void Usr_GetAdmsLst (Sco_Scope_t Scope)
|
|||
break;
|
||||
case Sco_SCOPE_CTY: // System admins
|
||||
// and admins of the institutions, centres and degrees in the current country
|
||||
sprintf (Query,"SELECT UsrCod,'Y',Sex FROM usr_data WHERE UsrCod IN "
|
||||
"(SELECT DISTINCT admin.UsrCod"
|
||||
" FROM admin,institutions,centres,degrees WHERE"
|
||||
" admin.Scope='Sys' OR "
|
||||
"(admin.Scope='Ins'"
|
||||
sprintf (Query,"SELECT UsrCod,'Y',Sex FROM usr_data WHERE UsrCod IN ("
|
||||
"SELECT UsrCod FROM admin"
|
||||
" WHERE Scope='Sys'"
|
||||
" UNION "
|
||||
"SELECT DISTINCT admin.UsrCod FROM admin,institutions"
|
||||
" WHERE admin.Scope='Ins'"
|
||||
" AND admin.Cod=institutions.InsCod"
|
||||
" AND institutions.CtyCod='%ld') OR "
|
||||
"(admin.Scope='Ctr'"
|
||||
" AND institutions.CtyCod='%ld'"
|
||||
" UNION "
|
||||
"SELECT DISTINCT admin.UsrCod FROM admin,centres,institutions"
|
||||
" WHERE admin.Scope='Ctr'"
|
||||
" AND admin.Cod=centres.CtrCod"
|
||||
" AND centres.InsCod=institutions.InsCod"
|
||||
" AND institutions.CtyCod='%ld') OR "
|
||||
"(admin.Scope='Deg'"
|
||||
" AND institutions.CtyCod='%ld'"
|
||||
" UNION "
|
||||
"SELECT DISTINCT admin.UsrCod FROM admin,degrees,centres,institutions"
|
||||
" WHERE admin.Scope='Deg'"
|
||||
" AND admin.Cod=degrees.DegCod"
|
||||
" AND degrees.CtrCod=centres.CtrCod"
|
||||
" AND centres.InsCod=institutions.InsCod"
|
||||
" AND institutions.CtyCod='%ld'))"
|
||||
" ORDER BY Surname1,Surname2,FirstName,UsrCod",
|
||||
" AND institutions.CtyCod='%ld'"
|
||||
") ORDER BY Surname1,Surname2,FirstName,UsrCod",
|
||||
Gbl.CurrentCty.Cty.CtyCod,
|
||||
Gbl.CurrentCty.Cty.CtyCod,
|
||||
Gbl.CurrentCty.Cty.CtyCod);
|
||||
|
@ -4181,19 +4188,22 @@ static void Usr_GetAdmsLst (Sco_Scope_t Scope)
|
|||
case Sco_SCOPE_INS: // System admins,
|
||||
// admins of the current institution,
|
||||
// and admins of the centres and degrees in the current institution
|
||||
sprintf (Query,"SELECT UsrCod,'Y',Sex FROM usr_data WHERE UsrCod IN "
|
||||
"(SELECT DISTINCT admin.UsrCod"
|
||||
" FROM admin,centres,degrees WHERE"
|
||||
" admin.Scope='Sys' OR "
|
||||
"(admin.Scope='Ins' AND admin.Cod='%ld') OR "
|
||||
"(admin.Scope='Ctr'"
|
||||
sprintf (Query,"SELECT UsrCod,'Y',Sex FROM usr_data WHERE UsrCod IN ("
|
||||
"SELECT DISTINCT UsrCod FROM admin"
|
||||
" WHERE Scope='Sys' OR "
|
||||
" (Scope='Ins' AND Cod='%ld')"
|
||||
" UNION "
|
||||
"SELECT DISTINCT admin.UsrCod FROM admin,centres"
|
||||
" WHERE admin.Scope='Ctr'"
|
||||
" AND admin.Cod=centres.CtrCod"
|
||||
" AND centres.InsCod='%ld') OR "
|
||||
"(admin.Scope='Deg'"
|
||||
" AND centres.InsCod='%ld'"
|
||||
" UNION "
|
||||
"SELECT DISTINCT admin.UsrCod FROM admin,degrees,centres"
|
||||
" WHERE admin.Scope='Deg'"
|
||||
" AND admin.Cod=degrees.DegCod"
|
||||
" AND degrees.CtrCod=centres.CtrCod"
|
||||
" AND centres.InsCod='%ld'))"
|
||||
" ORDER BY Surname1,Surname2,FirstName,UsrCod",
|
||||
" AND centres.InsCod='%ld'"
|
||||
") ORDER BY Surname1,Surname2,FirstName,UsrCod",
|
||||
Gbl.CurrentIns.Ins.InsCod,
|
||||
Gbl.CurrentIns.Ins.InsCod,
|
||||
Gbl.CurrentIns.Ins.InsCod);
|
||||
|
@ -4202,31 +4212,30 @@ static void Usr_GetAdmsLst (Sco_Scope_t Scope)
|
|||
// admins of the current institution,
|
||||
// admins and the current centre,
|
||||
// and admins of the degrees in the current centre
|
||||
sprintf (Query,"SELECT UsrCod,'Y',Sex FROM usr_data WHERE UsrCod IN "
|
||||
"(SELECT DISTINCT admin.UsrCod"
|
||||
" FROM admin,degrees WHERE"
|
||||
" admin.Scope='Sys' OR "
|
||||
"(admin.Scope='Ins' AND admin.Cod='%ld') OR "
|
||||
"(admin.Scope='Ctr' AND admin.Cod='%ld') OR "
|
||||
"(admin.Scope='Deg'"
|
||||
sprintf (Query,"SELECT UsrCod,'Y',Sex FROM usr_data WHERE UsrCod IN ("
|
||||
"SELECT DISTINCT UsrCod FROM admin"
|
||||
" WHERE Scope='Sys' OR "
|
||||
" (Scope='Ins' AND Cod='%ld') OR"
|
||||
" (Scope='Ctr' AND Cod='%ld')"
|
||||
" UNION "
|
||||
"SELECT DISTINCT admin.UsrCod FROM admin,degrees"
|
||||
" WHERE admin.Scope='Deg'"
|
||||
" AND admin.Cod=degrees.DegCod"
|
||||
" AND degrees.CtrCod='%ld'))"
|
||||
" ORDER BY Surname1,Surname2,FirstName,UsrCod",
|
||||
" AND degrees.CtrCod='%ld'"
|
||||
") ORDER BY Surname1,Surname2,FirstName,UsrCod",
|
||||
Gbl.CurrentIns.Ins.InsCod,
|
||||
Gbl.CurrentCtr.Ctr.CtrCod,
|
||||
Gbl.CurrentCtr.Ctr.CtrCod);
|
||||
break;
|
||||
case Sco_SCOPE_DEG: // System admins
|
||||
// and admins of the current institution, centre or degree
|
||||
sprintf (Query,"SELECT UsrCod,'Y',Sex FROM usr_data"
|
||||
" WHERE UsrCod IN "
|
||||
"(SELECT DISTINCT UsrCod"
|
||||
" FROM admin WHERE"
|
||||
" admin.Scope='Sys' OR "
|
||||
"(admin.Scope='Ins' AND admin.Cod='%ld') OR "
|
||||
"(admin.Scope='Ctr' AND admin.Cod='%ld') OR "
|
||||
"(admin.Scope='Deg' AND admin.Cod='%ld'))"
|
||||
" ORDER BY Surname1,Surname2,FirstName,UsrCod",
|
||||
sprintf (Query,"SELECT UsrCod,'Y',Sex FROM usr_data WHERE UsrCod IN ("
|
||||
"SELECT DISTINCT UsrCod FROM admin"
|
||||
" WHERE Scope='Sys' OR "
|
||||
" (Scope='Ins' AND Cod='%ld') OR"
|
||||
" (Scope='Ctr' AND Cod='%ld') OR"
|
||||
" (Scope='Deg' AND Cod='%ld')"
|
||||
") ORDER BY Surname1,Surname2,FirstName,UsrCod",
|
||||
Gbl.CurrentIns.Ins.InsCod,
|
||||
Gbl.CurrentCtr.Ctr.CtrCod,
|
||||
Gbl.CurrentDeg.Deg.DegCod);
|
||||
|
|
Loading…
Reference in New Issue