mirror of https://github.com/acanas/swad-core.git
Version 15.245.4
This commit is contained in:
parent
7074316c9b
commit
4c75fcfd91
|
@ -412,8 +412,7 @@ bool ID_ICanSeeAnotherUsrID (struct UsrData *UsrDat)
|
||||||
case Rol_TEACHER:
|
case Rol_TEACHER:
|
||||||
/* If I am a teacher of current course,
|
/* If I am a teacher of current course,
|
||||||
I only can see the user's IDs of students from current course */
|
I only can see the user's IDs of students from current course */
|
||||||
return (UsrDat->Accepted &&
|
return (UsrDat->RoleInCurrentCrsDB == Rol_STUDENT && UsrDat->Accepted);
|
||||||
UsrDat->RoleInCurrentCrsDB == Rol_STUDENT);
|
|
||||||
case Rol_DEG_ADM:
|
case Rol_DEG_ADM:
|
||||||
/* If I am an administrator of current degree,
|
/* If I am an administrator of current degree,
|
||||||
I only can see the user's IDs of users from current degree */
|
I only can see the user's IDs of users from current degree */
|
||||||
|
|
|
@ -136,13 +136,14 @@
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 15.245.3 (2016-07-24)"
|
#define Log_PLATFORM_VERSION "SWAD 15.245.4 (2016-07-26)"
|
||||||
#define CSS_FILE "swad15.229.css"
|
#define CSS_FILE "swad15.229.css"
|
||||||
#define JS_FILE "swad15.238.1.js"
|
#define JS_FILE "swad15.238.1.js"
|
||||||
|
|
||||||
// Number of lines (includes comments but not blank lines) has been got with the following command:
|
// 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
|
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h sql/swad*.sql | tail -1
|
||||||
/*
|
/*
|
||||||
|
Version 15.245.4: Jul 26, 2016 Fixed bug in user's data. (? lines)
|
||||||
Version 15.245.3: Jul 25, 2016 Listing of guests uses the list filled instead of querying database a second time to get all user's data. (204088 lines)
|
Version 15.245.3: Jul 25, 2016 Listing of guests uses the list filled instead of querying database a second time to get all user's data. (204088 lines)
|
||||||
Version 15.245.2: Jul 25, 2016 Listing of students/teachers uses the list filled instead of querying database a second time to get all user's data. (204088 lines)
|
Version 15.245.2: Jul 25, 2016 Listing of students/teachers uses the list filled instead of querying database a second time to get all user's data. (204088 lines)
|
||||||
Version 15.245.1: Jul 25, 2016 Code refactoring in building of queries to get/search users. (204081 lines)
|
Version 15.245.1: Jul 25, 2016 Code refactoring in building of queries to get/search users. (204081 lines)
|
||||||
|
|
89
swad_user.c
89
swad_user.c
|
@ -3575,18 +3575,20 @@ static void Usr_BuildQueryToGetUsrsLstCrs (Rol_Role_t Role,char *Query)
|
||||||
"usr_data.Photo,"
|
"usr_data.Photo,"
|
||||||
"usr_data.PhotoVisibility,"
|
"usr_data.PhotoVisibility,"
|
||||||
"usr_data.InsCod,"
|
"usr_data.InsCod,"
|
||||||
|
"crs_usr.Role,"
|
||||||
"crs_usr.Accepted";
|
"crs_usr.Accepted";
|
||||||
/*
|
/*
|
||||||
row[0]: usr_data.UsrCod
|
row[ 0]: usr_data.UsrCod
|
||||||
row[1]: usr_data.EncryptedUsrCod
|
row[ 1]: usr_data.EncryptedUsrCod
|
||||||
row[2]: usr_data.Surname1
|
row[ 2]: usr_data.Surname1
|
||||||
row[3]: usr_data.Surname2
|
row[ 3]: usr_data.Surname2
|
||||||
row[4]: usr_data.FirstName
|
row[ 4]: usr_data.FirstName
|
||||||
row[5]: usr_data.Sex
|
row[ 5]: usr_data.Sex
|
||||||
row[6]: usr_data.Photo
|
row[ 6]: usr_data.Photo
|
||||||
row[7]: usr_data.PhotoVisibility
|
row[ 7]: usr_data.PhotoVisibility
|
||||||
row[8]: usr_data.InsCod
|
row[ 8]: usr_data.InsCod
|
||||||
row[9]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
row[ 9]: crs_usr.Role (only if Scope == Sco_SCOPE_CRS)
|
||||||
|
row[10]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/***** If there are no groups selected, don't do anything *****/
|
/***** If there are no groups selected, don't do anything *****/
|
||||||
|
@ -3736,16 +3738,17 @@ void Usr_GetListUsrs (Rol_Role_t Role,Sco_Scope_t Scope)
|
||||||
"usr_data.PhotoVisibility,"
|
"usr_data.PhotoVisibility,"
|
||||||
"usr_data.InsCod";
|
"usr_data.InsCod";
|
||||||
/*
|
/*
|
||||||
row[0]: usr_data.UsrCod
|
row[ 0]: usr_data.UsrCod
|
||||||
row[1]: usr_data.EncryptedUsrCod
|
row[ 1]: usr_data.EncryptedUsrCod
|
||||||
row[2]: usr_data.Surname1
|
row[ 2]: usr_data.Surname1
|
||||||
row[3]: usr_data.Surname2
|
row[ 3]: usr_data.Surname2
|
||||||
row[4]: usr_data.FirstName
|
row[ 4]: usr_data.FirstName
|
||||||
row[5]: usr_data.Sex
|
row[ 5]: usr_data.Sex
|
||||||
row[6]: usr_data.Photo
|
row[ 6]: usr_data.Photo
|
||||||
row[7]: usr_data.PhotoVisibility
|
row[ 7]: usr_data.PhotoVisibility
|
||||||
row[8]: usr_data.InsCod
|
row[ 8]: usr_data.InsCod
|
||||||
row[9]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
row[ 9]: crs_usr.Role (only if Scope == Sco_SCOPE_CRS)
|
||||||
|
row[10]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/***** Build query *****/
|
/***** Build query *****/
|
||||||
|
@ -4426,16 +4429,17 @@ static void Usr_GetListUsrsFromQuery (const char *Query,Rol_Role_t Role,Sco_Scop
|
||||||
/* Get next user */
|
/* Get next user */
|
||||||
row = mysql_fetch_row (mysql_res);
|
row = mysql_fetch_row (mysql_res);
|
||||||
/*
|
/*
|
||||||
row[0]: usr_data.UsrCod
|
row[ 0]: usr_data.UsrCod
|
||||||
row[1]: usr_data.EncryptedUsrCod
|
row[ 1]: usr_data.EncryptedUsrCod
|
||||||
row[2]: usr_data.Surname1
|
row[ 2]: usr_data.Surname1
|
||||||
row[3]: usr_data.Surname2
|
row[ 3]: usr_data.Surname2
|
||||||
row[4]: usr_data.FirstName
|
row[ 4]: usr_data.FirstName
|
||||||
row[5]: usr_data.Sex
|
row[ 5]: usr_data.Sex
|
||||||
row[6]: usr_data.Photo
|
row[ 6]: usr_data.Photo
|
||||||
row[7]: usr_data.PhotoVisibility
|
row[ 7]: usr_data.PhotoVisibility
|
||||||
row[8]: usr_data.InsCod
|
row[ 8]: usr_data.InsCod
|
||||||
row[9]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
row[ 9]: crs_usr.Role (only if Scope == Sco_SCOPE_CRS)
|
||||||
|
row[10]: crs_usr.Accepted (only if Scope == Sco_SCOPE_CRS)
|
||||||
*/
|
*/
|
||||||
UsrInList = &Gbl.Usrs.LstUsrs[Role].Lst[NumUsr];
|
UsrInList = &Gbl.Usrs.LstUsrs[Role].Lst[NumUsr];
|
||||||
|
|
||||||
|
@ -4471,8 +4475,8 @@ static void Usr_GetListUsrsFromQuery (const char *Query,Rol_Role_t Role,Sco_Scop
|
||||||
/* Get user's institution code (row[8]) */
|
/* Get user's institution code (row[8]) */
|
||||||
UsrInList->InsCod = Str_ConvertStrCodToLongCod (row[8]);
|
UsrInList->InsCod = Str_ConvertStrCodToLongCod (row[8]);
|
||||||
|
|
||||||
/* Get user's acceptance of enrollment in course(s)
|
/* Get user's role and acceptance of enrollment in course(s)
|
||||||
(row[9] if Scope == Sco_SCOPE_CRS) */
|
(row[9], row[10] if Scope == Sco_SCOPE_CRS) */
|
||||||
switch (Role)
|
switch (Role)
|
||||||
{
|
{
|
||||||
case Rol_UNKNOWN: // Here Rol_UNKNOWN means any user
|
case Rol_UNKNOWN: // Here Rol_UNKNOWN means any user
|
||||||
|
@ -4482,7 +4486,8 @@ static void Usr_GetListUsrsFromQuery (const char *Query,Rol_Role_t Role,Sco_Scop
|
||||||
Lay_ShowErrorAndExit ("Wrong scope.");
|
Lay_ShowErrorAndExit ("Wrong scope.");
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_SYS: // System
|
case Sco_SCOPE_SYS: // System
|
||||||
// Query result has not a third column with the acceptation
|
// Query result has not a column with the acceptation
|
||||||
|
UsrInList->RoleInCurrentCrsDB = Rol_UNKNOWN;
|
||||||
if (Usr_GetNumCrssOfUsr (UsrInList->UsrCod))
|
if (Usr_GetNumCrssOfUsr (UsrInList->UsrCod))
|
||||||
UsrInList->Accepted = (Usr_GetNumCrssOfUsrNotAccepted (UsrInList->UsrCod) == 0);
|
UsrInList->Accepted = (Usr_GetNumCrssOfUsrNotAccepted (UsrInList->UsrCod) == 0);
|
||||||
else
|
else
|
||||||
|
@ -4492,12 +4497,14 @@ static void Usr_GetListUsrsFromQuery (const char *Query,Rol_Role_t Role,Sco_Scop
|
||||||
case Sco_SCOPE_INS: // Institution
|
case Sco_SCOPE_INS: // Institution
|
||||||
case Sco_SCOPE_CTR: // Centre
|
case Sco_SCOPE_CTR: // Centre
|
||||||
case Sco_SCOPE_DEG: // Degree
|
case Sco_SCOPE_DEG: // Degree
|
||||||
// Query result has not a third column with the acceptation
|
// Query result has not a column with the acceptation
|
||||||
|
UsrInList->RoleInCurrentCrsDB = Rol_UNKNOWN;
|
||||||
UsrInList->Accepted = (Usr_GetNumCrssOfUsrNotAccepted (UsrInList->UsrCod) == 0);
|
UsrInList->Accepted = (Usr_GetNumCrssOfUsrNotAccepted (UsrInList->UsrCod) == 0);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_CRS: // Course
|
case Sco_SCOPE_CRS: // Course
|
||||||
// Query result has a third column with the acceptation
|
// Query result has a column with the acceptation
|
||||||
UsrInList->Accepted = (Str_ConvertToUpperLetter (row[9][0]) == 'Y');
|
UsrInList->RoleInCurrentCrsDB = Rol_ConvertUnsignedStrToRole (row[9]);
|
||||||
|
UsrInList->Accepted = (Str_ConvertToUpperLetter (row[10][0]) == 'Y');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -4505,6 +4512,7 @@ static void Usr_GetListUsrsFromQuery (const char *Query,Rol_Role_t Role,Sco_Scop
|
||||||
// ...so they have not accepted...
|
// ...so they have not accepted...
|
||||||
// ...inscription in any course
|
// ...inscription in any course
|
||||||
case Rol_DEG_ADM: // Any admin (degree, centre, institution or system)
|
case Rol_DEG_ADM: // Any admin (degree, centre, institution or system)
|
||||||
|
UsrInList->RoleInCurrentCrsDB = Rol_UNKNOWN;
|
||||||
UsrInList->Accepted = false;
|
UsrInList->Accepted = false;
|
||||||
break;
|
break;
|
||||||
case Rol_STUDENT:
|
case Rol_STUDENT:
|
||||||
|
@ -4519,12 +4527,14 @@ static void Usr_GetListUsrsFromQuery (const char *Query,Rol_Role_t Role,Sco_Scop
|
||||||
case Sco_SCOPE_INS: // Institution
|
case Sco_SCOPE_INS: // Institution
|
||||||
case Sco_SCOPE_CTR: // Centre
|
case Sco_SCOPE_CTR: // Centre
|
||||||
case Sco_SCOPE_DEG: // Degree
|
case Sco_SCOPE_DEG: // Degree
|
||||||
// Query result has not a third column with the acceptation
|
// Query result has not a column with the acceptation
|
||||||
|
UsrInList->RoleInCurrentCrsDB = Rol_UNKNOWN;
|
||||||
UsrInList->Accepted = (Usr_GetNumCrssOfUsrWithARoleNotAccepted (UsrInList->UsrCod,Role) == 0);
|
UsrInList->Accepted = (Usr_GetNumCrssOfUsrWithARoleNotAccepted (UsrInList->UsrCod,Role) == 0);
|
||||||
break;
|
break;
|
||||||
case Sco_SCOPE_CRS: // Course
|
case Sco_SCOPE_CRS: // Course
|
||||||
// Query result has a third column with the acceptation
|
// Query result has a column with the acceptation
|
||||||
UsrInList->Accepted = (Str_ConvertToUpperLetter (row[9][0]) == 'Y');
|
UsrInList->RoleInCurrentCrsDB = Rol_ConvertUnsignedStrToRole (row[9]);
|
||||||
|
UsrInList->Accepted = (Str_ConvertToUpperLetter (row[10][0]) == 'Y');
|
||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
break;
|
break;
|
||||||
|
@ -4561,6 +4571,7 @@ void Usr_CopyBasicUsrDataFromList (struct UsrData *UsrDat,const struct UsrInList
|
||||||
strcpy (UsrDat->Photo ,UsrInList->Photo);
|
strcpy (UsrDat->Photo ,UsrInList->Photo);
|
||||||
UsrDat->PhotoVisibility = UsrInList->PhotoVisibility;
|
UsrDat->PhotoVisibility = UsrInList->PhotoVisibility;
|
||||||
UsrDat->InsCod = UsrInList->InsCod;
|
UsrDat->InsCod = UsrInList->InsCod;
|
||||||
|
UsrDat->RoleInCurrentCrsDB = UsrInList->RoleInCurrentCrsDB;
|
||||||
UsrDat->Accepted = UsrInList->Accepted;
|
UsrDat->Accepted = UsrInList->Accepted;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -184,6 +184,7 @@ struct UsrInList
|
||||||
char Photo[Cry_LENGTH_ENCRYPTED_STR_SHA256_BASE64+1]; // Name of public link to photo
|
char Photo[Cry_LENGTH_ENCRYPTED_STR_SHA256_BASE64+1]; // Name of public link to photo
|
||||||
Pri_Visibility_t PhotoVisibility; // Who can see user's photo
|
Pri_Visibility_t PhotoVisibility; // Who can see user's photo
|
||||||
long InsCod; // Institution
|
long InsCod; // Institution
|
||||||
|
Rol_Role_t RoleInCurrentCrsDB; // Role in current course in database
|
||||||
bool Accepted; // User has accepted joining to one/all courses?
|
bool Accepted; // User has accepted joining to one/all courses?
|
||||||
bool Remove; // A boolean associated with each user that indicates if it must be removed
|
bool Remove; // A boolean associated with each user that indicates if it must be removed
|
||||||
};
|
};
|
||||||
|
|
Loading…
Reference in New Issue