mirror of
https://github.com/acanas/swad-core.git
synced 2024-06-01 22:35:28 +02:00
Version 15.143.6
This commit is contained in:
parent
fd32898ec7
commit
1d2c540258
|
@ -124,13 +124,14 @@
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 15.143.5 (2016-03-02)"
|
#define Log_PLATFORM_VERSION "SWAD 15.143.6 (2016-03-03)"
|
||||||
#define CSS_FILE "swad15.137.2.css"
|
#define CSS_FILE "swad15.137.2.css"
|
||||||
#define JS_FILE "swad15.131.3.js"
|
#define JS_FILE "swad15.131.3.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.143.6: Mar 03, 2016 Direct login forms unavailable when external login service unavailable. (196219 lines)
|
||||||
Version 15.143.5: Mar 02, 2016 Changed text messages related to edition of courses. (196166 lines)
|
Version 15.143.5: Mar 02, 2016 Changed text messages related to edition of courses. (196166 lines)
|
||||||
Version 15.143.4: Mar 02, 2016 Changed text messages related to edition of degrees. (196126 lines)
|
Version 15.143.4: Mar 02, 2016 Changed text messages related to edition of degrees. (196126 lines)
|
||||||
Version 15.143.3: Mar 02, 2016 Changed text messages related to edition of centres. (196126 lines)
|
Version 15.143.3: Mar 02, 2016 Changed text messages related to edition of centres. (196126 lines)
|
||||||
|
|
|
@ -456,8 +456,13 @@ void Crs_ChangeCourseConfig (void)
|
||||||
Gbl.CurrentCrs.Crs.Year = Deg_ConvStrToYear (YearStr);
|
Gbl.CurrentCrs.Crs.Year = Deg_ConvStrToYear (YearStr);
|
||||||
|
|
||||||
/* Get whether this course allows direct log in or not */
|
/* Get whether this course allows direct log in or not */
|
||||||
Par_GetParToText ("AllowDirectLogIn",YN,1);
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
Gbl.CurrentCrs.Crs.AllowDirectLogIn = (Str_ConvertToUpperLetter (YN[0]) == 'Y');
|
{
|
||||||
|
Par_GetParToText ("AllowDirectLogIn",YN,1);
|
||||||
|
Gbl.CurrentCrs.Crs.AllowDirectLogIn = (Str_ConvertToUpperLetter (YN[0]) == 'Y');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
Gbl.CurrentCrs.Crs.AllowDirectLogIn = true;
|
||||||
|
|
||||||
/***** Update table of degree types *****/
|
/***** Update table of degree types *****/
|
||||||
sprintf (Query,"UPDATE courses SET InsCrsCod='%s',Year='%u',AllowDirectLogIn='%c'"
|
sprintf (Query,"UPDATE courses SET InsCrsCod='%s',Year='%u',AllowDirectLogIn='%c'"
|
||||||
|
@ -1969,9 +1974,11 @@ static void Crs_CreateCourse (struct Course *Crs,unsigned Status)
|
||||||
/***** Insert new course into pending requests *****/
|
/***** Insert new course into pending requests *****/
|
||||||
sprintf (Query,"INSERT INTO courses (DegCod,Year,InsCrsCod,"
|
sprintf (Query,"INSERT INTO courses (DegCod,Year,InsCrsCod,"
|
||||||
"AllowDirectLogIn,Status,RequesterUsrCod,ShortName,FullName)"
|
"AllowDirectLogIn,Status,RequesterUsrCod,ShortName,FullName)"
|
||||||
" VALUES ('%ld','%u','%s','N','%u','%ld','%s','%s')",
|
" VALUES ('%ld','%u','%s','%c','%u','%ld','%s','%s')",
|
||||||
Crs->DegCod,Crs->Year,
|
Crs->DegCod,Crs->Year,
|
||||||
Crs->InstitutionalCrsCod,
|
Crs->InstitutionalCrsCod,
|
||||||
|
Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0] ? 'N' :
|
||||||
|
'Y',
|
||||||
Status,
|
Status,
|
||||||
Gbl.Usrs.Me.UsrDat.UsrCod,
|
Gbl.Usrs.Me.UsrDat.UsrCod,
|
||||||
Crs->ShortName,Crs->FullName);
|
Crs->ShortName,Crs->FullName);
|
||||||
|
@ -2044,7 +2051,10 @@ bool Crs_GetDataOfCourseByCod (struct Course *Crs)
|
||||||
Crs->CrsCod = -1L;
|
Crs->CrsCod = -1L;
|
||||||
Crs->DegCod = -1L;
|
Crs->DegCod = -1L;
|
||||||
Crs->Year = 0;
|
Crs->Year = 0;
|
||||||
Crs->AllowDirectLogIn = false;
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
|
Crs->AllowDirectLogIn = false;
|
||||||
|
else
|
||||||
|
Crs->AllowDirectLogIn = true;
|
||||||
Crs->Status = (Crs_Status_t) 0;
|
Crs->Status = (Crs_Status_t) 0;
|
||||||
Crs->RequesterUsrCod = -1L;
|
Crs->RequesterUsrCod = -1L;
|
||||||
Crs->ShortName[0] = '\0';
|
Crs->ShortName[0] = '\0';
|
||||||
|
@ -2074,7 +2084,10 @@ bool Crs_GetDataOfCourseByCod (struct Course *Crs)
|
||||||
Crs->CrsCod = -1L;
|
Crs->CrsCod = -1L;
|
||||||
Crs->DegCod = -1L;
|
Crs->DegCod = -1L;
|
||||||
Crs->Year = 0;
|
Crs->Year = 0;
|
||||||
Crs->AllowDirectLogIn = false;
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
|
Crs->AllowDirectLogIn = false;
|
||||||
|
else
|
||||||
|
Crs->AllowDirectLogIn = true;
|
||||||
Crs->Status = (Crs_Status_t) 0;
|
Crs->Status = (Crs_Status_t) 0;
|
||||||
Crs->RequesterUsrCod = -1L;
|
Crs->RequesterUsrCod = -1L;
|
||||||
Crs->ShortName[0] = '\0';
|
Crs->ShortName[0] = '\0';
|
||||||
|
@ -2113,7 +2126,10 @@ static void Crs_GetDataOfCourseFromRow (struct Course *Crs,MYSQL_ROW row)
|
||||||
Crs->InstitutionalCrsCod[Crs_LENGTH_INSTITUTIONAL_CRS_COD] = '\0';
|
Crs->InstitutionalCrsCod[Crs_LENGTH_INSTITUTIONAL_CRS_COD] = '\0';
|
||||||
|
|
||||||
/***** Get whether this course allows direct log in or not (row[4]) *****/
|
/***** Get whether this course allows direct log in or not (row[4]) *****/
|
||||||
Crs->AllowDirectLogIn = (Str_ConvertToUpperLetter (row[4][0]) == 'Y');
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
|
Crs->AllowDirectLogIn = (Str_ConvertToUpperLetter (row[4][0]) == 'Y');
|
||||||
|
else
|
||||||
|
Crs->AllowDirectLogIn = true;
|
||||||
|
|
||||||
/***** Get course status (row[5]) *****/
|
/***** Get course status (row[5]) *****/
|
||||||
if (sscanf (row[5],"%u",&(Crs->Status)) != 1)
|
if (sscanf (row[5],"%u",&(Crs->Status)) != 1)
|
||||||
|
|
156
swad_degree.c
156
swad_degree.c
|
@ -1190,19 +1190,20 @@ static void Deg_ListDegreeTypesForSeeing (void)
|
||||||
BgColor,Gbl.Degs.DegTypes.Lst[NumDegTyp].DegTypName);
|
BgColor,Gbl.Degs.DegTypes.Lst[NumDegTyp].DegTypName);
|
||||||
|
|
||||||
/* Direct log in is allowed for this degree type? */
|
/* Direct log in is allowed for this degree type? */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE %s\">"
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
"<img src=\"%s/%s16x16.gif\""
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE %s\">"
|
||||||
" alt=\"%s\" title=\"%s\""
|
"<img src=\"%s/%s16x16.gif\""
|
||||||
" class=\"ICON20x20\" />"
|
" alt=\"%s\" title=\"%s\""
|
||||||
"</td>",
|
" class=\"ICON20x20\" />"
|
||||||
BgColor,
|
"</td>",
|
||||||
Gbl.Prefs.IconsURL,
|
BgColor,
|
||||||
Gbl.Degs.DegTypes.Lst[NumDegTyp].AllowDirectLogIn ? "ok_green" :
|
Gbl.Prefs.IconsURL,
|
||||||
"tr",
|
Gbl.Degs.DegTypes.Lst[NumDegTyp].AllowDirectLogIn ? "ok_green" :
|
||||||
Gbl.Degs.DegTypes.Lst[NumDegTyp].AllowDirectLogIn ? Txt_Direct_authentication_allowed :
|
"tr",
|
||||||
Txt_Direct_authentication_not_allowed,
|
Gbl.Degs.DegTypes.Lst[NumDegTyp].AllowDirectLogIn ? Txt_Direct_authentication_allowed :
|
||||||
Gbl.Degs.DegTypes.Lst[NumDegTyp].AllowDirectLogIn ? Txt_Direct_authentication_allowed :
|
Txt_Direct_authentication_not_allowed,
|
||||||
Txt_Direct_authentication_not_allowed);
|
Gbl.Degs.DegTypes.Lst[NumDegTyp].AllowDirectLogIn ? Txt_Direct_authentication_allowed :
|
||||||
|
Txt_Direct_authentication_not_allowed);
|
||||||
|
|
||||||
/* Number of degrees of this type */
|
/* Number of degrees of this type */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE %s\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE %s\">"
|
||||||
|
@ -1269,16 +1270,19 @@ static void Deg_ListDegreeTypesForEdition (void)
|
||||||
fprintf (Gbl.F.Out,"</td>");
|
fprintf (Gbl.F.Out,"</td>");
|
||||||
|
|
||||||
/* Direct log in is allowed for this degree type? */
|
/* Direct log in is allowed for this degree type? */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
Act_FormStart (ActChgDegTypLog);
|
{
|
||||||
Deg_PutParamOtherDegTypCod (Gbl.Degs.DegTypes.Lst[NumDegTyp].DegTypCod);
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">");
|
||||||
fprintf (Gbl.F.Out,"<input type=\"checkbox\" name=\"AllowDirectLogIn\" value=\"Y\"%s"
|
Act_FormStart (ActChgDegTypLog);
|
||||||
" onchange=\"document.getElementById('%s').submit();\" />",
|
Deg_PutParamOtherDegTypCod (Gbl.Degs.DegTypes.Lst[NumDegTyp].DegTypCod);
|
||||||
Gbl.Degs.DegTypes.Lst[NumDegTyp].AllowDirectLogIn ? " checked=\"checked\"" :
|
fprintf (Gbl.F.Out,"<input type=\"checkbox\" name=\"AllowDirectLogIn\" value=\"Y\"%s"
|
||||||
"",
|
" onchange=\"document.getElementById('%s').submit();\" />",
|
||||||
Gbl.Form.Id);
|
Gbl.Degs.DegTypes.Lst[NumDegTyp].AllowDirectLogIn ? " checked=\"checked\"" :
|
||||||
Act_FormEnd ();
|
"",
|
||||||
fprintf (Gbl.F.Out,"</td>");
|
Gbl.Form.Id);
|
||||||
|
Act_FormEnd ();
|
||||||
|
fprintf (Gbl.F.Out,"</td>");
|
||||||
|
}
|
||||||
|
|
||||||
/* Number of degrees of this type */
|
/* Number of degrees of this type */
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT CENTER_MIDDLE\">"
|
||||||
|
@ -1706,13 +1710,14 @@ static void Deg_PutFormToCreateDegType (void)
|
||||||
fprintf (Gbl.F.Out,"<tr>"
|
fprintf (Gbl.F.Out,"<tr>"
|
||||||
"<th class=\"CENTER_MIDDLE\">"
|
"<th class=\"CENTER_MIDDLE\">"
|
||||||
"%s"
|
"%s"
|
||||||
"</th>"
|
"</th>",
|
||||||
"<th class=\"CENTER_MIDDLE\">"
|
Txt_Type_of_BR_degree);
|
||||||
"%s"
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
"</th>"
|
fprintf (Gbl.F.Out,"<th class=\"CENTER_MIDDLE\">"
|
||||||
"</tr>",
|
"%s"
|
||||||
Txt_Type_of_BR_degree,
|
"</th>",
|
||||||
Txt_Direct_authentication);
|
Txt_Direct_authentication);
|
||||||
|
fprintf (Gbl.F.Out,"</tr>");
|
||||||
|
|
||||||
/***** Degree type name *****/
|
/***** Degree type name *****/
|
||||||
fprintf (Gbl.F.Out,"<tr>"
|
fprintf (Gbl.F.Out,"<tr>"
|
||||||
|
@ -1723,13 +1728,14 @@ static void Deg_PutFormToCreateDegType (void)
|
||||||
Deg_MAX_LENGTH_DEGREE_TYPE_NAME,Gbl.Degs.EditingDegTyp.DegTypName);
|
Deg_MAX_LENGTH_DEGREE_TYPE_NAME,Gbl.Degs.EditingDegTyp.DegTypName);
|
||||||
|
|
||||||
/***** Direct log in is allowed for this degree type? *****/
|
/***** Direct log in is allowed for this degree type? *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
"<input type=\"checkbox\" name=\"AllowDirectLogIn\" value=\"Y\"%s />"
|
fprintf (Gbl.F.Out,"<td class=\"CENTER_MIDDLE\">"
|
||||||
"</td>"
|
"<input type=\"checkbox\" name=\"AllowDirectLogIn\" value=\"Y\"%s />"
|
||||||
"<td></td>"
|
"</td>"
|
||||||
"</tr>",
|
"<td></td>"
|
||||||
Gbl.Degs.EditingDegTyp.AllowDirectLogIn ? " checked=\"checked\"" :
|
"</tr>",
|
||||||
"");
|
Gbl.Degs.EditingDegTyp.AllowDirectLogIn ? " checked=\"checked\"" :
|
||||||
|
"");
|
||||||
|
|
||||||
|
|
||||||
/***** Send button and end frame *****/
|
/***** Send button and end frame *****/
|
||||||
|
@ -1880,16 +1886,17 @@ static void Deg_PutHeadDegreeTypesForSeeing (void)
|
||||||
"<th class=\"BM\"></th>"
|
"<th class=\"BM\"></th>"
|
||||||
"<th class=\"CENTER_MIDDLE\">"
|
"<th class=\"CENTER_MIDDLE\">"
|
||||||
"%s"
|
"%s"
|
||||||
"</th>"
|
"</th>",
|
||||||
"<th class=\"CENTER_MIDDLE\">"
|
Txt_Type_of_BR_degree);
|
||||||
"%s"
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
"</th>"
|
fprintf (Gbl.F.Out,"<th class=\"CENTER_MIDDLE\">"
|
||||||
"<th class=\"RIGHT_MIDDLE\">"
|
"%s"
|
||||||
|
"</th>",
|
||||||
|
Txt_Direct_authentication);
|
||||||
|
fprintf (Gbl.F.Out,"<th class=\"RIGHT_MIDDLE\">"
|
||||||
"%s"
|
"%s"
|
||||||
"</th>"
|
"</th>"
|
||||||
"</tr>",
|
"</tr>",
|
||||||
Txt_Type_of_BR_degree,
|
|
||||||
Txt_Direct_authentication,
|
|
||||||
Txt_Degrees_ABBREVIATION);
|
Txt_Degrees_ABBREVIATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -1911,17 +1918,19 @@ static void Deg_PutHeadDegreeTypesForEdition (void)
|
||||||
"</th>"
|
"</th>"
|
||||||
"<th class=\"CENTER_MIDDLE\">"
|
"<th class=\"CENTER_MIDDLE\">"
|
||||||
"%s"
|
"%s"
|
||||||
"</th>"
|
"</th>",
|
||||||
"<th class=\"CENTER_MIDDLE\">"
|
Txt_Code,
|
||||||
"%s"
|
Txt_Type_of_BR_degree);
|
||||||
"</th>"
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
"<th class=\"RIGHT_MIDDLE\">"
|
fprintf (Gbl.F.Out,"<th class=\"CENTER_MIDDLE\">"
|
||||||
|
"%s"
|
||||||
|
"</th>"
|
||||||
|
"</tr>",
|
||||||
|
Txt_Direct_authentication);
|
||||||
|
fprintf (Gbl.F.Out,"<th class=\"RIGHT_MIDDLE\">"
|
||||||
"%s"
|
"%s"
|
||||||
"</th>"
|
"</th>"
|
||||||
"</tr>",
|
"</tr>",
|
||||||
Txt_Code,
|
|
||||||
Txt_Type_of_BR_degree,
|
|
||||||
Txt_Direct_authentication,
|
|
||||||
Txt_Degrees_ABBREVIATION);
|
Txt_Degrees_ABBREVIATION);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2042,6 +2051,9 @@ static void Deg_CreateDegreeType (struct DegreeType *DegTyp)
|
||||||
extern const char *Txt_Created_new_type_of_degree_X;
|
extern const char *Txt_Created_new_type_of_degree_X;
|
||||||
char Query[128+Deg_MAX_LENGTH_DEGREE_TYPE_NAME];
|
char Query[128+Deg_MAX_LENGTH_DEGREE_TYPE_NAME];
|
||||||
|
|
||||||
|
if (!Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service does not exist
|
||||||
|
DegTyp->AllowDirectLogIn = true;
|
||||||
|
|
||||||
/***** Create a new degree type *****/
|
/***** Create a new degree type *****/
|
||||||
sprintf (Query,"INSERT INTO deg_types"
|
sprintf (Query,"INSERT INTO deg_types"
|
||||||
" SET DegTypName='%s',AllowDirectLogIn='%c'",
|
" SET DegTypName='%s',AllowDirectLogIn='%c'",
|
||||||
|
@ -2218,7 +2230,10 @@ static void Deg_GetListDegTypes (void)
|
||||||
Gbl.Degs.DegTypes.Lst[NumRow].DegTypName[Deg_MAX_LENGTH_DEGREE_TYPE_NAME] = '\0';
|
Gbl.Degs.DegTypes.Lst[NumRow].DegTypName[Deg_MAX_LENGTH_DEGREE_TYPE_NAME] = '\0';
|
||||||
|
|
||||||
/* Get whether this degree type allows direct log in or not (row[2]) */
|
/* Get whether this degree type allows direct log in or not (row[2]) */
|
||||||
Gbl.Degs.DegTypes.Lst[NumRow].AllowDirectLogIn = (Str_ConvertToUpperLetter (row[2][0]) == 'Y');
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
|
Gbl.Degs.DegTypes.Lst[NumRow].AllowDirectLogIn = (Str_ConvertToUpperLetter (row[2][0]) == 'Y');
|
||||||
|
else
|
||||||
|
Gbl.Degs.DegTypes.Lst[NumRow].AllowDirectLogIn = true;
|
||||||
|
|
||||||
/* Number of degrees of this type (row[3]) */
|
/* Number of degrees of this type (row[3]) */
|
||||||
if (sscanf (row[3],"%u",&Gbl.Degs.DegTypes.Lst[NumRow].NumDegs) != 1)
|
if (sscanf (row[3],"%u",&Gbl.Degs.DegTypes.Lst[NumRow].NumDegs) != 1)
|
||||||
|
@ -2444,8 +2459,13 @@ void Deg_RecFormNewDegTyp (void)
|
||||||
Par_GetParToText ("DegTypName",DegTyp->DegTypName,Deg_MAX_LENGTH_DEGREE_TYPE_NAME);
|
Par_GetParToText ("DegTypName",DegTyp->DegTypName,Deg_MAX_LENGTH_DEGREE_TYPE_NAME);
|
||||||
|
|
||||||
/* Get whether this degree type allows direct log in or not */
|
/* Get whether this degree type allows direct log in or not */
|
||||||
Par_GetParToText ("AllowDirectLogIn",YN,1);
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
DegTyp->AllowDirectLogIn = (Str_ConvertToUpperLetter (YN[0]) == 'Y');
|
{
|
||||||
|
Par_GetParToText ("AllowDirectLogIn",YN,1);
|
||||||
|
DegTyp->AllowDirectLogIn = (Str_ConvertToUpperLetter (YN[0]) == 'Y');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
DegTyp->AllowDirectLogIn = true;
|
||||||
|
|
||||||
if (DegTyp->DegTypName[0]) // If there's a degree type name
|
if (DegTyp->DegTypName[0]) // If there's a degree type name
|
||||||
{
|
{
|
||||||
|
@ -2707,7 +2727,10 @@ bool Deg_GetDataOfDegreeTypeByCod (struct DegreeType *DegTyp)
|
||||||
{
|
{
|
||||||
DegTyp->DegTypCod = -1L;
|
DegTyp->DegTypCod = -1L;
|
||||||
DegTyp->DegTypName[0] = '\0';
|
DegTyp->DegTypName[0] = '\0';
|
||||||
DegTyp->AllowDirectLogIn = false;
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
|
DegTyp->AllowDirectLogIn = false;
|
||||||
|
else
|
||||||
|
DegTyp->AllowDirectLogIn = true;
|
||||||
DegTyp->NumDegs = 0;
|
DegTyp->NumDegs = 0;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -2727,7 +2750,10 @@ bool Deg_GetDataOfDegreeTypeByCod (struct DegreeType *DegTyp)
|
||||||
strcpy (DegTyp->DegTypName,row[0]);
|
strcpy (DegTyp->DegTypName,row[0]);
|
||||||
|
|
||||||
/* Get whether this degree type allows direct log in or not (row[1]) */
|
/* Get whether this degree type allows direct log in or not (row[1]) */
|
||||||
DegTyp->AllowDirectLogIn = (Str_ConvertToUpperLetter (row[1][0]) == 'Y');
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
|
DegTyp->AllowDirectLogIn = (Str_ConvertToUpperLetter (row[1][0]) == 'Y');
|
||||||
|
else
|
||||||
|
DegTyp->AllowDirectLogIn = true;
|
||||||
|
|
||||||
/* Count number of degrees of this type */
|
/* Count number of degrees of this type */
|
||||||
DegTyp->NumDegs = Deg_CountNumDegsOfType (DegTyp->DegTypCod);
|
DegTyp->NumDegs = Deg_CountNumDegsOfType (DegTyp->DegTypCod);
|
||||||
|
@ -2739,7 +2765,10 @@ bool Deg_GetDataOfDegreeTypeByCod (struct DegreeType *DegTyp)
|
||||||
{
|
{
|
||||||
DegTyp->DegTypCod = -1L;
|
DegTyp->DegTypCod = -1L;
|
||||||
DegTyp->DegTypName[0] = '\0';
|
DegTyp->DegTypName[0] = '\0';
|
||||||
DegTyp->AllowDirectLogIn = false;
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
|
DegTyp->AllowDirectLogIn = false;
|
||||||
|
else
|
||||||
|
DegTyp->AllowDirectLogIn = true;
|
||||||
DegTyp->NumDegs = 0;
|
DegTyp->NumDegs = 0;
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
|
@ -3331,9 +3360,14 @@ void Deg_ChangeDegTypeLogIn (void)
|
||||||
Lay_ShowErrorAndExit ("Code of type of degree not found.");
|
Lay_ShowErrorAndExit ("Code of type of degree not found.");
|
||||||
|
|
||||||
/* Get whether this degree type allows direct log in or not */
|
/* Get whether this degree type allows direct log in or not */
|
||||||
// Do this after getting data of degree type in order to overwrite AllowDirectLogIn with the user preference
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
Par_GetParToText ("AllowDirectLogIn",YN,1);
|
{
|
||||||
DegTyp->AllowDirectLogIn = (Str_ConvertToUpperLetter (YN[0]) == 'Y');
|
// Do this after getting data of degree type in order to overwrite AllowDirectLogIn with the user preference
|
||||||
|
Par_GetParToText ("AllowDirectLogIn",YN,1);
|
||||||
|
DegTyp->AllowDirectLogIn = (Str_ConvertToUpperLetter (YN[0]) == 'Y');
|
||||||
|
}
|
||||||
|
else
|
||||||
|
DegTyp->AllowDirectLogIn = true;
|
||||||
|
|
||||||
/***** Update table of degree types *****/
|
/***** Update table of degree types *****/
|
||||||
sprintf (Query,"UPDATE deg_types SET AllowDirectLogIn='%c' WHERE DegTypCod='%ld'",
|
sprintf (Query,"UPDATE deg_types SET AllowDirectLogIn='%c' WHERE DegTypCod='%ld'",
|
||||||
|
|
|
@ -225,7 +225,10 @@ void Gbl_InitializeGlobals (void)
|
||||||
|
|
||||||
Gbl.CurrentDegTyp.DegTyp.DegTypCod = -1L;
|
Gbl.CurrentDegTyp.DegTyp.DegTypCod = -1L;
|
||||||
Gbl.CurrentDegTyp.DegTyp.DegTypName[0] = '\0';
|
Gbl.CurrentDegTyp.DegTyp.DegTypName[0] = '\0';
|
||||||
Gbl.CurrentDegTyp.DegTyp.AllowDirectLogIn = false;
|
if (Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0]) // If external login service exists
|
||||||
|
Gbl.CurrentDegTyp.DegTyp.AllowDirectLogIn = false;
|
||||||
|
else
|
||||||
|
Gbl.CurrentDegTyp.DegTyp.AllowDirectLogIn = true;
|
||||||
|
|
||||||
Gbl.CurrentDeg.Deg.DegCod = -1L;
|
Gbl.CurrentDeg.Deg.DegCod = -1L;
|
||||||
Gbl.CurrentDeg.Deg.ShortName[0] = Gbl.CurrentDeg.Deg.FullName[0] = '\0';
|
Gbl.CurrentDeg.Deg.ShortName[0] = Gbl.CurrentDeg.Deg.FullName[0] = '\0';
|
||||||
|
|
10
swad_user.c
10
swad_user.c
|
@ -2582,10 +2582,10 @@ static void Usr_SetUsrRoleAndPrefs (void)
|
||||||
{
|
{
|
||||||
if (Gbl.Usrs.Me.IBelongToCurrentCrs)
|
if (Gbl.Usrs.Me.IBelongToCurrentCrs)
|
||||||
{
|
{
|
||||||
if (Gbl.Imported.ExternalRole == Rol_UNKNOWN && // I logged in directly, not from external service...
|
if (Gbl.Imported.ExternalRole == Rol_UNKNOWN && // I logged in directly, not from external service...
|
||||||
Gbl.Usrs.Me.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT && // ...and I am a student in the current course...
|
Gbl.Usrs.Me.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT && // ...and I am a student in the current course...
|
||||||
!Gbl.CurrentDegTyp.DegTyp.AllowDirectLogIn && // ...but the current degree type...
|
!Gbl.CurrentDegTyp.DegTyp.AllowDirectLogIn && // ...but the current degree type...
|
||||||
!Gbl.CurrentCrs.Crs.AllowDirectLogIn) // ...and the current course do not allow to log in directly
|
!Gbl.CurrentCrs.Crs.AllowDirectLogIn) // ...and the current course do not allow to log in directly
|
||||||
Gbl.Usrs.Me.AvailableRoles = (1 << Rol_VISITOR); // In this case, my role will be visitor, and an alert will be shown
|
Gbl.Usrs.Me.AvailableRoles = (1 << Rol_VISITOR); // In this case, my role will be visitor, and an alert will be shown
|
||||||
else
|
else
|
||||||
Gbl.Usrs.Me.AvailableRoles = (1 << Gbl.Usrs.Me.UsrDat.RoleInCurrentCrsDB);
|
Gbl.Usrs.Me.AvailableRoles = (1 << Gbl.Usrs.Me.UsrDat.RoleInCurrentCrsDB);
|
||||||
|
@ -2635,7 +2635,7 @@ void Usr_WarningWhenDegreeTypeDoesntAllowDirectLogin (void)
|
||||||
if (Cfg_EXTERNAL_LOGIN_URL[0] && Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0])
|
if (Cfg_EXTERNAL_LOGIN_URL[0] && Cfg_EXTERNAL_LOGIN_SERVICE_SHORT_NAME[0])
|
||||||
/* If I belong to current course but my role in current course is visitor, show alert */
|
/* If I belong to current course but my role in current course is visitor, show alert */
|
||||||
if (Gbl.Usrs.Me.IBelongToCurrentCrs &&
|
if (Gbl.Usrs.Me.IBelongToCurrentCrs &&
|
||||||
Gbl.Imported.ExternalRole == Rol_UNKNOWN && // I logged in directly, not from external service...
|
Gbl.Imported.ExternalRole == Rol_UNKNOWN && // I logged in directly, not from external service...
|
||||||
Gbl.Usrs.Me.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT && // ...and I am a student in the current course...
|
Gbl.Usrs.Me.UsrDat.RoleInCurrentCrsDB == Rol_STUDENT && // ...and I am a student in the current course...
|
||||||
!Gbl.CurrentDegTyp.DegTyp.AllowDirectLogIn && // ...but the current degree type...
|
!Gbl.CurrentDegTyp.DegTyp.AllowDirectLogIn && // ...but the current degree type...
|
||||||
!Gbl.CurrentCrs.Crs.AllowDirectLogIn && // ...and the current course do not allow to log in directly
|
!Gbl.CurrentCrs.Crs.AllowDirectLogIn && // ...and the current course do not allow to log in directly
|
||||||
|
|
Loading…
Reference in New Issue
Block a user