mirror of https://github.com/acanas/swad-core.git
Version 20.91.2: Jun 11, 2021 Queries moved to module swad_enrolment_database.
This commit is contained in:
parent
f5d59b104d
commit
ca9420971c
|
@ -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 20.91.1 (2021-06-10)"
|
#define Log_PLATFORM_VERSION "SWAD 20.91.2 (2021-06-11)"
|
||||||
#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 20.91.2: Jun 11, 2021 Queries moved to module swad_enrolment_database. (313143 lines)
|
||||||
Version 20.91.1: Jun 10, 2021 Queries moved to module swad_enrolment_database. (313145 lines)
|
Version 20.91.1: Jun 10, 2021 Queries moved to module swad_enrolment_database. (313145 lines)
|
||||||
Version 20.91: Jun 09, 2021 New module swad_enrolment_database for database queries related to user's enrolment. (313063 lines)
|
Version 20.91: Jun 09, 2021 New module swad_enrolment_database for database queries related to user's enrolment. (313063 lines)
|
||||||
Version 20.90.1: Jun 09, 2021 Queries moved to module swad_duplicate_database. (312962 lines)
|
Version 20.90.1: Jun 09, 2021 Queries moved to module swad_duplicate_database. (312962 lines)
|
||||||
|
|
967
swad_enrolment.c
967
swad_enrolment.c
File diff suppressed because it is too large
Load Diff
|
@ -38,7 +38,7 @@
|
||||||
// #include "swad_duplicate.h"
|
// #include "swad_duplicate.h"
|
||||||
#include "swad_enrolment.h"
|
#include "swad_enrolment.h"
|
||||||
#include "swad_enrolment_database.h"
|
#include "swad_enrolment_database.h"
|
||||||
// #include "swad_error.h"
|
#include "swad_error.h"
|
||||||
// #include "swad_exam_print.h"
|
// #include "swad_exam_print.h"
|
||||||
// #include "swad_form.h"
|
// #include "swad_form.h"
|
||||||
#include "swad_global.h"
|
#include "swad_global.h"
|
||||||
|
@ -135,6 +135,540 @@ void Enr_DB_AcceptUsrInCrs (long UsrCod)
|
||||||
UsrCod);
|
UsrCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/********* Set a user's acceptation to true in the current course ************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
unsigned Enr_DB_GetEnrolmentRequests (MYSQL_RES **mysql_res,unsigned RolesSelected)
|
||||||
|
{
|
||||||
|
switch (Gbl.Scope.Current)
|
||||||
|
{
|
||||||
|
case HieLvl_SYS: // Show requesters for the whole platform
|
||||||
|
switch (Gbl.Usrs.Me.Role.Logged)
|
||||||
|
{
|
||||||
|
case Rol_TCH:
|
||||||
|
// Requests in all courses in which I am teacher
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM crs_users,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
|
" AND crs_users.Role=%u"
|
||||||
|
" AND crs_users.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
(unsigned) Rol_TCH,
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_DEG_ADM:
|
||||||
|
// Requests in all degrees administrated by me
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM usr_admins,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
|
" AND usr_admins.Scope='%s'"
|
||||||
|
" AND usr_admins.Cod=crs_courses.DegCod"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_DEG),
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_CTR_ADM:
|
||||||
|
// Requests in all centers administrated by me
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM usr_admins,"
|
||||||
|
"deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
|
" AND usr_admins.Scope='%s'"
|
||||||
|
" AND usr_admins.Cod=deg_degrees.CtrCod"
|
||||||
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_CTR),
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_INS_ADM:
|
||||||
|
// Requests in all institutions administrated by me
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM usr_admins,"
|
||||||
|
"ctr_centers,"
|
||||||
|
"deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
|
" AND usr_admins.Scope='%s'"
|
||||||
|
" AND usr_admins.Cod=ctr_centers.InsCod"
|
||||||
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_INS),
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_SYS_ADM:
|
||||||
|
// All requests
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT ReqCod," // row[0]
|
||||||
|
"CrsCod," // row[1]
|
||||||
|
"UsrCod," // row[2]
|
||||||
|
"Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(RequestTime)" // row[4]
|
||||||
|
" FROM crs_requests"
|
||||||
|
" WHERE ((1<<Role)&%u)<>0"
|
||||||
|
" ORDER BY RequestTime DESC",
|
||||||
|
RolesSelected);
|
||||||
|
default:
|
||||||
|
Err_NoPermissionExit ();
|
||||||
|
return 0; // Not reached
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
case HieLvl_CTY: // Show requesters for the current country
|
||||||
|
switch (Gbl.Usrs.Me.Role.Logged)
|
||||||
|
{
|
||||||
|
case Rol_TCH:
|
||||||
|
// Requests in courses of this country in which I am teacher
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // roe[4]
|
||||||
|
" FROM crs_users,"
|
||||||
|
"ins_instits,"
|
||||||
|
"ctr_centers,"
|
||||||
|
"deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
|
" AND crs_users.Role=%u"
|
||||||
|
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||||
|
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
||||||
|
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||||
|
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
||||||
|
" AND ins_instits.CtyCod=%ld"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
(unsigned) Rol_TCH,
|
||||||
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_DEG_ADM:
|
||||||
|
// Requests in degrees of this country administrated by me
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM usr_admins,"
|
||||||
|
"ins_instits,"
|
||||||
|
"ctr_centers,"
|
||||||
|
"deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
|
" AND usr_admins.Scope='%s'"
|
||||||
|
" AND usr_admins.Cod=deg_degrees.DegCod"
|
||||||
|
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||||
|
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
||||||
|
" AND ins_instits.CtyCod=%ld"
|
||||||
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
Sco_GetDBStrFromScope (HieLvl_DEG),
|
||||||
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_CTR_ADM:
|
||||||
|
// Requests in centers of this country administrated by me
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM usr_admins,"
|
||||||
|
"ins_instits,"
|
||||||
|
"ctr_centers,"
|
||||||
|
"deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
|
" AND usr_admins.Scope='%s'"
|
||||||
|
" AND usr_admins.Cod=ctr_centers.CtrCod"
|
||||||
|
" AND ctr_centers.InsCod=ins_instits.InsCod"
|
||||||
|
" AND ins_instits.CtyCod=%ld"
|
||||||
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
Sco_GetDBStrFromScope (HieLvl_CTR),
|
||||||
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_INS_ADM:
|
||||||
|
// Requests in institutions of this country administrated by me
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM usr_admins,"
|
||||||
|
"ins_instits,"
|
||||||
|
"ctr_centers,"
|
||||||
|
"deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
|
" AND usr_admins.Scope='%s'"
|
||||||
|
" AND usr_admins.Cod=ins_instits.InsCod"
|
||||||
|
" AND ins_instits.CtyCod=%ld"
|
||||||
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
Sco_GetDBStrFromScope (HieLvl_INS),
|
||||||
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_SYS_ADM:
|
||||||
|
// Requests in any course of this country
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM ins_instits,"
|
||||||
|
"ctr_centers,"
|
||||||
|
"deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE ins_instits.CtyCod=%ld"
|
||||||
|
" AND ins_instits.InsCod=ctr_centers.InsCod"
|
||||||
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Hierarchy.Cty.CtyCod,
|
||||||
|
RolesSelected);
|
||||||
|
default:
|
||||||
|
Err_NoPermissionExit ();
|
||||||
|
return 0; // Not reached
|
||||||
|
}
|
||||||
|
return 0; // Not reached
|
||||||
|
case HieLvl_INS: // Show requesters for the current institution
|
||||||
|
switch (Gbl.Usrs.Me.Role.Logged)
|
||||||
|
{
|
||||||
|
case Rol_TCH:
|
||||||
|
// Requests in courses of this institution in which I am teacher
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM crs_users,"
|
||||||
|
"ctr_centers,"
|
||||||
|
"deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
|
" AND crs_users.Role=%u"
|
||||||
|
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||||
|
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
||||||
|
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||||
|
" AND ctr_centers.InsCod=%ld"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
(unsigned) Rol_TCH,
|
||||||
|
Gbl.Hierarchy.Ins.InsCod,
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_DEG_ADM:
|
||||||
|
// Requests in degrees of this institution administrated by me
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM usr_admins,"
|
||||||
|
"ctr_centers,"
|
||||||
|
"deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
|
" AND usr_admins.Scope='%s'"
|
||||||
|
" AND usr_admins.Cod=deg_degrees.DegCod"
|
||||||
|
" AND deg_degrees.CtrCod=ctr_centers.CtrCod"
|
||||||
|
" AND ctr_centers.InsCod=%ld"
|
||||||
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
Sco_GetDBStrFromScope (HieLvl_DEG),
|
||||||
|
Gbl.Hierarchy.Ins.InsCod,
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_CTR_ADM:
|
||||||
|
// Requests in centers of this institution administrated by me
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM usr_admins,"
|
||||||
|
"ctr_centers,"
|
||||||
|
"deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
|
" AND usr_admins.Scope='%s'"
|
||||||
|
" AND usr_admins.Cod=ctr_centers.CtrCod"
|
||||||
|
" AND ctr_centers.InsCod=%ld"
|
||||||
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,Sco_GetDBStrFromScope (HieLvl_CTR),
|
||||||
|
Gbl.Hierarchy.Ins.InsCod,
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this institution
|
||||||
|
case Rol_SYS_ADM:
|
||||||
|
// Requests in any course of this institution
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM ctr_centers,"
|
||||||
|
"deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE ctr_centers.InsCod=%ld"
|
||||||
|
" AND ctr_centers.CtrCod=deg_degrees.CtrCod"
|
||||||
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Hierarchy.Ins.InsCod,
|
||||||
|
RolesSelected);
|
||||||
|
default:
|
||||||
|
Err_NoPermissionExit ();
|
||||||
|
return 0; // Not reached
|
||||||
|
}
|
||||||
|
return 0; // Not reached
|
||||||
|
case HieLvl_CTR: // Show requesters for the current center
|
||||||
|
switch (Gbl.Usrs.Me.Role.Logged)
|
||||||
|
{
|
||||||
|
case Rol_TCH:
|
||||||
|
// Requests in courses of this center in which I am teacher
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM crs_users,"
|
||||||
|
"deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
|
" AND crs_users.Role=%u"
|
||||||
|
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||||
|
" AND crs_courses.DegCod=deg_degrees.DegCod"
|
||||||
|
" AND deg_degrees.CtrCod=%ld"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
(unsigned) Rol_TCH,
|
||||||
|
Gbl.Hierarchy.Ctr.CtrCod,
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_DEG_ADM:
|
||||||
|
// Requests in degrees of this center administrated by me
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM usr_admins,"
|
||||||
|
"deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE usr_admins.UsrCod=%ld"
|
||||||
|
" AND usr_admins.Scope='%s'"
|
||||||
|
" AND usr_admins.Cod=deg_degrees.DegCod"
|
||||||
|
" AND deg_degrees.CtrCod=%ld"
|
||||||
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
Sco_GetDBStrFromScope (HieLvl_DEG),
|
||||||
|
Gbl.Hierarchy.Ctr.CtrCod,
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_CTR_ADM: // If I am logged as admin of this center , I can view all the requesters from this center
|
||||||
|
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this center
|
||||||
|
case Rol_SYS_ADM:
|
||||||
|
// Request in any course of this center
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM deg_degrees,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE deg_degrees.CtrCod=%ld"
|
||||||
|
" AND deg_degrees.DegCod=crs_courses.DegCod"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Hierarchy.Ctr.CtrCod,
|
||||||
|
RolesSelected);
|
||||||
|
default:
|
||||||
|
Err_NoPermissionExit ();
|
||||||
|
return 0; // Not reached
|
||||||
|
}
|
||||||
|
return 0; // Not reached
|
||||||
|
case HieLvl_DEG: // Show requesters for the current degree
|
||||||
|
switch (Gbl.Usrs.Me.Role.Logged)
|
||||||
|
{
|
||||||
|
case Rol_TCH:
|
||||||
|
// Requests in courses of this degree in which I am teacher
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM crs_users,"
|
||||||
|
"crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE crs_users.UsrCod=%ld"
|
||||||
|
" AND crs_users.Role=%u"
|
||||||
|
" AND crs_users.CrsCod=crs_courses.CrsCod"
|
||||||
|
" AND crs_courses.DegCod=%ld"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
|
(unsigned) Rol_TCH,
|
||||||
|
Gbl.Hierarchy.Deg.DegCod,
|
||||||
|
RolesSelected);
|
||||||
|
case Rol_DEG_ADM: // If I am logged as admin of this degree , I can view all the requesters from this degree
|
||||||
|
case Rol_CTR_ADM: // If I am logged as admin of this center , I can view all the requesters from this degree
|
||||||
|
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this degree
|
||||||
|
case Rol_SYS_ADM:
|
||||||
|
// Requests in any course of this degree
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT crs_requests.ReqCod," // row[0]
|
||||||
|
"crs_requests.CrsCod," // row[1]
|
||||||
|
"crs_requests.UsrCod," // row[2]
|
||||||
|
"crs_requests.Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(crs_requests.RequestTime)" // row[4]
|
||||||
|
" FROM crs_courses,"
|
||||||
|
"crs_requests"
|
||||||
|
" WHERE crs_courses.DegCod=%ld"
|
||||||
|
" AND crs_courses.CrsCod=crs_requests.CrsCod"
|
||||||
|
" AND ((1<<crs_requests.Role)&%u)<>0"
|
||||||
|
" ORDER BY crs_requests.RequestTime DESC",
|
||||||
|
Gbl.Hierarchy.Deg.DegCod,
|
||||||
|
RolesSelected);
|
||||||
|
default:
|
||||||
|
Err_NoPermissionExit ();
|
||||||
|
return 0; // Not reached
|
||||||
|
}
|
||||||
|
return 0; // Not reached
|
||||||
|
case HieLvl_CRS: // Show requesters for the current course
|
||||||
|
switch (Gbl.Usrs.Me.Role.Logged)
|
||||||
|
{
|
||||||
|
case Rol_TCH: // If I am logged as teacher of this course , I can view all the requesters from this course
|
||||||
|
case Rol_DEG_ADM: // If I am logged as admin of this degree , I can view all the requesters from this course
|
||||||
|
case Rol_CTR_ADM: // If I am logged as admin of this center , I can view all the requesters from this course
|
||||||
|
case Rol_INS_ADM: // If I am logged as admin of this institution, I can view all the requesters from this course
|
||||||
|
case Rol_SYS_ADM:
|
||||||
|
// Requests in this course
|
||||||
|
return (unsigned)
|
||||||
|
DB_QuerySELECT (mysql_res,"can not get requests for enrolment",
|
||||||
|
"SELECT ReqCod," // row[0]
|
||||||
|
"CrsCod," // row[1]
|
||||||
|
"UsrCod," // row[2]
|
||||||
|
"Role," // row[3]
|
||||||
|
"UNIX_TIMESTAMP(RequestTime)" // row[4]
|
||||||
|
" FROM crs_requests"
|
||||||
|
" WHERE CrsCod=%ld"
|
||||||
|
" AND ((1<<Role)&%u)<>0"
|
||||||
|
" ORDER BY RequestTime DESC",
|
||||||
|
Gbl.Hierarchy.Crs.CrsCod,
|
||||||
|
RolesSelected);
|
||||||
|
default:
|
||||||
|
Err_NoPermissionExit ();
|
||||||
|
return 0; // Not reached
|
||||||
|
}
|
||||||
|
return 0; // Not reached
|
||||||
|
default:
|
||||||
|
Err_WrongScopeExit ();
|
||||||
|
return 0; // Not reached
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/****** Get enrolment request (user and requested role) given its code *******/
|
/****** Get enrolment request (user and requested role) given its code *******/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -151,10 +685,10 @@ unsigned Enr_DB_GetEnrolmentRequestByCod (MYSQL_RES **mysql_res,long ReqCod)
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/*** Try to get and old request of me in the current course from database ****/
|
/********** Try to get an enrolment request from a user in a course **********/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
long Enr_DB_GetMyLastEnrolmentRequestInCurrentCrs (void)
|
long Enr_DB_GetUsrEnrolmentRequestInCrs (long CrsCod,long UsrCod)
|
||||||
{
|
{
|
||||||
return
|
return
|
||||||
DB_QuerySELECTCode ("can not get enrolment request",
|
DB_QuerySELECTCode ("can not get enrolment request",
|
||||||
|
@ -162,8 +696,8 @@ long Enr_DB_GetMyLastEnrolmentRequestInCurrentCrs (void)
|
||||||
" FROM crs_requests"
|
" FROM crs_requests"
|
||||||
" WHERE CrsCod=%ld"
|
" WHERE CrsCod=%ld"
|
||||||
" AND UsrCod=%ld",
|
" AND UsrCod=%ld",
|
||||||
Gbl.Hierarchy.Crs.CrsCod,
|
CrsCod,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
UsrCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -202,6 +736,18 @@ void Enr_DB_UpdateMyEnrolmentRequestInCurrentCrs (long ReqCod,Rol_Role_t NewRole
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod);
|
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/************************** Remove enrolment request *************************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Enr_DB_RemRequest (long ReqCod)
|
||||||
|
{
|
||||||
|
DB_QueryDELETE ("can not remove a request for enrolment",
|
||||||
|
"DELETE FROM crs_requests"
|
||||||
|
" WHERE ReqCod=%ld",
|
||||||
|
ReqCod);
|
||||||
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/*********** Remove all users' requests for inscription in a course **********/
|
/*********** Remove all users' requests for inscription in a course **********/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -287,3 +833,19 @@ void Enr_DB_RemAdmins (HieLvl_Level_t Scope,long Cod)
|
||||||
Sco_GetDBStrFromScope (Scope),
|
Sco_GetDBStrFromScope (Scope),
|
||||||
Cod);
|
Cod);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/***** Remove user as administrator of an institution, center or degree ******/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Enr_DB_RemAdmin (long UsrCod,HieLvl_Level_t Scope,long Cod)
|
||||||
|
{
|
||||||
|
DB_QueryDELETE ("can not remove an administrator",
|
||||||
|
"DELETE FROM usr_admins"
|
||||||
|
" WHERE UsrCod=%ld"
|
||||||
|
" AND Scope='%s'"
|
||||||
|
" AND Cod=%ld",
|
||||||
|
UsrCod,
|
||||||
|
Sco_GetDBStrFromScope (Scope),
|
||||||
|
Cod);
|
||||||
|
}
|
||||||
|
|
|
@ -52,17 +52,21 @@ void Enr_DB_UpdateInstitutionCenterDepartment (void);
|
||||||
|
|
||||||
void Enr_DB_AcceptUsrInCrs (long UsrCod);
|
void Enr_DB_AcceptUsrInCrs (long UsrCod);
|
||||||
|
|
||||||
|
unsigned Enr_DB_GetEnrolmentRequests (MYSQL_RES **mysql_res,unsigned RolesSelected);
|
||||||
unsigned Enr_DB_GetEnrolmentRequestByCod (MYSQL_RES **mysql_res,long ReqCod);
|
unsigned Enr_DB_GetEnrolmentRequestByCod (MYSQL_RES **mysql_res,long ReqCod);
|
||||||
long Enr_DB_GetMyLastEnrolmentRequestInCurrentCrs (void);
|
long Enr_DB_GetUsrEnrolmentRequestInCrs (long CrsCod,long UsrCod);
|
||||||
long Enr_DB_CreateMyEnrolmentRequestInCurrentCrs (Rol_Role_t NewRole);
|
long Enr_DB_CreateMyEnrolmentRequestInCurrentCrs (Rol_Role_t NewRole);
|
||||||
void Enr_DB_UpdateMyEnrolmentRequestInCurrentCrs (long ReqCod,Rol_Role_t NewRole);
|
void Enr_DB_UpdateMyEnrolmentRequestInCurrentCrs (long ReqCod,Rol_Role_t NewRole);
|
||||||
|
void Enr_DB_RemRequest (long ReqCod);
|
||||||
void Enr_DB_RemCrsRequests (long CrsCod);
|
void Enr_DB_RemCrsRequests (long CrsCod);
|
||||||
void Enr_DB_RemUsrRequests (long UsrCod);
|
void Enr_DB_RemUsrRequests (long UsrCod);
|
||||||
|
|
||||||
void Enr_DB_RemAllUsrsFromCrsSettings (long CrsCod);
|
void Enr_DB_RemAllUsrsFromCrsSettings (long CrsCod);
|
||||||
void Enr_DB_RemAllUsrsFromCrs (long CrsCod);
|
void Enr_DB_RemAllUsrsFromCrs (long CrsCod);
|
||||||
void Enr_DB_RemUsrFromAllCrss (long UsrCod);
|
void Enr_DB_RemUsrFromAllCrss (long UsrCod);
|
||||||
|
|
||||||
void Enr_DB_RemUsrAsAdmin (long UsrCod);
|
void Enr_DB_RemUsrAsAdmin (long UsrCod);
|
||||||
void Enr_DB_RemAdmins (HieLvl_Level_t Scope,long Cod);
|
void Enr_DB_RemAdmins (HieLvl_Level_t Scope,long Cod);
|
||||||
|
void Enr_DB_RemAdmin (long UsrCod,HieLvl_Level_t Scope,long Cod);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue