mirror of https://github.com/acanas/swad-core.git
Version 16.103.5
This commit is contained in:
parent
e3c68ff386
commit
38cc2d9578
|
@ -819,22 +819,28 @@ void Acc_AfterCreationNewAccount (void)
|
|||
void Acc_GetUsrCodAndRemUsrGbl (void)
|
||||
{
|
||||
extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
|
||||
bool Error = false;
|
||||
|
||||
if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ())
|
||||
{
|
||||
if (Acc_CheckIfICanEliminateAccount (Gbl.Usrs.Other.UsrDat.UsrCod))
|
||||
Acc_ReqRemAccountOrRemAccount (Acc_REMOVE_USR);
|
||||
else
|
||||
Error = true;
|
||||
}
|
||||
else
|
||||
Error = true;
|
||||
|
||||
if (Error)
|
||||
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
/**************************** Removing of a user *****************************/
|
||||
/*************************** Remove a user account ***************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Acc_ReqRemAccountOrRemAccount (Acc_ReqOrRemUsr_t RequestOrRemove)
|
||||
{
|
||||
extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
|
||||
|
||||
if (Acc_CheckIfICanEliminateAccount (Gbl.Usrs.Other.UsrDat.UsrCod))
|
||||
switch (RequestOrRemove)
|
||||
{
|
||||
case Acc_REQUEST_REMOVE_USR: // Ask if eliminate completely the user from the platform
|
||||
|
@ -850,8 +856,6 @@ void Acc_ReqRemAccountOrRemAccount (Acc_ReqOrRemUsr_t RequestOrRemove)
|
|||
}
|
||||
break;
|
||||
}
|
||||
else
|
||||
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -2440,9 +2440,9 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
|||
/* ActCreStd */{1445,-1,TabUnk,ActLstStd ,0x1F0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,Enr_CreateNewUsr1 ,Enr_CreateNewUsr2 ,NULL},
|
||||
/* ActCreTch */{1446,-1,TabUnk,ActLstTch ,0x1F0,0x1E0,0x1E0,Act_CONT_NORM,Act_THIS_WINDOW,Enr_CreateNewUsr1 ,Enr_CreateNewUsr2 ,NULL},
|
||||
|
||||
/* ActUpdOth */{1422,-1,TabUnk,ActLstOth ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ModifyUsr ,NULL},
|
||||
/* ActUpdStd */{1423,-1,TabUnk,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ModifyUsr ,NULL},
|
||||
/* ActUpdTch */{1424,-1,TabUnk,ActLstTch ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ModifyUsr ,NULL},
|
||||
/* ActUpdOth */{1422,-1,TabUnk,ActLstOth ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,Enr_ModifyUsr1 ,Enr_ModifyUsr2 ,NULL},
|
||||
/* ActUpdStd */{1423,-1,TabUnk,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,Enr_ModifyUsr1 ,Enr_ModifyUsr2 ,NULL},
|
||||
/* ActUpdTch */{1424,-1,TabUnk,ActLstTch ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,Enr_ModifyUsr1 ,Enr_ModifyUsr2 ,NULL},
|
||||
|
||||
/* ActReqAccEnrStd */{1456,-1,TabUnk,ActLstStd ,0x1E8,0x000,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReqAcceptRegisterInCrs ,NULL},
|
||||
/* ActReqAccEnrTch */{1457,-1,TabUnk,ActLstTch ,0x1F0,0x000,0x000,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReqAcceptRegisterInCrs ,NULL},
|
||||
|
|
|
@ -190,13 +190,14 @@
|
|||
/****************************** Public constants *****************************/
|
||||
/*****************************************************************************/
|
||||
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.103.4 (2016-12-17)"
|
||||
#define Log_PLATFORM_VERSION "SWAD 16.103.5 (2016-12-17)"
|
||||
#define CSS_FILE "swad16.103.1.css"
|
||||
#define JS_FILE "swad16.101.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.103.5: Dec 17, 2016 Code refactoring in user enrollment. (211207 lines)
|
||||
Version 16.103.4: Dec 17, 2016 Code refactoring in user enrollment. (211170 lines)
|
||||
Version 16.103.3: Dec 17, 2016 Code refactoring in user enrollment. (211149 lines)
|
||||
Version 16.103.2: Dec 17, 2016 Code refactoring in user enrollment. (211133 lines)
|
||||
|
|
|
@ -3539,6 +3539,7 @@ void Enr_CreateNewUsr2 (void)
|
|||
if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected
|
||||
{
|
||||
/***** Show success message *****/
|
||||
if (Gbl.Message[0])
|
||||
Lay_ShowAlert (Lay_SUCCESS,Gbl.Message);
|
||||
|
||||
/***** Change user's groups *****/
|
||||
|
@ -3555,19 +3556,20 @@ void Enr_CreateNewUsr2 (void)
|
|||
/**** Modify other user's data and register her/him in course and groups *****/
|
||||
/*****************************************************************************/
|
||||
|
||||
void Enr_ModifyUsr (void)
|
||||
void Enr_ModifyUsr1 (void)
|
||||
{
|
||||
extern const char *Txt_The_role_of_THE_USER_X_in_the_course_Y_has_changed_from_A_to_B;
|
||||
extern const char *Txt_ROLES_SINGUL_abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||
extern const char *Txt_THE_USER_X_has_been_enrolled_in_the_course_Y;
|
||||
extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
|
||||
char UnsignedStr[10+1];
|
||||
unsigned UnsignedNum;
|
||||
bool ItsMe;
|
||||
Enr_RegRemOneUsrAction_t RegRemAction;
|
||||
Rol_Role_t OldRole;
|
||||
Rol_Role_t NewRole;
|
||||
bool Error = false;
|
||||
|
||||
/***** Initialize error and message *****/
|
||||
Gbl.Error = false;
|
||||
Gbl.Message[0] = '\0';
|
||||
|
||||
/***** Get user from form *****/
|
||||
if (Usr_GetParamOtherUsrCodEncryptedAndGetUsrData ())
|
||||
|
@ -3578,7 +3580,7 @@ void Enr_ModifyUsr (void)
|
|||
Par_GetParToText ("RegRemAction",UnsignedStr,1);
|
||||
if (sscanf (UnsignedStr,"%u",&UnsignedNum) == 1)
|
||||
if (UnsignedNum < Enr_NUM_ACTIONS_REG_REM_ONE_USR)
|
||||
switch ((RegRemAction = (Enr_RegRemOneUsrAction_t) UnsignedNum))
|
||||
switch ((Gbl.Usrs.RegRemAction = (Enr_RegRemOneUsrAction_t) UnsignedNum))
|
||||
{
|
||||
case Enr_REGISTER_MODIFY_ONE_USR_IN_CRS:
|
||||
if (ItsMe || Gbl.Usrs.Me.LoggedRole >= Rol_TEACHER)
|
||||
|
@ -3611,7 +3613,6 @@ void Enr_ModifyUsr (void)
|
|||
Gbl.Usrs.Other.UsrDat.FullName,Gbl.CurrentCrs.Crs.FullName,
|
||||
Txt_ROLES_SINGUL_abc[OldRole][Gbl.Usrs.Other.UsrDat.Sex],
|
||||
Txt_ROLES_SINGUL_abc[NewRole][Gbl.Usrs.Other.UsrDat.Sex]);
|
||||
Lay_ShowAlert (Lay_SUCCESS,Gbl.Message);
|
||||
}
|
||||
}
|
||||
else
|
||||
|
@ -3623,13 +3624,84 @@ void Enr_ModifyUsr (void)
|
|||
/* Show success message */
|
||||
sprintf (Gbl.Message,Txt_THE_USER_X_has_been_enrolled_in_the_course_Y,
|
||||
Gbl.Usrs.Other.UsrDat.FullName,Gbl.CurrentCrs.Crs.FullName);
|
||||
Lay_ShowAlert (Lay_SUCCESS,Gbl.Message);
|
||||
}
|
||||
|
||||
/***** Change current action *****/
|
||||
Gbl.Action.Act = (NewRole == Rol_STUDENT) ? ActUpdStd :
|
||||
((NewRole == Rol_TEACHER) ? ActUpdTch :
|
||||
ActUpdOth);
|
||||
Tab_SetCurrentTab ();
|
||||
}
|
||||
}
|
||||
else
|
||||
Gbl.Error = true;
|
||||
break;
|
||||
case Enr_REGISTER_ONE_DEGREE_ADMIN:
|
||||
if (Gbl.Usrs.Me.LoggedRole < Rol_CTR_ADM)
|
||||
Gbl.Error = true;
|
||||
break;
|
||||
case Enr_REGISTER_ONE_CENTRE_ADMIN:
|
||||
if (Gbl.Usrs.Me.LoggedRole < Rol_INS_ADM)
|
||||
Gbl.Error = true;
|
||||
break;
|
||||
case Enr_REGISTER_ONE_INSTITUTION_ADMIN:
|
||||
if (Gbl.Usrs.Me.LoggedRole != Rol_SYS_ADM)
|
||||
Gbl.Error = true;
|
||||
break;
|
||||
case Enr_REPORT_USR_AS_POSSIBLE_DUPLICATE:
|
||||
if (ItsMe || Gbl.Usrs.Me.LoggedRole < Rol_TEACHER)
|
||||
Gbl.Error = true;
|
||||
break;
|
||||
case Enr_REMOVE_ONE_USR_FROM_CRS:
|
||||
if (!ItsMe && Gbl.Usrs.Me.LoggedRole < Rol_TEACHER)
|
||||
Gbl.Error = true;
|
||||
break;
|
||||
case Enr_REMOVE_ONE_DEGREE_ADMIN:
|
||||
if (!ItsMe && Gbl.Usrs.Me.LoggedRole < Rol_CTR_ADM)
|
||||
Gbl.Error = true;
|
||||
break;
|
||||
case Enr_REMOVE_ONE_CENTRE_ADMIN:
|
||||
if (!ItsMe && Gbl.Usrs.Me.LoggedRole < Rol_INS_ADM)
|
||||
Gbl.Error = true;
|
||||
break;
|
||||
case Enr_REMOVE_ONE_INSTITUTION_ADMIN:
|
||||
if (!ItsMe && Gbl.Usrs.Me.LoggedRole != Rol_SYS_ADM)
|
||||
Gbl.Error = true;
|
||||
break;
|
||||
case Enr_ELIMINATE_ONE_USR_FROM_PLATFORM:
|
||||
if (!Acc_CheckIfICanEliminateAccount (Gbl.Usrs.Other.UsrDat.UsrCod))
|
||||
Gbl.Error = true;
|
||||
break;
|
||||
}
|
||||
else
|
||||
Gbl.Error = true;
|
||||
else
|
||||
Gbl.Error = true;
|
||||
}
|
||||
else
|
||||
Gbl.Error = true;
|
||||
}
|
||||
|
||||
void Enr_ModifyUsr2 (void)
|
||||
{
|
||||
extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
|
||||
|
||||
if (Gbl.Error)
|
||||
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
|
||||
else // No error
|
||||
switch (Gbl.Usrs.RegRemAction)
|
||||
{
|
||||
case Enr_REGISTER_MODIFY_ONE_USR_IN_CRS:
|
||||
if (Gbl.CurrentCrs.Crs.CrsCod > 0)
|
||||
{
|
||||
/***** Show success message *****/
|
||||
if (Gbl.Message[0])
|
||||
Lay_ShowAlert (Lay_SUCCESS,Gbl.Message);
|
||||
|
||||
/***** Change user's groups *****/
|
||||
if (Gbl.CurrentCrs.Grps.NumGrps) // This course has groups?
|
||||
{
|
||||
if (ItsMe)
|
||||
if (Gbl.Usrs.Other.UsrDat.UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod) // It's me
|
||||
Grp_ChangeMyGrps ();
|
||||
else
|
||||
Grp_ChangeOtherUsrGrps ();
|
||||
|
@ -3638,78 +3710,38 @@ void Enr_ModifyUsr (void)
|
|||
|
||||
/***** Show user's record *****/
|
||||
Rec_ShowSharedRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat);
|
||||
}
|
||||
else
|
||||
Error = true;
|
||||
break;
|
||||
case Enr_REGISTER_ONE_DEGREE_ADMIN:
|
||||
if (Gbl.Usrs.Me.LoggedRole >= Rol_CTR_ADM)
|
||||
Enr_ReqAddAdm (Sco_SCOPE_DEG,Gbl.CurrentDeg.Deg.DegCod,
|
||||
Gbl.CurrentDeg.Deg.FullName);
|
||||
else
|
||||
Error = true;
|
||||
break;
|
||||
case Enr_REGISTER_ONE_CENTRE_ADMIN:
|
||||
if (Gbl.Usrs.Me.LoggedRole >= Rol_INS_ADM)
|
||||
Enr_ReqAddAdm (Sco_SCOPE_CTR,Gbl.CurrentCtr.Ctr.CtrCod,
|
||||
Gbl.CurrentCtr.Ctr.FullName);
|
||||
else
|
||||
Error = true;
|
||||
break;
|
||||
case Enr_REGISTER_ONE_INSTITUTION_ADMIN:
|
||||
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
|
||||
Enr_ReqAddAdm (Sco_SCOPE_INS,Gbl.CurrentIns.Ins.InsCod,
|
||||
Gbl.CurrentIns.Ins.FullName);
|
||||
else
|
||||
Error = true;
|
||||
break;
|
||||
case Enr_REPORT_USR_AS_POSSIBLE_DUPLICATE:
|
||||
if (!ItsMe && Gbl.Usrs.Me.LoggedRole >= Rol_TEACHER)
|
||||
Dup_ReportUsrAsPossibleDuplicate ();
|
||||
else
|
||||
Error = true;
|
||||
break;
|
||||
case Enr_REMOVE_ONE_USR_FROM_CRS:
|
||||
if (ItsMe || Gbl.Usrs.Me.LoggedRole >= Rol_TEACHER)
|
||||
Enr_ReqRemUsrFromCrs ();
|
||||
else
|
||||
Error = true;
|
||||
break;
|
||||
case Enr_REMOVE_ONE_DEGREE_ADMIN:
|
||||
if (ItsMe || Gbl.Usrs.Me.LoggedRole >= Rol_CTR_ADM)
|
||||
Enr_ReqRemAdmOfDeg ();
|
||||
else
|
||||
Error = true;
|
||||
break;
|
||||
case Enr_REMOVE_ONE_CENTRE_ADMIN:
|
||||
if (ItsMe || Gbl.Usrs.Me.LoggedRole >= Rol_INS_ADM)
|
||||
Enr_ReqRemAdmOfCtr ();
|
||||
else
|
||||
Error = true;
|
||||
break;
|
||||
case Enr_REMOVE_ONE_INSTITUTION_ADMIN:
|
||||
if (ItsMe || Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
|
||||
Enr_ReqRemAdmOfIns ();
|
||||
else
|
||||
Error = true;
|
||||
break;
|
||||
case Enr_ELIMINATE_ONE_USR_FROM_PLATFORM:
|
||||
Acc_ReqRemAccountOrRemAccount (Acc_REQUEST_REMOVE_USR);
|
||||
break;
|
||||
default:
|
||||
Error = true;
|
||||
break;
|
||||
}
|
||||
else
|
||||
Error = true;
|
||||
else
|
||||
Error = true;
|
||||
}
|
||||
else
|
||||
Error = true;
|
||||
|
||||
if (Error)
|
||||
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
|
||||
}
|
||||
|
||||
/*****************************************************************************/
|
||||
|
|
|
@ -133,7 +133,8 @@ void Enr_RemAdmDeg (void);
|
|||
void Enr_AcceptRegisterMeInCrs (void);
|
||||
void Enr_CreateNewUsr1 (void);
|
||||
void Enr_CreateNewUsr2 (void);
|
||||
void Enr_ModifyUsr (void);
|
||||
void Enr_ModifyUsr1 (void);
|
||||
void Enr_ModifyUsr2 (void);
|
||||
void Enr_AcceptUsrInCrs (long UsrCod);
|
||||
|
||||
#endif
|
||||
|
|
|
@ -44,6 +44,7 @@
|
|||
#include "swad_cryptography.h"
|
||||
#include "swad_department.h"
|
||||
#include "swad_degree_type.h"
|
||||
#include "swad_enrollment.h"
|
||||
#include "swad_exam.h"
|
||||
#include "swad_file.h"
|
||||
#include "swad_file_browser.h"
|
||||
|
@ -398,6 +399,7 @@ struct Globals
|
|||
} Connected;
|
||||
char FileNamePhoto[NAME_MAX+1]; // File name (with no path and no .jpg) of the temporary file with the selected face
|
||||
bool Error; // To signal that an error has happened
|
||||
Enr_RegRemOneUsrAction_t RegRemAction; // Enrollment action
|
||||
} Usrs;
|
||||
struct
|
||||
{
|
||||
|
|
Loading…
Reference in New Issue