mirror of https://github.com/acanas/swad-core.git
Version 14.128.1
This commit is contained in:
parent
9da7c01477
commit
ce6a5e2d9b
|
@ -1230,12 +1230,13 @@ CREATE TABLE IF NOT EXISTS usr_webs (
|
||||||
'delicious','deviantart','diaspora',
|
'delicious','deviantart','diaspora',
|
||||||
'edmodo',
|
'edmodo',
|
||||||
'facebook','flickr','foursquare',
|
'facebook','flickr','foursquare',
|
||||||
'github','googleplus','googlescholar',
|
'github','gnusocial','googleplus','googlescholar',
|
||||||
'instagram',
|
'identica','instagram',
|
||||||
'linkedin',
|
'linkedin',
|
||||||
|
'orcid',
|
||||||
'paperli','pinterest',
|
'paperli','pinterest',
|
||||||
'quitter',
|
'quitter',
|
||||||
'researchgate',
|
'researchgate','researcherid',
|
||||||
'scoopit','slideshare','storify',
|
'scoopit','slideshare','storify',
|
||||||
'tumblr','twitter',
|
'tumblr','twitter',
|
||||||
'wikipedia',
|
'wikipedia',
|
||||||
|
|
|
@ -240,7 +240,8 @@ static void Acc_PutLinkToRemoveMyAccount (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Remove_account;
|
extern const char *Txt_Remove_account;
|
||||||
|
|
||||||
Act_PutContextualLink (ActUpdOthUsrDat,Acc_PutLinkToRemoveMyAccountParams,
|
// TODO: Put this option in Profile > Account
|
||||||
|
Act_PutContextualLink (ActUpdOthGst,Acc_PutLinkToRemoveMyAccountParams,
|
||||||
"delon",Txt_Remove_account);
|
"delon",Txt_Remove_account);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -916,14 +916,23 @@ Users:
|
||||||
760. ActReqRejSignUp Ask if reject the enrollment of a user in a course
|
760. ActReqRejSignUp Ask if reject the enrollment of a user in a course
|
||||||
761. ActRejSignUp Reject the enrollment of a user in a course
|
761. ActRejSignUp Reject the enrollment of a user in a course
|
||||||
|
|
||||||
762. ActReqMdfOneUsr Request the enrollment/removing of a user
|
762b. ActReqMdfOneGst Request a user's ID for enrollment/removing
|
||||||
763. ActReqMdfUsr Register a user in this course
|
762c. ActReqMdfOneStd Request a user's ID for enrollment/removing
|
||||||
|
762d. ActReqMdfOneTch Request a user's ID for enrollment/removing
|
||||||
|
762e. ActReqMdfOneAdm Request a user's ID for enrollment/removing
|
||||||
|
763b. ActReqMdfGst Request enrollment/removing of a user
|
||||||
|
763c. ActReqMdfStd Request enrollment/removing of a user
|
||||||
|
763d. ActReqMdfTch Request enrollment/removing of a user
|
||||||
|
763e. ActReqMdfAdm Request enrollment/removing of a user
|
||||||
764. ActReqUsrPho Show form to send the photo of another user
|
764. ActReqUsrPho Show form to send the photo of another user
|
||||||
765. ActDetUsrPho Receive other user's photo and detect faces on it
|
765. ActDetUsrPho Receive other user's photo and detect faces on it
|
||||||
766. ActUpdUsrPho Update other user's photo
|
766. ActUpdUsrPho Update other user's photo
|
||||||
767. ActRemUsrPho Remove the photo of otro user
|
767. ActRemUsrPho Remove the photo of otro user
|
||||||
768. ActCreOthUsrDat Insertar a new user in this course
|
768. ActCreOthUsrDat Insertar a new user in this course
|
||||||
769. ActUpdOthUsrDat Actualizar the card of otro user
|
769b. ActUpdOthGst Update another user's data and groups
|
||||||
|
769c. ActUpdOthStd Update another user's data and groups
|
||||||
|
769d. ActUpdOthTch Update another user's data and groups
|
||||||
|
769e. ActUpdOthAdm Update another user's data and groups
|
||||||
770. ActReqAccEnrCrs Confirm acceptation / refusion of enrollment in current course
|
770. ActReqAccEnrCrs Confirm acceptation / refusion of enrollment in current course
|
||||||
771. ActAccEnrCrs Accept enrollment in current course
|
771. ActAccEnrCrs Accept enrollment in current course
|
||||||
772. ActRemMeCrs Refuse enrollment in current course
|
772. ActRemMeCrs Refuse enrollment in current course
|
||||||
|
@ -2294,16 +2303,26 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
/* ActReqRejSignUp */{1058,-1,TabUsr,ActSeeSignUpReq ,0x1F0,0x1F0,0x1F0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskIfRejectSignUp ,NULL},
|
/* ActReqRejSignUp */{1058,-1,TabUsr,ActSeeSignUpReq ,0x1F0,0x1F0,0x1F0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskIfRejectSignUp ,NULL},
|
||||||
/* ActRejSignUp */{1059,-1,TabUsr,ActSeeSignUpReq ,0x1F0,0x1F0,0x1F0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RejectSignUp ,NULL},
|
/* ActRejSignUp */{1059,-1,TabUsr,ActSeeSignUpReq ,0x1F0,0x1F0,0x1F0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_RejectSignUp ,NULL},
|
||||||
|
|
||||||
/* ActReqMdfOneUsr */{ 177,-1,TabUsr,ActReqMdfSevUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRegRemUsr ,NULL},
|
/* ActReqMdfOneGst */{1414,-1,TabUsr,ActLstInv ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRegRemGst ,NULL},
|
||||||
/* ActReqMdfUsr */{ 161,-1,TabUsr,ActReqMdfSevUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskIfRegRemAnotherUsr ,NULL},
|
/* ActReqMdfOneStd */{1415,-1,TabUsr,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRegRemStd ,NULL},
|
||||||
|
/* ActReqMdfOneTch */{1416,-1,TabUsr,ActLstTch ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRegRemTch ,NULL},
|
||||||
|
/* ActReqMdfOneAdm */{1417,-1,TabUsr,ActLstAdm ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqRegRemAdm ,NULL},
|
||||||
|
|
||||||
|
/* ActReqMdfUsr */{1418,-1,TabUsr,ActLstInv ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskIfRegRemAnotherGst ,NULL},
|
||||||
|
/* ActReqMdfUsr */{1419,-1,TabUsr,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskIfRegRemAnotherStd ,NULL},
|
||||||
|
/* ActReqMdfUsr */{1420,-1,TabUsr,ActLstTch ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskIfRegRemAnotherTch ,NULL},
|
||||||
|
/* ActReqMdfUsr */{1421,-1,TabUsr,ActLstAdm ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AskIfRegRemAnotherAdm ,NULL},
|
||||||
|
|
||||||
/* ActReqUsrPho */{ 375,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_SendPhotoUsr ,NULL},
|
/* ActReqUsrPho */{ 375,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_SendPhotoUsr ,NULL},
|
||||||
/* ActDetUsrPho */{ 695,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Pho_RecUsrPhotoDetFaces ,NULL},
|
/* ActDetUsrPho */{ 695,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Pho_RecUsrPhotoDetFaces ,NULL},
|
||||||
/* ActUpdUsrPho */{ 374,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pho_UpdateUsrPhoto1 ,Pho_UpdateUsrPhoto2 ,NULL},
|
/* ActUpdUsrPho */{ 374,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pho_UpdateUsrPhoto1 ,Pho_UpdateUsrPhoto2 ,NULL},
|
||||||
/* ActRemUsrPho */{ 429,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_RemoveUsrPhoto ,NULL},
|
/* ActRemUsrPho */{ 429,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_RemoveUsrPhoto ,NULL},
|
||||||
|
|
||||||
/* ActCreOthUsrDat */{ 440,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_CreatAndShowNewUsrRecordAndRegInCrs,NULL},
|
/* ActCreOthUsrDat */{ 440,-1,TabUsr,ActReqMdfSevUsr ,0x1F0,0x1E0,0x1E0,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_CreateNewUsr ,NULL},
|
||||||
/* ActUpdOthUsrDat */{ 439,-1,TabUsr,ActReqMdfSevUsr ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ModifAndShowUsrCardAndRegInCrsAndGrps,NULL},
|
/* ActUpdOthGst */{1422,-1,TabUsr,ActLstInv ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ModifyUsr ,NULL},
|
||||||
|
/* ActUpdOthStd */{1423,-1,TabUsr,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ModifyUsr ,NULL},
|
||||||
|
/* ActUpdOthTch */{1424,-1,TabUsr,ActLstTch ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ModifyUsr ,NULL},
|
||||||
|
/* ActUpdOthAdm */{1425,-1,TabUsr,ActLstAdm ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ModifyUsr ,NULL},
|
||||||
|
|
||||||
/* ActReqAccEnrCrs */{ 592,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAcceptRegisterInCrs ,NULL},
|
/* ActReqAccEnrCrs */{ 592,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_ReqAcceptRegisterInCrs ,NULL},
|
||||||
/* ActAccEnrCrs */{ 558,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AcceptRegisterMeInCrs ,NULL},
|
/* ActAccEnrCrs */{ 558,-1,TabUsr,ActReqMdfSevUsr ,0x1F8,0x000,0x000,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Enr_AcceptRegisterMeInCrs ,NULL},
|
||||||
|
@ -2833,7 +2852,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
|
||||||
-1, // #158 (obsolete action)
|
-1, // #158 (obsolete action)
|
||||||
-1, // #159 (obsolete action)
|
-1, // #159 (obsolete action)
|
||||||
-1, // #160 (obsolete action)
|
-1, // #160 (obsolete action)
|
||||||
ActReqMdfUsr, // #161
|
-1, // #161 (obsolete action)
|
||||||
-1, // #162 (obsolete action)
|
-1, // #162 (obsolete action)
|
||||||
-1, // #163 (obsolete action)
|
-1, // #163 (obsolete action)
|
||||||
ActRcvPagCrsLnk, // #164
|
ActRcvPagCrsLnk, // #164
|
||||||
|
@ -2849,7 +2868,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
|
||||||
ActNewGrpTyp, // #174
|
ActNewGrpTyp, // #174
|
||||||
ActRemGrp, // #175
|
ActRemGrp, // #175
|
||||||
-1, // #176 (obsolete action)
|
-1, // #176 (obsolete action)
|
||||||
ActReqMdfOneUsr, // #177
|
-1, // #177 (obsolete action)
|
||||||
-1, // #178 (obsolete action)
|
-1, // #178 (obsolete action)
|
||||||
ActPrnExaAnn, // #179
|
ActPrnExaAnn, // #179
|
||||||
-1, // #180 (obsolete action)
|
-1, // #180 (obsolete action)
|
||||||
|
@ -3111,7 +3130,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
|
||||||
ActDelAllRcvMsg, // #436
|
ActDelAllRcvMsg, // #436
|
||||||
-1, // #437 (obsolete action)
|
-1, // #437 (obsolete action)
|
||||||
-1, // #438 (obsolete action)
|
-1, // #438 (obsolete action)
|
||||||
ActUpdOthUsrDat, // #439
|
-1, // #439 (obsolete action)
|
||||||
ActCreOthUsrDat, // #440
|
ActCreOthUsrDat, // #440
|
||||||
-1, // #441 (obsolete action)
|
-1, // #441 (obsolete action)
|
||||||
-1, // #442 (obsolete action)
|
-1, // #442 (obsolete action)
|
||||||
|
@ -4089,6 +4108,18 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
|
||||||
ActUnfUsr, // #1411
|
ActUnfUsr, // #1411
|
||||||
ActSeeFlg, // #1412
|
ActSeeFlg, // #1412
|
||||||
ActSeeFlr, // #1413
|
ActSeeFlr, // #1413
|
||||||
|
ActReqMdfOneGst, // #1414
|
||||||
|
ActReqMdfOneStd, // #1415
|
||||||
|
ActReqMdfOneTch, // #1416
|
||||||
|
ActReqMdfOneAdm, // #1417
|
||||||
|
ActReqMdfGst, // #1418
|
||||||
|
ActReqMdfStd, // #1419
|
||||||
|
ActReqMdfTch, // #1420
|
||||||
|
ActReqMdfAdm, // #1421
|
||||||
|
ActUpdOthGst, // #1422
|
||||||
|
ActUpdOthStd, // #1423
|
||||||
|
ActUpdOthTch, // #1424
|
||||||
|
ActUpdOthAdm, // #1425
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
@ -4484,7 +4515,7 @@ void Act_AdjustCurrentAction (void)
|
||||||
case ActReqEdiRecCom:
|
case ActReqEdiRecCom:
|
||||||
case ActReqEdiMyIns:
|
case ActReqEdiMyIns:
|
||||||
case ActReqSelGrp:
|
case ActReqSelGrp:
|
||||||
case ActReqMdfOneUsr: // A student use this action to remove him/herself from current course
|
case ActReqMdfOneStd: // A student use this action to remove him/herself from current course
|
||||||
case ActSeeCrsTimTbl:
|
case ActSeeCrsTimTbl:
|
||||||
case ActPrnCrsTimTbl:
|
case ActPrnCrsTimTbl:
|
||||||
case ActSeeMyTimTbl:
|
case ActSeeMyTimTbl:
|
||||||
|
|
|
@ -69,9 +69,9 @@ typedef enum
|
||||||
|
|
||||||
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
||||||
|
|
||||||
#define Act_NUM_ACTIONS (7+52+15+90+73+68+204+182+110+168+28+77)
|
#define Act_NUM_ACTIONS (7+52+15+90+73+68+204+182+119+168+28+77)
|
||||||
|
|
||||||
#define Act_MAX_ACTION_COD 1413
|
#define Act_MAX_ACTION_COD 1425
|
||||||
|
|
||||||
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
|
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
|
||||||
|
|
||||||
|
@ -942,53 +942,63 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
|
||||||
#define ActReqRejSignUp (ActChgNumRowFooGrp+ 70)
|
#define ActReqRejSignUp (ActChgNumRowFooGrp+ 70)
|
||||||
#define ActRejSignUp (ActChgNumRowFooGrp+ 71)
|
#define ActRejSignUp (ActChgNumRowFooGrp+ 71)
|
||||||
|
|
||||||
#define ActReqMdfOneUsr (ActChgNumRowFooGrp+ 72)
|
#define ActReqMdfOneGst (ActChgNumRowFooGrp+ 72)
|
||||||
#define ActReqMdfUsr (ActChgNumRowFooGrp+ 73)
|
#define ActReqMdfOneStd (ActChgNumRowFooGrp+ 73)
|
||||||
|
#define ActReqMdfOneTch (ActChgNumRowFooGrp+ 74)
|
||||||
|
#define ActReqMdfOneAdm (ActChgNumRowFooGrp+ 75)
|
||||||
|
|
||||||
#define ActReqUsrPho (ActChgNumRowFooGrp+ 74)
|
#define ActReqMdfGst (ActChgNumRowFooGrp+ 76)
|
||||||
#define ActDetUsrPho (ActChgNumRowFooGrp+ 75)
|
#define ActReqMdfStd (ActChgNumRowFooGrp+ 77)
|
||||||
#define ActUpdUsrPho (ActChgNumRowFooGrp+ 76)
|
#define ActReqMdfTch (ActChgNumRowFooGrp+ 78)
|
||||||
#define ActRemUsrPho (ActChgNumRowFooGrp+ 77)
|
#define ActReqMdfAdm (ActChgNumRowFooGrp+ 79)
|
||||||
#define ActCreOthUsrDat (ActChgNumRowFooGrp+ 78)
|
|
||||||
#define ActUpdOthUsrDat (ActChgNumRowFooGrp+ 79)
|
|
||||||
|
|
||||||
#define ActReqAccEnrCrs (ActChgNumRowFooGrp+ 80)
|
#define ActReqUsrPho (ActChgNumRowFooGrp+ 80)
|
||||||
#define ActAccEnrCrs (ActChgNumRowFooGrp+ 81)
|
#define ActDetUsrPho (ActChgNumRowFooGrp+ 81)
|
||||||
#define ActRemMeCrs (ActChgNumRowFooGrp+ 82)
|
#define ActUpdUsrPho (ActChgNumRowFooGrp+ 82)
|
||||||
|
#define ActRemUsrPho (ActChgNumRowFooGrp+ 83)
|
||||||
|
#define ActCreOthUsrDat (ActChgNumRowFooGrp+ 84)
|
||||||
|
#define ActUpdOthGst (ActChgNumRowFooGrp+ 85)
|
||||||
|
#define ActUpdOthStd (ActChgNumRowFooGrp+ 86)
|
||||||
|
#define ActUpdOthTch (ActChgNumRowFooGrp+ 87)
|
||||||
|
#define ActUpdOthAdm (ActChgNumRowFooGrp+ 88)
|
||||||
|
|
||||||
#define ActNewAdmIns (ActChgNumRowFooGrp+ 83)
|
#define ActReqAccEnrCrs (ActChgNumRowFooGrp+ 89)
|
||||||
#define ActRemAdmIns (ActChgNumRowFooGrp+ 84)
|
#define ActAccEnrCrs (ActChgNumRowFooGrp+ 90)
|
||||||
#define ActNewAdmCtr (ActChgNumRowFooGrp+ 85)
|
#define ActRemMeCrs (ActChgNumRowFooGrp+ 91)
|
||||||
#define ActRemAdmCtr (ActChgNumRowFooGrp+ 86)
|
|
||||||
#define ActNewAdmDeg (ActChgNumRowFooGrp+ 87)
|
|
||||||
#define ActRemAdmDeg (ActChgNumRowFooGrp+ 88)
|
|
||||||
|
|
||||||
#define ActRcvFrmMdfUsrCrs (ActChgNumRowFooGrp+ 89)
|
#define ActNewAdmIns (ActChgNumRowFooGrp+ 92)
|
||||||
#define ActFrmIDsOthUsr (ActChgNumRowFooGrp+ 90)
|
#define ActRemAdmIns (ActChgNumRowFooGrp+ 93)
|
||||||
#define ActRemIDOth (ActChgNumRowFooGrp+ 91)
|
#define ActNewAdmCtr (ActChgNumRowFooGrp+ 94)
|
||||||
#define ActNewIDOth (ActChgNumRowFooGrp+ 92)
|
#define ActRemAdmCtr (ActChgNumRowFooGrp+ 95)
|
||||||
#define ActFrmPwdOthUsr (ActChgNumRowFooGrp+ 93)
|
#define ActNewAdmDeg (ActChgNumRowFooGrp+ 96)
|
||||||
#define ActChgPwdOthUsr (ActChgNumRowFooGrp+ 94)
|
#define ActRemAdmDeg (ActChgNumRowFooGrp+ 97)
|
||||||
#define ActRemUsrCrs (ActChgNumRowFooGrp+ 95)
|
|
||||||
#define ActRemUsrGbl (ActChgNumRowFooGrp+ 96)
|
|
||||||
|
|
||||||
#define ActReqRemAllStdCrs (ActChgNumRowFooGrp+ 97)
|
#define ActRcvFrmMdfUsrCrs (ActChgNumRowFooGrp+ 98)
|
||||||
#define ActRemAllStdCrs (ActChgNumRowFooGrp+ 98)
|
#define ActFrmIDsOthUsr (ActChgNumRowFooGrp+ 99)
|
||||||
|
#define ActRemIDOth (ActChgNumRowFooGrp+100)
|
||||||
|
#define ActNewIDOth (ActChgNumRowFooGrp+101)
|
||||||
|
#define ActFrmPwdOthUsr (ActChgNumRowFooGrp+102)
|
||||||
|
#define ActChgPwdOthUsr (ActChgNumRowFooGrp+103)
|
||||||
|
#define ActRemUsrCrs (ActChgNumRowFooGrp+104)
|
||||||
|
#define ActRemUsrGbl (ActChgNumRowFooGrp+105)
|
||||||
|
|
||||||
#define ActReqRemOldUsr (ActChgNumRowFooGrp+ 99)
|
#define ActReqRemAllStdCrs (ActChgNumRowFooGrp+106)
|
||||||
#define ActRemOldUsr (ActChgNumRowFooGrp+100)
|
#define ActRemAllStdCrs (ActChgNumRowFooGrp+107)
|
||||||
|
|
||||||
#define ActSeePubPrf (ActChgNumRowFooGrp+101)
|
#define ActReqRemOldUsr (ActChgNumRowFooGrp+108)
|
||||||
#define ActCal1stClkTim (ActChgNumRowFooGrp+102)
|
#define ActRemOldUsr (ActChgNumRowFooGrp+109)
|
||||||
#define ActCalNumClk (ActChgNumRowFooGrp+103)
|
|
||||||
#define ActCalNumFilVie (ActChgNumRowFooGrp+104)
|
|
||||||
#define ActCalNumForPst (ActChgNumRowFooGrp+105)
|
|
||||||
#define ActCalNumMsgSnt (ActChgNumRowFooGrp+106)
|
|
||||||
|
|
||||||
#define ActFolUsr (ActChgNumRowFooGrp+107)
|
#define ActSeePubPrf (ActChgNumRowFooGrp+110)
|
||||||
#define ActUnfUsr (ActChgNumRowFooGrp+108)
|
#define ActCal1stClkTim (ActChgNumRowFooGrp+111)
|
||||||
#define ActSeeFlg (ActChgNumRowFooGrp+109)
|
#define ActCalNumClk (ActChgNumRowFooGrp+112)
|
||||||
#define ActSeeFlr (ActChgNumRowFooGrp+110)
|
#define ActCalNumFilVie (ActChgNumRowFooGrp+113)
|
||||||
|
#define ActCalNumForPst (ActChgNumRowFooGrp+114)
|
||||||
|
#define ActCalNumMsgSnt (ActChgNumRowFooGrp+115)
|
||||||
|
|
||||||
|
#define ActFolUsr (ActChgNumRowFooGrp+116)
|
||||||
|
#define ActUnfUsr (ActChgNumRowFooGrp+117)
|
||||||
|
#define ActSeeFlg (ActChgNumRowFooGrp+118)
|
||||||
|
#define ActSeeFlr (ActChgNumRowFooGrp+119)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************* Messages tab ********************************/
|
/******************************* Messages tab ********************************/
|
||||||
|
|
|
@ -103,12 +103,31 @@
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 14.128.1 (2015/09/10)"
|
#define Log_PLATFORM_VERSION "SWAD 14.129 (2015/09/11)"
|
||||||
|
|
||||||
// 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 14.128.1: Sep 10, 2015 Two new social networks. (184278 lines)
|
Version 14.129: Sep 11, 2015 New links to admin a user in list of students.
|
||||||
|
Changes in user enrollment.
|
||||||
|
Fixed bug in user enrollment. (184411 lines)
|
||||||
|
UPDATE actions SET Obsolete='Y' WHERE ActCod='177';
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1414','es','N','Solicitar ID modif. invitado');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1415','es','N','Solicitar ID modif. estudiante');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1416','es','N','Solicitar ID modif. profesor');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1417','es','N','Solicitar ID modif. administrador');
|
||||||
|
UPDATE actions SET Obsolete='Y' WHERE ActCod='161';
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1418','es','N','Confirmar modif. invitado');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1419','es','N','Confirmar modif. estudiante');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1420','es','N','Confirmar modif. profesor');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1421','es','N','Confirmar modif. administrador');
|
||||||
|
UPDATE actions SET Obsolete='Y' WHERE ActCod='439';
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1422','es','N','Modificar datos invitado');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1423','es','N','Modificar datos estudiante');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1424','es','N','Modificar datos profesor');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1425','es','N','Modificar datos administrador');
|
||||||
|
|
||||||
|
Version 14.128.1: Sep 11, 2015 Two new social networks. (184278 lines)
|
||||||
1 change necessary in database:
|
1 change necessary in database:
|
||||||
ALTER TABLE usr_webs CHANGE Web Web ENUM('www','500px','delicious','deviantart','diaspora','edmodo','facebook','flickr','foursquare','github','gnusocial','googleplus','googlescholar','identica','instagram','linkedin','orcid','paperli','pinterest','quitter','researchgate','researcherid','scoopit','slideshare','storify','tumblr','twitter','wikipedia','youtube') NOT NULL;
|
ALTER TABLE usr_webs CHANGE Web Web ENUM('www','500px','delicious','deviantart','diaspora','edmodo','facebook','flickr','foursquare','github','gnusocial','googleplus','googlescholar','identica','instagram','linkedin','orcid','paperli','pinterest','quitter','researchgate','researcherid','scoopit','slideshare','storify','tumblr','twitter','wikipedia','youtube') NOT NULL;
|
||||||
|
|
||||||
|
|
|
@ -88,7 +88,6 @@ extern struct Globals Gbl;
|
||||||
|
|
||||||
static void Enr_ShowFormRegRemSeveralUsrs (void);
|
static void Enr_ShowFormRegRemSeveralUsrs (void);
|
||||||
|
|
||||||
static void Enr_PutLinkToRemOldUsrs (void);
|
|
||||||
static void Enr_PutAreaToEnterUsrsIDs (void);
|
static void Enr_PutAreaToEnterUsrsIDs (void);
|
||||||
static void Enr_PutActionsRegRemSeveralUsrs (void);
|
static void Enr_PutActionsRegRemSeveralUsrs (void);
|
||||||
|
|
||||||
|
@ -96,14 +95,13 @@ static void Enr_RegisterUsr (struct UsrData *UsrDat,Rol_Role_t RegRemRole,
|
||||||
struct ListCodGrps *LstGrps,unsigned *NumUsrsRegistered);
|
struct ListCodGrps *LstGrps,unsigned *NumUsrsRegistered);
|
||||||
static void Enr_MarkOfficialStdsAsRemovable (long ImpGrpCod,bool RemoveSpecifiedUsrs);
|
static void Enr_MarkOfficialStdsAsRemovable (long ImpGrpCod,bool RemoveSpecifiedUsrs);
|
||||||
|
|
||||||
static void Enr_PutLinkToRemAllStdsThisCrs (void);
|
|
||||||
static void Enr_RemoveEnrollmentRequest (long CrsCod,long UsrCod);
|
static void Enr_RemoveEnrollmentRequest (long CrsCod,long UsrCod);
|
||||||
static void Enr_PutLinkToAdminOneUsr (void);
|
|
||||||
static void Enr_PutLinkToAdminSeveralUsrs (void);
|
|
||||||
|
|
||||||
static void Enr_ReqAnotherUsrIDToRegisterRemove (void);
|
static void Enr_ReqRegRemUsr (Rol_Role_t Role);
|
||||||
static void Enr_AskIfRegRemMe (void);
|
static void Enr_ReqAnotherUsrIDToRegisterRemove (Rol_Role_t Role);
|
||||||
static void Enr_AskIfRegRemUsr (struct ListUsrCods *ListUsrCods);
|
static void Enr_AskIfRegRemMe (Rol_Role_t Role);
|
||||||
|
static void Enr_AskIfRegRemAnotherUsr (Rol_Role_t Role);
|
||||||
|
static void Enr_AskIfRegRemUsr (struct ListUsrCods *ListUsrCods,Rol_Role_t Role);
|
||||||
|
|
||||||
static void Enr_ShowFormToEditOtherUsr (void);
|
static void Enr_ShowFormToEditOtherUsr (void);
|
||||||
|
|
||||||
|
@ -447,39 +445,28 @@ void Enr_ReqAdminUsrs (void)
|
||||||
switch (Gbl.Usrs.Me.LoggedRole)
|
switch (Gbl.Usrs.Me.LoggedRole)
|
||||||
{
|
{
|
||||||
case Rol__GUEST_:
|
case Rol__GUEST_:
|
||||||
case Rol_VISITOR:
|
Enr_AskIfRegRemMe (Rol__GUEST_);
|
||||||
|
break;
|
||||||
case Rol_STUDENT:
|
case Rol_STUDENT:
|
||||||
Enr_AskIfRegRemMe ();
|
Enr_AskIfRegRemMe (Rol_STUDENT);
|
||||||
break;
|
break;
|
||||||
case Rol_TEACHER:
|
case Rol_TEACHER:
|
||||||
if (Gbl.CurrentCrs.Crs.CrsCod > 0)
|
if (Gbl.CurrentCrs.Crs.CrsCod > 0)
|
||||||
Enr_ShowFormRegRemSeveralUsrs ();
|
Enr_ShowFormRegRemSeveralUsrs ();
|
||||||
else
|
else
|
||||||
Enr_AskIfRegRemMe ();
|
Enr_AskIfRegRemMe (Rol_TEACHER);
|
||||||
break;
|
break;
|
||||||
case Rol_DEG_ADM:
|
case Rol_DEG_ADM:
|
||||||
if (Gbl.CurrentDeg.Deg.DegCod > 0)
|
|
||||||
Enr_ReqAnotherUsrIDToRegisterRemove ();
|
|
||||||
else
|
|
||||||
Enr_AskIfRegRemMe ();
|
|
||||||
break;
|
|
||||||
case Rol_CTR_ADM:
|
case Rol_CTR_ADM:
|
||||||
if (Gbl.CurrentCtr.Ctr.CtrCod > 0)
|
|
||||||
Enr_ReqAnotherUsrIDToRegisterRemove ();
|
|
||||||
else
|
|
||||||
Enr_AskIfRegRemMe ();
|
|
||||||
break;
|
|
||||||
case Rol_INS_ADM:
|
case Rol_INS_ADM:
|
||||||
if (Gbl.CurrentIns.Ins.InsCod > 0)
|
Enr_ReqRegRemUsr (Rol_DEG_ADM);
|
||||||
Enr_ReqAnotherUsrIDToRegisterRemove ();
|
|
||||||
else
|
|
||||||
Enr_AskIfRegRemMe ();
|
|
||||||
break;
|
break;
|
||||||
case Rol_SYS_ADM:
|
case Rol_SYS_ADM:
|
||||||
if (Gbl.CurrentCrs.Crs.CrsCod > 0)
|
if (Gbl.CurrentCrs.Crs.CrsCod > 0)
|
||||||
Enr_ShowFormRegRemSeveralUsrs ();
|
Enr_ShowFormRegRemSeveralUsrs ();
|
||||||
else
|
else
|
||||||
Enr_ReqAnotherUsrIDToRegisterRemove ();
|
Enr_ReqAnotherUsrIDToRegisterRemove (Rol_TEACHER); // TODO: Change this line to the following
|
||||||
|
// Enr_ReqAnotherUsrIDToRegisterRemove (Role);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Lay_ShowAlert (Lay_ERROR,Txt_You_dont_have_permission_to_perform_this_action);
|
Lay_ShowAlert (Lay_ERROR,Txt_You_dont_have_permission_to_perform_this_action);
|
||||||
|
@ -512,9 +499,6 @@ static void Enr_ShowFormRegRemSeveralUsrs (void)
|
||||||
/***** Put contextual links *****/
|
/***** Put contextual links *****/
|
||||||
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
||||||
|
|
||||||
/* Put link to go to admin one user */
|
|
||||||
Enr_PutLinkToAdminOneUsr ();
|
|
||||||
|
|
||||||
/* Put link to remove all the students in the current course */
|
/* Put link to remove all the students in the current course */
|
||||||
if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected
|
if (Gbl.CurrentCrs.Crs.CrsCod > 0) // Course selected
|
||||||
Enr_PutLinkToRemAllStdsThisCrs ();
|
Enr_PutLinkToRemAllStdsThisCrs ();
|
||||||
|
@ -618,7 +602,7 @@ static void Enr_ShowFormRegRemSeveralUsrs (void)
|
||||||
/******************** Put a link (form) to remove old users ******************/
|
/******************** Put a link (form) to remove old users ******************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Enr_PutLinkToRemOldUsrs (void)
|
void Enr_PutLinkToRemOldUsrs (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Remove_old_users;
|
extern const char *Txt_Remove_old_users;
|
||||||
|
|
||||||
|
@ -1697,7 +1681,7 @@ static void Enr_MarkOfficialStdsAsRemovable (long ImpGrpCod,bool RemoveSpecified
|
||||||
/**** Put a link (form) to remove all the students in the current course *****/
|
/**** Put a link (form) to remove all the students in the current course *****/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Enr_PutLinkToRemAllStdsThisCrs (void)
|
void Enr_PutLinkToRemAllStdsThisCrs (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Remove_all_students;
|
extern const char *Txt_Remove_all_students;
|
||||||
|
|
||||||
|
@ -2411,15 +2395,20 @@ void Enr_ShowEnrollmentRequests (void)
|
||||||
|
|
||||||
/* Get user code (row[2]) */
|
/* Get user code (row[2]) */
|
||||||
UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[2]);
|
UsrDat.UsrCod = Str_ConvertStrCodToLongCod (row[2]);
|
||||||
|
|
||||||
UsrExists = Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat);
|
UsrExists = Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat);
|
||||||
|
|
||||||
|
/***** Get requested role (row[3]) *****/
|
||||||
|
DesiredRole = Rol_ConvertUnsignedStrToRole (row[3]);
|
||||||
|
|
||||||
if (UsrExists)
|
if (UsrExists)
|
||||||
UsrBelongsToCrs = Usr_CheckIfUsrBelongsToCrs (UsrDat.UsrCod,Crs.CrsCod);
|
UsrBelongsToCrs = Usr_CheckIfUsrBelongsToCrs (UsrDat.UsrCod,Crs.CrsCod);
|
||||||
else
|
else
|
||||||
UsrBelongsToCrs = false;
|
UsrBelongsToCrs = false;
|
||||||
|
|
||||||
if (UsrExists & !UsrBelongsToCrs)
|
if (UsrExists &&
|
||||||
|
!UsrBelongsToCrs &&
|
||||||
|
(DesiredRole == Rol_STUDENT ||
|
||||||
|
DesiredRole == Rol_TEACHER))
|
||||||
{
|
{
|
||||||
/***** Number *****/
|
/***** Number *****/
|
||||||
fprintf (Gbl.F.Out,"<tr>"
|
fprintf (Gbl.F.Out,"<tr>"
|
||||||
|
@ -2463,7 +2452,6 @@ void Enr_ShowEnrollmentRequests (void)
|
||||||
Usr_RestrictLengthAndWriteName (&UsrDat,20);
|
Usr_RestrictLengthAndWriteName (&UsrDat,20);
|
||||||
|
|
||||||
/***** Requested role (row[3]) *****/
|
/***** Requested role (row[3]) *****/
|
||||||
DesiredRole = Rol_ConvertUnsignedStrToRole (row[3]);
|
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_TOP\">"
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_TOP\">"
|
||||||
"%s"
|
"%s"
|
||||||
"</td>",
|
"</td>",
|
||||||
|
@ -2474,7 +2462,8 @@ void Enr_ShowEnrollmentRequests (void)
|
||||||
|
|
||||||
/***** Button to confirm the request *****/
|
/***** Button to confirm the request *****/
|
||||||
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_TOP\">");
|
fprintf (Gbl.F.Out,"<td class=\"DAT LEFT_TOP\">");
|
||||||
Act_FormStart (ActReqMdfUsr);
|
Act_FormStart (DesiredRole == Rol_STUDENT ? ActReqMdfStd :
|
||||||
|
ActReqMdfTch);
|
||||||
Crs_PutParamCrsCod (Crs.CrsCod);
|
Crs_PutParamCrsCod (Crs.CrsCod);
|
||||||
Usr_PutParamUsrCodEncrypted (UsrDat.EncryptedUsrCod);
|
Usr_PutParamUsrCodEncrypted (UsrDat.EncryptedUsrCod);
|
||||||
Lay_PutCreateButton (Txt_Register);
|
Lay_PutCreateButton (Txt_Register);
|
||||||
|
@ -2550,11 +2539,11 @@ static void Enr_RemoveEnrollmentRequest (long CrsCod,long UsrCod)
|
||||||
/********************** Write a form to admin one user ***********************/
|
/********************** Write a form to admin one user ***********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Enr_PutLinkToAdminOneUsr (void)
|
void Enr_PutLinkToAdminOneUsr (Act_Action_t NextAction)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Admin_one_user;
|
extern const char *Txt_Admin_one_user;
|
||||||
|
|
||||||
Act_PutContextualLink (ActReqMdfOneUsr,NULL,
|
Act_PutContextualLink (NextAction,NULL,
|
||||||
"configtest",Txt_Admin_one_user);
|
"configtest",Txt_Admin_one_user);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -2562,7 +2551,7 @@ static void Enr_PutLinkToAdminOneUsr (void)
|
||||||
/******************* Write a form to admin several users *********************/
|
/******************* Write a form to admin several users *********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Enr_PutLinkToAdminSeveralUsrs (void)
|
void Enr_PutLinkToAdminSeveralUsrs (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Admin_several_users;
|
extern const char *Txt_Admin_several_users;
|
||||||
|
|
||||||
|
@ -2574,43 +2563,64 @@ static void Enr_PutLinkToAdminSeveralUsrs (void)
|
||||||
/************** Form to request the user's ID of another user ****************/
|
/************** Form to request the user's ID of another user ****************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Enr_ReqRegRemUsr (void)
|
void Enr_ReqRegRemGst (void)
|
||||||
|
{
|
||||||
|
Enr_ReqRegRemUsr (Rol__GUEST_);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Enr_ReqRegRemStd (void)
|
||||||
|
{
|
||||||
|
Enr_ReqRegRemUsr (Rol_STUDENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Enr_ReqRegRemTch (void)
|
||||||
|
{
|
||||||
|
Enr_ReqRegRemUsr (Rol_TEACHER);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Enr_ReqRegRemAdm (void)
|
||||||
|
{
|
||||||
|
Enr_ReqRegRemUsr (Rol_DEG_ADM);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Enr_ReqRegRemUsr (Rol_Role_t Role)
|
||||||
{
|
{
|
||||||
extern const char *Txt_You_dont_have_permission_to_perform_this_action;
|
extern const char *Txt_You_dont_have_permission_to_perform_this_action;
|
||||||
|
|
||||||
switch (Gbl.Usrs.Me.LoggedRole)
|
switch (Gbl.Usrs.Me.LoggedRole)
|
||||||
{
|
{
|
||||||
case Rol__GUEST_:
|
case Rol__GUEST_:
|
||||||
case Rol_VISITOR:
|
Enr_AskIfRegRemMe (Rol__GUEST_);
|
||||||
|
break;
|
||||||
case Rol_STUDENT:
|
case Rol_STUDENT:
|
||||||
Enr_AskIfRegRemMe ();
|
Enr_AskIfRegRemMe (Rol_STUDENT);
|
||||||
break;
|
break;
|
||||||
case Rol_TEACHER:
|
case Rol_TEACHER:
|
||||||
if (Gbl.CurrentCrs.Crs.CrsCod > 0)
|
if (Gbl.CurrentCrs.Crs.CrsCod > 0)
|
||||||
Enr_ReqAnotherUsrIDToRegisterRemove ();
|
Enr_ReqAnotherUsrIDToRegisterRemove (Role);
|
||||||
else
|
else
|
||||||
Enr_AskIfRegRemMe ();
|
Enr_AskIfRegRemMe (Rol_TEACHER);
|
||||||
break;
|
break;
|
||||||
case Rol_DEG_ADM:
|
case Rol_DEG_ADM:
|
||||||
if (Gbl.CurrentDeg.Deg.DegCod > 0)
|
if (Gbl.CurrentDeg.Deg.DegCod > 0)
|
||||||
Enr_ReqAnotherUsrIDToRegisterRemove ();
|
Enr_ReqAnotherUsrIDToRegisterRemove (Role);
|
||||||
else
|
else
|
||||||
Enr_AskIfRegRemMe ();
|
Enr_AskIfRegRemMe (Rol_DEG_ADM);
|
||||||
break;
|
break;
|
||||||
case Rol_CTR_ADM:
|
case Rol_CTR_ADM:
|
||||||
if (Gbl.CurrentCtr.Ctr.CtrCod > 0)
|
if (Gbl.CurrentCtr.Ctr.CtrCod > 0)
|
||||||
Enr_ReqAnotherUsrIDToRegisterRemove ();
|
Enr_ReqAnotherUsrIDToRegisterRemove (Role);
|
||||||
else
|
else
|
||||||
Enr_AskIfRegRemMe ();
|
Enr_AskIfRegRemMe (Rol_DEG_ADM);
|
||||||
break;
|
break;
|
||||||
case Rol_INS_ADM:
|
case Rol_INS_ADM:
|
||||||
if (Gbl.CurrentIns.Ins.InsCod > 0)
|
if (Gbl.CurrentIns.Ins.InsCod > 0)
|
||||||
Enr_ReqAnotherUsrIDToRegisterRemove ();
|
Enr_ReqAnotherUsrIDToRegisterRemove (Role);
|
||||||
else
|
else
|
||||||
Enr_AskIfRegRemMe ();
|
Enr_AskIfRegRemMe (Rol_DEG_ADM);
|
||||||
break;
|
break;
|
||||||
case Rol_SYS_ADM:
|
case Rol_SYS_ADM:
|
||||||
Enr_ReqAnotherUsrIDToRegisterRemove ();
|
Enr_ReqAnotherUsrIDToRegisterRemove (Role);
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
Lay_ShowAlert (Lay_ERROR,Txt_You_dont_have_permission_to_perform_this_action);
|
Lay_ShowAlert (Lay_ERROR,Txt_You_dont_have_permission_to_perform_this_action);
|
||||||
|
@ -2622,7 +2632,7 @@ void Enr_ReqRegRemUsr (void)
|
||||||
/****** Write a form to request another user's ID, @nickname or e-mail *******/
|
/****** Write a form to request another user's ID, @nickname or e-mail *******/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Enr_ReqAnotherUsrIDToRegisterRemove (void)
|
static void Enr_ReqAnotherUsrIDToRegisterRemove (Rol_Role_t Role)
|
||||||
{
|
{
|
||||||
extern const char *Txt_Admin_one_user;
|
extern const char *Txt_Admin_one_user;
|
||||||
|
|
||||||
|
@ -2646,7 +2656,10 @@ static void Enr_ReqAnotherUsrIDToRegisterRemove (void)
|
||||||
Lay_StartRoundFrame (NULL,Txt_Admin_one_user);
|
Lay_StartRoundFrame (NULL,Txt_Admin_one_user);
|
||||||
|
|
||||||
/***** Write form to request another user's ID *****/
|
/***** Write form to request another user's ID *****/
|
||||||
Enr_WriteFormToReqAnotherUsrID (ActReqMdfUsr);
|
Enr_WriteFormToReqAnotherUsrID ( Role == Rol__GUEST_ ? ActReqMdfGst :
|
||||||
|
(Role == Rol_STUDENT ? ActReqMdfStd :
|
||||||
|
(Role == Rol_TEACHER ? ActReqMdfTch :
|
||||||
|
ActReqMdfAdm)));
|
||||||
|
|
||||||
/***** End frame *****/
|
/***** End frame *****/
|
||||||
Lay_EndRoundFrame ();
|
Lay_EndRoundFrame ();
|
||||||
|
@ -2656,7 +2669,7 @@ static void Enr_ReqAnotherUsrIDToRegisterRemove (void)
|
||||||
/********************** Ask me for register/remove me ************************/
|
/********************** Ask me for register/remove me ************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Enr_AskIfRegRemMe (void)
|
static void Enr_AskIfRegRemMe (Rol_Role_t Role)
|
||||||
{
|
{
|
||||||
struct ListUsrCods ListUsrCods;
|
struct ListUsrCods ListUsrCods;
|
||||||
|
|
||||||
|
@ -2666,14 +2679,34 @@ static void Enr_AskIfRegRemMe (void)
|
||||||
Usr_AllocateListUsrCods (&ListUsrCods);
|
Usr_AllocateListUsrCods (&ListUsrCods);
|
||||||
ListUsrCods.Lst[0] = Gbl.Usrs.Other.UsrDat.UsrCod;
|
ListUsrCods.Lst[0] = Gbl.Usrs.Other.UsrDat.UsrCod;
|
||||||
|
|
||||||
Enr_AskIfRegRemUsr (&ListUsrCods);
|
Enr_AskIfRegRemUsr (&ListUsrCods,Role);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/****************** Ask me for register/remove another user ******************/
|
/****************** Ask me for register/remove another user ******************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Enr_AskIfRegRemAnotherUsr (void)
|
void Enr_AskIfRegRemAnotherGst (void)
|
||||||
|
{
|
||||||
|
Enr_AskIfRegRemAnotherUsr (Rol__GUEST_);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Enr_AskIfRegRemAnotherStd (void)
|
||||||
|
{
|
||||||
|
Enr_AskIfRegRemAnotherUsr (Rol_STUDENT);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Enr_AskIfRegRemAnotherTch (void)
|
||||||
|
{
|
||||||
|
Enr_AskIfRegRemAnotherUsr (Rol_TEACHER);
|
||||||
|
}
|
||||||
|
|
||||||
|
void Enr_AskIfRegRemAnotherAdm (void)
|
||||||
|
{
|
||||||
|
Enr_AskIfRegRemAnotherUsr (Rol_DEG_ADM);
|
||||||
|
}
|
||||||
|
|
||||||
|
static void Enr_AskIfRegRemAnotherUsr (Rol_Role_t Role)
|
||||||
{
|
{
|
||||||
struct ListUsrCods ListUsrCods;
|
struct ListUsrCods ListUsrCods;
|
||||||
|
|
||||||
|
@ -2692,14 +2725,14 @@ void Enr_AskIfRegRemAnotherUsr (void)
|
||||||
use user's ID to identify the user to be enrolled /removed *****/
|
use user's ID to identify the user to be enrolled /removed *****/
|
||||||
Usr_GetParamOtherUsrIDNickOrEMailAndGetUsrCods (&ListUsrCods);
|
Usr_GetParamOtherUsrIDNickOrEMailAndGetUsrCods (&ListUsrCods);
|
||||||
|
|
||||||
Enr_AskIfRegRemUsr (&ListUsrCods);
|
Enr_AskIfRegRemUsr (&ListUsrCods,Role);
|
||||||
}
|
}
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/********************** Ask me for register/remove user **********************/
|
/********************** Ask me for register/remove user **********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
static void Enr_AskIfRegRemUsr (struct ListUsrCods *ListUsrCods)
|
static void Enr_AskIfRegRemUsr (struct ListUsrCods *ListUsrCods,Rol_Role_t Role)
|
||||||
{
|
{
|
||||||
extern const char *Txt_There_are_X_users_with_the_ID_Y;
|
extern const char *Txt_There_are_X_users_with_the_ID_Y;
|
||||||
extern const char *Txt_THE_USER_X_is_already_enrolled_in_the_course_Y;
|
extern const char *Txt_THE_USER_X_is_already_enrolled_in_the_course_Y;
|
||||||
|
@ -2795,7 +2828,7 @@ static void Enr_AskIfRegRemUsr (struct ListUsrCods *ListUsrCods)
|
||||||
sprintf (Gbl.Message,Txt_If_this_is_a_new_user_in_X_you_should_indicate_her_his_ID,
|
sprintf (Gbl.Message,Txt_If_this_is_a_new_user_in_X_you_should_indicate_her_his_ID,
|
||||||
Cfg_PLATFORM_SHORT_NAME);
|
Cfg_PLATFORM_SHORT_NAME);
|
||||||
Lay_ShowAlert (Lay_WARNING,Gbl.Message);
|
Lay_ShowAlert (Lay_WARNING,Gbl.Message);
|
||||||
Enr_ReqRegRemUsr ();
|
Enr_ReqRegRemUsr (Role);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -3172,7 +3205,7 @@ void Enr_AcceptRegisterMeInCrs (void)
|
||||||
/******************* Create and show data from other user ********************/
|
/******************* Create and show data from other user ********************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Enr_CreatAndShowNewUsrRecordAndRegInCrs (void)
|
void Enr_CreateNewUsr (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_The_ID_X_is_not_valid;
|
extern const char *Txt_The_ID_X_is_not_valid;
|
||||||
Rol_Role_t NewRole;
|
Rol_Role_t NewRole;
|
||||||
|
@ -3227,15 +3260,12 @@ void Enr_CreatAndShowNewUsrRecordAndRegInCrs (void)
|
||||||
/**** Modify other user's data and register her/him in course and groups *****/
|
/**** Modify other user's data and register her/him in course and groups *****/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
void Enr_ModifAndShowUsrCardAndRegInCrsAndGrps (void)
|
void Enr_ModifyUsr (void)
|
||||||
{
|
{
|
||||||
extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
|
extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
|
||||||
char UnsignedStr[10+1];
|
char UnsignedStr[10+1];
|
||||||
unsigned UnsignedNum;
|
unsigned UnsignedNum;
|
||||||
bool ItsMe;
|
bool ItsMe;
|
||||||
bool IAmTeacher;
|
|
||||||
bool HeIsTeacher;
|
|
||||||
bool ICanChangeUsrName;
|
|
||||||
Enr_RegRemOneUsrAction_t RegRemAction;
|
Enr_RegRemOneUsrAction_t RegRemAction;
|
||||||
Rol_Role_t NewRole;
|
Rol_Role_t NewRole;
|
||||||
bool Error = false;
|
bool Error = false;
|
||||||
|
@ -3254,13 +3284,8 @@ void Enr_ModifAndShowUsrCardAndRegInCrsAndGrps (void)
|
||||||
case Enr_REGISTER_MODIFY_ONE_USR_IN_CRS:
|
case Enr_REGISTER_MODIFY_ONE_USR_IN_CRS:
|
||||||
if (ItsMe || Gbl.Usrs.Me.LoggedRole >= Rol_TEACHER)
|
if (ItsMe || Gbl.Usrs.Me.LoggedRole >= Rol_TEACHER)
|
||||||
{
|
{
|
||||||
IAmTeacher = (Gbl.Usrs.Me.LoggedRole == Rol_TEACHER); // I am logged as teacher
|
|
||||||
HeIsTeacher = (Gbl.Usrs.Other.UsrDat.Roles & (1 << Rol_TEACHER)); // He/she is already a teacher in any course
|
|
||||||
ICanChangeUsrName = ItsMe ||
|
|
||||||
!(IAmTeacher && HeIsTeacher); // A teacher can not change another teacher's name
|
|
||||||
|
|
||||||
/***** Get user's name from record form *****/
|
/***** Get user's name from record form *****/
|
||||||
if (ICanChangeUsrName)
|
if (Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM) // Only an admin can change another user's name
|
||||||
Rec_GetUsrNameFromRecordForm (&Gbl.Usrs.Other.UsrDat);
|
Rec_GetUsrNameFromRecordForm (&Gbl.Usrs.Other.UsrDat);
|
||||||
|
|
||||||
/***** Update user's data in database *****/
|
/***** Update user's data in database *****/
|
||||||
|
|
|
@ -94,6 +94,9 @@ void Enr_RemoveOldUsrs (void);
|
||||||
bool Enr_PutActionsRegRemOneUsr (bool ItsMe);
|
bool Enr_PutActionsRegRemOneUsr (bool ItsMe);
|
||||||
|
|
||||||
void Enr_ReceiveFormUsrsCrs (void);
|
void Enr_ReceiveFormUsrsCrs (void);
|
||||||
|
void Enr_PutLinkToRemAllStdsThisCrs (void);
|
||||||
|
void Enr_PutLinkToRemOldUsrs (void);
|
||||||
|
void Enr_PutLinkToAdminSeveralUsrs (void);
|
||||||
void Enr_AskRemAllStdsThisCrs (void);
|
void Enr_AskRemAllStdsThisCrs (void);
|
||||||
void Enr_RemAllStdsThisCrs (void);
|
void Enr_RemAllStdsThisCrs (void);
|
||||||
unsigned Enr_RemAllStdsInCrs (struct Course *Crs);
|
unsigned Enr_RemAllStdsInCrs (struct Course *Crs);
|
||||||
|
@ -105,8 +108,16 @@ void Enr_AskIfRejectSignUp (void);
|
||||||
void Enr_RejectSignUp (void);
|
void Enr_RejectSignUp (void);
|
||||||
void Enr_ShowEnrollmentRequests (void);
|
void Enr_ShowEnrollmentRequests (void);
|
||||||
|
|
||||||
void Enr_ReqRegRemUsr (void);
|
void Enr_PutLinkToAdminOneUsr (Act_Action_t NextAction);
|
||||||
void Enr_AskIfRegRemAnotherUsr (void);
|
|
||||||
|
void Enr_ReqRegRemGst (void);
|
||||||
|
void Enr_ReqRegRemStd (void);
|
||||||
|
void Enr_ReqRegRemTch (void);
|
||||||
|
void Enr_ReqRegRemAdm (void);
|
||||||
|
void Enr_AskIfRegRemAnotherGst (void);
|
||||||
|
void Enr_AskIfRegRemAnotherStd (void);
|
||||||
|
void Enr_AskIfRegRemAnotherTch (void);
|
||||||
|
void Enr_AskIfRegRemAnotherAdm (void);
|
||||||
void Enr_AddAdmToIns (void);
|
void Enr_AddAdmToIns (void);
|
||||||
void Enr_AddAdmToCtr (void);
|
void Enr_AddAdmToCtr (void);
|
||||||
void Enr_AddAdmToDeg (void);
|
void Enr_AddAdmToDeg (void);
|
||||||
|
@ -119,8 +130,8 @@ void Enr_RemAdmCtr (void);
|
||||||
void Enr_RemAdmDeg (void);
|
void Enr_RemAdmDeg (void);
|
||||||
|
|
||||||
void Enr_AcceptRegisterMeInCrs (void);
|
void Enr_AcceptRegisterMeInCrs (void);
|
||||||
void Enr_CreatAndShowNewUsrRecordAndRegInCrs (void);
|
void Enr_CreateNewUsr (void);
|
||||||
void Enr_ModifAndShowUsrCardAndRegInCrsAndGrps (void);
|
void Enr_ModifyUsr (void);
|
||||||
void Enr_AcceptUsrInCrs (long UsrCod);
|
void Enr_AcceptUsrInCrs (long UsrCod);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -1991,58 +1991,58 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
|
||||||
UsrDat->RoleInCurrentCrsDB == Rol_TEACHER);
|
UsrDat->RoleInCurrentCrsDB == Rol_TEACHER);
|
||||||
bool CountryForm = (TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
|
bool CountryForm = (TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
|
||||||
TypeOfView == Rec_FORM_NEW_RECORD_OTHER_NEW_USR);
|
TypeOfView == Rec_FORM_NEW_RECORD_OTHER_NEW_USR);
|
||||||
bool RoleForm = (Gbl.CurrentCrs.Crs.CrsCod > 0 &&
|
bool RoleForm = Gbl.CurrentCrs.Crs.CrsCod > 0 &&
|
||||||
(TypeOfView == Rec_FORM_SIGN_UP ||
|
(TypeOfView == Rec_FORM_SIGN_UP ||
|
||||||
TypeOfView == Rec_FORM_NEW_RECORD_OTHER_NEW_USR ||
|
|
||||||
TypeOfView == Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR));
|
|
||||||
bool SexForm = TypeOfView == Rec_FORM_MY_COMMON_RECORD;
|
|
||||||
bool DataForm = (TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
|
|
||||||
TypeOfView == Rec_FORM_NEW_RECORD_OTHER_NEW_USR ||
|
TypeOfView == Rec_FORM_NEW_RECORD_OTHER_NEW_USR ||
|
||||||
(TypeOfView == Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR &&
|
TypeOfView == Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR);
|
||||||
Gbl.Usrs.Me.LoggedRole > Rol_TEACHER));
|
bool SexForm = TypeOfView == Rec_FORM_MY_COMMON_RECORD;
|
||||||
|
bool DataForm = TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
|
||||||
|
TypeOfView == Rec_FORM_NEW_RECORD_OTHER_NEW_USR ||
|
||||||
|
(TypeOfView == Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR &&
|
||||||
|
Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM);
|
||||||
bool PutFormLinks; // Put links (forms) inside record card
|
bool PutFormLinks; // Put links (forms) inside record card
|
||||||
bool ShowEmail = (ItsMe ||
|
bool ShowEmail = ItsMe ||
|
||||||
Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM ||
|
Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM ||
|
||||||
DataForm ||
|
DataForm ||
|
||||||
TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
|
TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
|
||||||
TypeOfView == Rec_MY_COMMON_RECORD_CHECK ||
|
TypeOfView == Rec_MY_COMMON_RECORD_CHECK ||
|
||||||
TypeOfView == Rec_FORM_MY_COURSE_RECORD_AS_STUDENT ||
|
TypeOfView == Rec_FORM_MY_COURSE_RECORD_AS_STUDENT ||
|
||||||
TypeOfView == Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT ||
|
TypeOfView == Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT ||
|
||||||
(UsrDat->Accepted &&
|
(UsrDat->Accepted &&
|
||||||
(TypeOfView == Rec_CHECK_OTHER_USR_COMMON_RECORD ||
|
(TypeOfView == Rec_CHECK_OTHER_USR_COMMON_RECORD ||
|
||||||
((TypeOfView == Rec_RECORD_LIST ||
|
((TypeOfView == Rec_RECORD_LIST ||
|
||||||
TypeOfView == Rec_RECORD_PRINT) &&
|
TypeOfView == Rec_RECORD_PRINT) &&
|
||||||
(IAmLoggedAsTeacher || Gbl.Usrs.Listing.RecsUsrs == Rec_RECORD_USERS_TEACHERS)))));
|
(IAmLoggedAsTeacher || Gbl.Usrs.Listing.RecsUsrs == Rec_RECORD_USERS_TEACHERS))));
|
||||||
bool ShowID = (ItsMe ||
|
bool ShowID = ItsMe ||
|
||||||
Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM ||
|
Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM ||
|
||||||
DataForm ||
|
DataForm ||
|
||||||
TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
|
TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
|
||||||
TypeOfView == Rec_MY_COMMON_RECORD_CHECK ||
|
TypeOfView == Rec_MY_COMMON_RECORD_CHECK ||
|
||||||
TypeOfView == Rec_FORM_MY_COURSE_RECORD_AS_STUDENT ||
|
TypeOfView == Rec_FORM_MY_COURSE_RECORD_AS_STUDENT ||
|
||||||
TypeOfView == Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT ||
|
TypeOfView == Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT ||
|
||||||
(UsrDat->Accepted &&
|
(UsrDat->Accepted &&
|
||||||
((TypeOfView == Rec_CHECK_OTHER_USR_COMMON_RECORD &&
|
((TypeOfView == Rec_CHECK_OTHER_USR_COMMON_RECORD &&
|
||||||
!(IAmLoggedAsTeacher && HeIsTeacherInAnyCourse)) || // A teacher can not see another teacher's ID
|
!(IAmLoggedAsTeacher && HeIsTeacherInAnyCourse)) || // A teacher can not see another teacher's ID
|
||||||
((TypeOfView == Rec_RECORD_LIST ||
|
((TypeOfView == Rec_RECORD_LIST ||
|
||||||
TypeOfView == Rec_RECORD_PRINT) &&
|
TypeOfView == Rec_RECORD_PRINT) &&
|
||||||
IAmLoggedAsTeacher && Gbl.Usrs.Listing.RecsUsrs == Rec_RECORD_USERS_STUDENTS))));
|
IAmLoggedAsTeacher && Gbl.Usrs.Listing.RecsUsrs == Rec_RECORD_USERS_STUDENTS)));
|
||||||
bool ShowData = ItsMe ||
|
bool ShowData = ItsMe ||
|
||||||
Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM ||
|
Gbl.Usrs.Me.LoggedRole >= Rol_DEG_ADM ||
|
||||||
UsrDat->Accepted;
|
UsrDat->Accepted;
|
||||||
bool ShowIDRows = (TypeOfView != Rec_RECORD_PUBLIC);
|
bool ShowIDRows = TypeOfView != Rec_RECORD_PUBLIC;
|
||||||
bool ShowAddressRows = (TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
|
bool ShowAddressRows = TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
|
||||||
TypeOfView == Rec_MY_COMMON_RECORD_CHECK ||
|
TypeOfView == Rec_MY_COMMON_RECORD_CHECK ||
|
||||||
TypeOfView == Rec_FORM_MY_COURSE_RECORD_AS_STUDENT ||
|
TypeOfView == Rec_FORM_MY_COURSE_RECORD_AS_STUDENT ||
|
||||||
TypeOfView == Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT ||
|
TypeOfView == Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT ||
|
||||||
((TypeOfView == Rec_RECORD_LIST ||
|
((TypeOfView == Rec_RECORD_LIST ||
|
||||||
TypeOfView == Rec_RECORD_PRINT) &&
|
TypeOfView == Rec_RECORD_PRINT) &&
|
||||||
(IAmLoggedAsTeacher || IAmLoggedAsSysAdm) &&
|
(IAmLoggedAsTeacher || IAmLoggedAsSysAdm) &&
|
||||||
UsrDat->RoleInCurrentCrsDB == Rol_STUDENT));
|
UsrDat->RoleInCurrentCrsDB == Rol_STUDENT);
|
||||||
bool ShowTeacherRows = (((TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
|
bool ShowTeacherRows = (((TypeOfView == Rec_FORM_MY_COMMON_RECORD ||
|
||||||
TypeOfView == Rec_MY_COMMON_RECORD_CHECK ||
|
TypeOfView == Rec_MY_COMMON_RECORD_CHECK ||
|
||||||
TypeOfView == Rec_FORM_MY_COURSE_RECORD_AS_STUDENT ||
|
TypeOfView == Rec_FORM_MY_COURSE_RECORD_AS_STUDENT ||
|
||||||
TypeOfView == Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT) &&
|
TypeOfView == Rec_CHECK_MY_COURSE_RECORD_AS_STUDENT) &&
|
||||||
(UsrDat->Roles & (1 << Rol_TEACHER))) || // He/she (me, really) is a teacher in any course
|
(UsrDat->Roles & (1 << Rol_TEACHER))) || // He/she (me, really) is a teacher in any course
|
||||||
((TypeOfView == Rec_RECORD_LIST ||
|
((TypeOfView == Rec_RECORD_LIST ||
|
||||||
TypeOfView == Rec_RECORD_PRINT) &&
|
TypeOfView == Rec_RECORD_PRINT) &&
|
||||||
UsrDat->RoleInCurrentCrsDB == Rol_TEACHER)); // He/she is a teacher in the current course
|
UsrDat->RoleInCurrentCrsDB == Rol_TEACHER)); // He/she is a teacher in the current course
|
||||||
|
@ -2200,8 +2200,8 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
|
||||||
IAmLoggedAsTeacher ||
|
IAmLoggedAsTeacher ||
|
||||||
IAmLoggedAsSysAdm))
|
IAmLoggedAsSysAdm))
|
||||||
{
|
{
|
||||||
Act_FormStart ((UsrDat->RoleInCurrentCrsDB == Rol_STUDENT) ? ActSeeRecOneStd :
|
Act_FormStart (UsrDat->RoleInCurrentCrsDB == Rol_STUDENT ? ActSeeRecOneStd :
|
||||||
ActSeeRecOneTch);
|
ActSeeRecOneTch);
|
||||||
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
|
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
|
||||||
Act_LinkFormSubmit (Txt_View_record_for_this_course,NULL);
|
Act_LinkFormSubmit (Txt_View_record_for_this_course,NULL);
|
||||||
fprintf (Gbl.F.Out,"<div class=\"ICON_HIGHLIGHT\""
|
fprintf (Gbl.F.Out,"<div class=\"ICON_HIGHLIGHT\""
|
||||||
|
@ -2225,7 +2225,9 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
|
||||||
(Gbl.CurrentIns.Ins.InsCod > 0 && Gbl.Usrs.Me.LoggedRole == Rol_INS_ADM) ||
|
(Gbl.CurrentIns.Ins.InsCod > 0 && Gbl.Usrs.Me.LoggedRole == Rol_INS_ADM) ||
|
||||||
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
|
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
|
||||||
{
|
{
|
||||||
Act_FormStart (ActReqMdfUsr);
|
Act_FormStart ( UsrDat->RoleInCurrentCrsDB == Rol_STUDENT ? ActReqMdfStd :
|
||||||
|
(UsrDat->RoleInCurrentCrsDB == Rol_TEACHER ? ActReqMdfTch :
|
||||||
|
ActReqMdfGst));
|
||||||
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
|
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
|
||||||
Act_LinkFormSubmit (Txt_Admin_user,NULL);
|
Act_LinkFormSubmit (Txt_Admin_user,NULL);
|
||||||
fprintf (Gbl.F.Out,"<div class=\"ICON_HIGHLIGHT\""
|
fprintf (Gbl.F.Out,"<div class=\"ICON_HIGHLIGHT\""
|
||||||
|
@ -2450,7 +2452,10 @@ void Rec_ShowSharedUsrRecord (Rec_RecordViewType_t TypeOfView,
|
||||||
ID_PutParamOtherUsrIDPlain (); // New user
|
ID_PutParamOtherUsrIDPlain (); // New user
|
||||||
break;
|
break;
|
||||||
case Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR:
|
case Rec_FORM_MODIFY_RECORD_OTHER_EXISTING_USR:
|
||||||
Act_FormStart (ActUpdOthUsrDat);
|
Act_FormStart ( UsrDat->RoleInCurrentCrsDB < Rol_STUDENT ? ActUpdOthGst :
|
||||||
|
(UsrDat->RoleInCurrentCrsDB == Rol_STUDENT ? ActUpdOthStd :
|
||||||
|
(UsrDat->RoleInCurrentCrsDB == Rol_TEACHER ? ActUpdOthTch :
|
||||||
|
ActUpdOthAdm)));
|
||||||
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod); // Existing user
|
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod); // Existing user
|
||||||
break;
|
break;
|
||||||
default:
|
default:
|
||||||
|
|
60
swad_user.c
60
swad_user.c
|
@ -5824,6 +5824,17 @@ void Usr_ListDataAdms (void)
|
||||||
struct UsrData UsrDat;
|
struct UsrData UsrDat;
|
||||||
const char *FieldNames[Usr_NUM_MAIN_FIELDS_DATA_ADM];
|
const char *FieldNames[Usr_NUM_MAIN_FIELDS_DATA_ADM];
|
||||||
|
|
||||||
|
/***** Put contextual links *****/
|
||||||
|
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
|
||||||
|
{
|
||||||
|
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
||||||
|
|
||||||
|
/* Put link to go to admin one user */
|
||||||
|
Enr_PutLinkToAdminOneUsr (ActReqMdfOneAdm);
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"</div>");
|
||||||
|
}
|
||||||
|
|
||||||
/***** Initialize field names *****/
|
/***** Initialize field names *****/
|
||||||
FieldNames[0] = Txt_No_INDEX;
|
FieldNames[0] = Txt_No_INDEX;
|
||||||
FieldNames[1] = Txt_Photo;
|
FieldNames[1] = Txt_Photo;
|
||||||
|
@ -6263,6 +6274,17 @@ void Usr_SeeGuests (void)
|
||||||
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS];
|
||||||
extern const char *Txt_Show_records;
|
extern const char *Txt_Show_records;
|
||||||
|
|
||||||
|
/***** Put contextual links *****/
|
||||||
|
if (Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)
|
||||||
|
{
|
||||||
|
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
||||||
|
|
||||||
|
/* Put link to go to admin one user */
|
||||||
|
Enr_PutLinkToAdminOneUsr (ActReqMdfOneGst);
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"</div>");
|
||||||
|
}
|
||||||
|
|
||||||
/***** Get and update type of list,
|
/***** Get and update type of list,
|
||||||
number of columns in class photo
|
number of columns in class photo
|
||||||
and preference about view photos *****/
|
and preference about view photos *****/
|
||||||
|
@ -6401,18 +6423,34 @@ void Usr_SeeStudents (void)
|
||||||
extern const char *Txt_Show_records;
|
extern const char *Txt_Show_records;
|
||||||
bool ICanViewRecords;
|
bool ICanViewRecords;
|
||||||
|
|
||||||
|
/***** Put contextual links *****/
|
||||||
if (Gbl.CurrentCrs.Crs.CrsCod > 0 && // Course selected
|
if (Gbl.CurrentCrs.Crs.CrsCod > 0 && // Course selected
|
||||||
(Gbl.Usrs.Me.LoggedRole == Rol_TEACHER || // My role in current course is teacher...
|
(Gbl.Usrs.Me.LoggedRole == Rol_TEACHER || // My role in current course is teacher...
|
||||||
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)) // ...or superuser
|
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)) // ...or system admin
|
||||||
{
|
{
|
||||||
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
||||||
|
|
||||||
/***** Link to list official students *****/
|
/* Put link to go to admin one user */
|
||||||
|
Enr_PutLinkToAdminOneUsr (ActReqMdfOneStd);
|
||||||
|
|
||||||
|
/* Put link to go to admin several users */
|
||||||
|
Enr_PutLinkToAdminSeveralUsrs ();
|
||||||
|
|
||||||
|
/* Put link to list official students */
|
||||||
Usr_PutLinkToListOfficialStudents ();
|
Usr_PutLinkToListOfficialStudents ();
|
||||||
|
|
||||||
/***** Link to edit record fields *****/
|
/* Put link to edit record fields */
|
||||||
Rec_PutLinkToEditRecordFields ();
|
Rec_PutLinkToEditRecordFields ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"</div>");
|
||||||
|
}
|
||||||
|
else if (Gbl.Usrs.Me.LoggedRole == Rol_STUDENT)
|
||||||
|
{
|
||||||
|
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
||||||
|
|
||||||
|
/* Put link to go to admin one user */
|
||||||
|
Enr_PutLinkToAdminOneUsr (ActReqMdfOneStd);
|
||||||
|
|
||||||
fprintf (Gbl.F.Out,"</div>");
|
fprintf (Gbl.F.Out,"</div>");
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -6564,6 +6602,22 @@ void Usr_SeeTeachers (void)
|
||||||
extern const char *Txt_No_users_found[Rol_NUM_ROLES];
|
extern const char *Txt_No_users_found[Rol_NUM_ROLES];
|
||||||
bool ICanViewRecords;
|
bool ICanViewRecords;
|
||||||
|
|
||||||
|
/***** Put contextual links *****/
|
||||||
|
if (Gbl.CurrentCrs.Crs.CrsCod > 0 && // Course selected
|
||||||
|
(Gbl.Usrs.Me.LoggedRole == Rol_TEACHER || // My role in current course is teacher...
|
||||||
|
Gbl.Usrs.Me.LoggedRole == Rol_SYS_ADM)) // ...or system admin
|
||||||
|
{
|
||||||
|
fprintf (Gbl.F.Out,"<div class=\"CONTEXT_MENU\">");
|
||||||
|
|
||||||
|
/* Put link to go to admin one user */
|
||||||
|
Enr_PutLinkToAdminOneUsr (ActReqMdfOneTch);
|
||||||
|
|
||||||
|
/* Put link to go to admin several users */
|
||||||
|
Enr_PutLinkToAdminSeveralUsrs ();
|
||||||
|
|
||||||
|
fprintf (Gbl.F.Out,"</div>");
|
||||||
|
}
|
||||||
|
|
||||||
/***** Get and update type of list,
|
/***** Get and update type of list,
|
||||||
number of columns in class photo
|
number of columns in class photo
|
||||||
and preference about view photos *****/
|
and preference about view photos *****/
|
||||||
|
|
Loading…
Reference in New Issue