Version 16.87

This commit is contained in:
Antonio Cañas Vargas 2016-12-05 13:26:12 +01:00
parent 26ad90468b
commit 7bc74d7a36
13 changed files with 223 additions and 174 deletions

View File

@ -299,7 +299,7 @@ static void Acc_WriteRowEmptyAccount (unsigned NumUsr,const char *ID,struct UsrD
/***** Button to login with this account *****/
fprintf (Gbl.F.Out,"<td class=\"RIGHT_TOP COLOR%u\">",
Gbl.RowEvenOdd);
Act_FormStart (ActAutUsrNew);
Act_FormStart (ActLogInNew);
Usr_PutParamUsrCodEncrypted (UsrDat->EncryptedUsrCod);
Lay_PutCreateButtonInline (Txt_Its_me);
Act_FormEnd ();

View File

@ -958,6 +958,7 @@ Users:
NEW. ActFrmLogInUsrAgd Put form to log in to show another user's public agenda
NEW. ActLogInUsrAgd Show another user's public agenda after log in
NEW. ActLogInUsrAgdLan Show another user's public agenda after change language
NEW. ActSeeUsrAgd Show another user's public agenda
797. ActReqEnrSevStd Request the enrollment/removing of several users to / from current course
@ -1340,9 +1341,9 @@ Profile:
1149. ActSndNewPwd Send a new password via email
1150. ActLogOut Close session
1151. ActAutUsrInt Authentify user internally (directly from the platform)
1152. ActAutUsrNew Authentify user internally (directly from the platform, only if user has not password)
1153. ActAutUsrChgLan Change language to my language just after authentication
1151. ActLogIn Authentify user internally (directly from the platform)
1152. ActLogInNew Authentify user internally (directly from the platform, only if user has not password)
1153. ActLogInLan Change language to my language just after authentication
1154. ActAnnSee Mark announcement as seen
1155. ActChgMyRol Change type of logged user
@ -2370,6 +2371,7 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActFrmLogInUsrAgd */{1614,-1,TabUnk,ActLstTch ,0x001,0x001,0x001,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Agd_PutFormLogInToShowUsrAgenda,NULL},
/* ActLogInUsrAgd */{1615,-1,TabUnk,ActLstTch ,0x1FC,0x1FC,0x1FC,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Agd_ShowUsrAgendaAfterLogIn ,NULL},
/* ActLogInUsrAgdLan */{1616,-1,TabUnk,ActLstTch ,0x1FC,0x1FC,0x1FC,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Agd_ShowUsrAgendaAfterLogIn ,NULL},
/* ActSeeUsrAgd */{1611,-1,TabUnk,ActLstTch ,0x1FC,0x1FC,0x1FC,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Agd_ShowUsrAgenda ,NULL},
/* ActReqEnrSevStd */{1426,-1,TabUnk,ActLstStd ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Enr_ReqAdminStds ,NULL},
@ -2795,9 +2797,9 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
/* ActSndNewPwd */{ 633,-1,TabUnk,ActFrmLogIn ,0x000,0x001,0x001,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Pwd_ChkIdLoginAndSendNewPwd ,NULL},
/* ActLogOut */{ 10,-1,TabUnk,ActFrmLogIn ,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,Ses_CloseSession ,Usr_Logout ,NULL},
/* ActAutUsrInt */{ 6,-1,TabUnk,ActFrmRolSes ,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Usr_WelcomeUsr ,NULL},
/* ActAutUsrNew */{1585,-1,TabUnk,ActFrmRolSes ,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Usr_WelcomeUsr ,NULL},
/* ActAutUsrChgLan */{1077,-1,TabUnk,ActFrmRolSes ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Usr_WelcomeUsr ,NULL},
/* ActLogIn */{ 6,-1,TabUnk,ActFrmRolSes ,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Usr_WelcomeUsr ,NULL},
/* ActLogInNew */{1585,-1,TabUnk,ActFrmRolSes ,0x1FF,0x1FF,0x1FF,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Usr_WelcomeUsr ,NULL},
/* ActLogInLan */{1077,-1,TabUnk,ActFrmRolSes ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Usr_WelcomeUsr ,NULL},
/* ActAnnSee */{1234,-1,TabUnk,ActFrmRolSes ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,NULL ,Ann_MarkAnnouncementAsSeen ,NULL},
/* ActChgMyRol */{ 589,-1,TabUnk,ActFrmRolSes ,0x1FE,0x1FE,0x1FE,Act_CONT_NORM,Act_THIS_WINDOW,Rol_ChangeMyRole ,Usr_ShowFormsLogoutAndRole ,NULL},
@ -2904,7 +2906,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActSeeRcvMsg, // #3
-1, // #4 (obsolete action)
-1, // #5 (obsolete action)
ActAutUsrInt, // #6
ActLogIn, // #6
-1, // #7 (obsolete action)
-1, // #8 (obsolete action)
ActSeeCrsLnk, // #9
@ -3975,7 +3977,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActSeeLstStdAtt, // #1074
ActPrnLstStdAtt, // #1075
ActRecAttMe, // #1076
ActAutUsrChgLan, // #1077
ActLogInLan, // #1077
ActSeeDocCrs, // #1078
ActSeeMrkCrs, // #1079
ActReqSeeUsrTstRes, // #1080
@ -4486,7 +4488,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActSeeMyUsgRep, // #1582
-1, // #1583 (obsolete action)
ActChkUsrAcc, // #1584
ActAutUsrNew, // #1585
ActLogInNew, // #1585
ActReqMyUsgRep, // #1586
ActChgCrsDegCfg, // #1587
ActChgDegCtrCfg, // #1588
@ -4517,6 +4519,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
ActShoEvtMyAgd, // #1613
ActFrmLogInUsrAgd, // #1614
ActLogInUsrAgd, // #1615
ActLogInUsrAgdLan, // #1616
};
/*****************************************************************************/
@ -4884,7 +4887,7 @@ void Act_AdjustCurrentAction (void)
}
/***** If my login password is not enough secure, the only action possible is show a form to change my password *****/
if (Gbl.Action.Act == ActAutUsrInt)
if (Gbl.Action.Act == ActLogIn)
if (!Pwd_FastCheckIfPasswordSeemsGood (Gbl.Usrs.Me.LoginPlainPassword))
{
Gbl.Action.Act = ActFrmChgMyPwd;
@ -4978,8 +4981,8 @@ void Act_AdjustCurrentAction (void)
case Rol_STUDENT:
switch (Gbl.Action.Act)
{
case ActAutUsrInt:
case ActAutUsrNew:
case ActLogIn:
case ActLogInNew:
case ActHom:
case ActMnu:
case ActLogOut:

View File

@ -55,9 +55,9 @@ typedef enum
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
#define Act_NUM_ACTIONS (1+9+51+14+93+73+70+249+186+158+172+36+31+95)
#define Act_NUM_ACTIONS (1+9+51+14+93+73+70+249+186+159+172+36+31+95)
#define Act_MAX_ACTION_COD 1615
#define Act_MAX_ACTION_COD 1616
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 11
@ -974,127 +974,128 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
#define ActFrmLogInUsrAgd (ActChgNumRowFooGrp+ 52)
#define ActLogInUsrAgd (ActChgNumRowFooGrp+ 53)
#define ActSeeUsrAgd (ActChgNumRowFooGrp+ 54)
#define ActLogInUsrAgdLan (ActChgNumRowFooGrp+ 54)
#define ActSeeUsrAgd (ActChgNumRowFooGrp+ 55)
#define ActReqEnrSevStd (ActChgNumRowFooGrp+ 55)
#define ActReqEnrSevTch (ActChgNumRowFooGrp+ 56)
#define ActReqEnrSevStd (ActChgNumRowFooGrp+ 56)
#define ActReqEnrSevTch (ActChgNumRowFooGrp+ 57)
#define ActReqLstStdAtt (ActChgNumRowFooGrp+ 57)
#define ActSeeLstMyAtt (ActChgNumRowFooGrp+ 58)
#define ActPrnLstMyAtt (ActChgNumRowFooGrp+ 59)
#define ActSeeLstStdAtt (ActChgNumRowFooGrp+ 60)
#define ActPrnLstStdAtt (ActChgNumRowFooGrp+ 61)
#define ActFrmNewAtt (ActChgNumRowFooGrp+ 62)
#define ActEdiOneAtt (ActChgNumRowFooGrp+ 63)
#define ActNewAtt (ActChgNumRowFooGrp+ 64)
#define ActChgAtt (ActChgNumRowFooGrp+ 65)
#define ActReqRemAtt (ActChgNumRowFooGrp+ 66)
#define ActRemAtt (ActChgNumRowFooGrp+ 67)
#define ActHidAtt (ActChgNumRowFooGrp+ 68)
#define ActShoAtt (ActChgNumRowFooGrp+ 69)
#define ActSeeOneAtt (ActChgNumRowFooGrp+ 70)
#define ActRecAttStd (ActChgNumRowFooGrp+ 71)
#define ActRecAttMe (ActChgNumRowFooGrp+ 72)
#define ActReqLstStdAtt (ActChgNumRowFooGrp+ 58)
#define ActSeeLstMyAtt (ActChgNumRowFooGrp+ 59)
#define ActPrnLstMyAtt (ActChgNumRowFooGrp+ 60)
#define ActSeeLstStdAtt (ActChgNumRowFooGrp+ 61)
#define ActPrnLstStdAtt (ActChgNumRowFooGrp+ 62)
#define ActFrmNewAtt (ActChgNumRowFooGrp+ 63)
#define ActEdiOneAtt (ActChgNumRowFooGrp+ 64)
#define ActNewAtt (ActChgNumRowFooGrp+ 65)
#define ActChgAtt (ActChgNumRowFooGrp+ 66)
#define ActReqRemAtt (ActChgNumRowFooGrp+ 67)
#define ActRemAtt (ActChgNumRowFooGrp+ 68)
#define ActHidAtt (ActChgNumRowFooGrp+ 69)
#define ActShoAtt (ActChgNumRowFooGrp+ 70)
#define ActSeeOneAtt (ActChgNumRowFooGrp+ 71)
#define ActRecAttStd (ActChgNumRowFooGrp+ 72)
#define ActRecAttMe (ActChgNumRowFooGrp+ 73)
#define ActSignUp (ActChgNumRowFooGrp+ 73)
#define ActUpdSignUpReq (ActChgNumRowFooGrp+ 74)
#define ActReqRejSignUp (ActChgNumRowFooGrp+ 75)
#define ActRejSignUp (ActChgNumRowFooGrp+ 76)
#define ActSignUp (ActChgNumRowFooGrp+ 74)
#define ActUpdSignUpReq (ActChgNumRowFooGrp+ 75)
#define ActReqRejSignUp (ActChgNumRowFooGrp+ 76)
#define ActRejSignUp (ActChgNumRowFooGrp+ 77)
#define ActReqMdfOneOth (ActChgNumRowFooGrp+ 77)
#define ActReqMdfOneStd (ActChgNumRowFooGrp+ 78)
#define ActReqMdfOneTch (ActChgNumRowFooGrp+ 79)
#define ActReqMdfOneOth (ActChgNumRowFooGrp+ 78)
#define ActReqMdfOneStd (ActChgNumRowFooGrp+ 79)
#define ActReqMdfOneTch (ActChgNumRowFooGrp+ 80)
#define ActReqMdfOth (ActChgNumRowFooGrp+ 80)
#define ActReqMdfStd (ActChgNumRowFooGrp+ 81)
#define ActReqMdfTch (ActChgNumRowFooGrp+ 82)
#define ActReqMdfOth (ActChgNumRowFooGrp+ 81)
#define ActReqMdfStd (ActChgNumRowFooGrp+ 82)
#define ActReqMdfTch (ActChgNumRowFooGrp+ 83)
#define ActReqOthPho (ActChgNumRowFooGrp+ 83)
#define ActReqStdPho (ActChgNumRowFooGrp+ 84)
#define ActReqTchPho (ActChgNumRowFooGrp+ 85)
#define ActDetOthPho (ActChgNumRowFooGrp+ 86)
#define ActDetStdPho (ActChgNumRowFooGrp+ 87)
#define ActDetTchPho (ActChgNumRowFooGrp+ 88)
#define ActUpdOthPho (ActChgNumRowFooGrp+ 89)
#define ActUpdStdPho (ActChgNumRowFooGrp+ 90)
#define ActUpdTchPho (ActChgNumRowFooGrp+ 91)
#define ActReqRemOthPho (ActChgNumRowFooGrp+ 92)
#define ActReqRemStdPho (ActChgNumRowFooGrp+ 93)
#define ActReqRemTchPho (ActChgNumRowFooGrp+ 94)
#define ActRemOthPho (ActChgNumRowFooGrp+ 95)
#define ActRemStdPho (ActChgNumRowFooGrp+ 96)
#define ActRemTchPho (ActChgNumRowFooGrp+ 97)
#define ActCreOth (ActChgNumRowFooGrp+ 98)
#define ActCreStd (ActChgNumRowFooGrp+ 99)
#define ActCreTch (ActChgNumRowFooGrp+100)
#define ActUpdOth (ActChgNumRowFooGrp+101)
#define ActUpdStd (ActChgNumRowFooGrp+102)
#define ActUpdTch (ActChgNumRowFooGrp+103)
#define ActReqOthPho (ActChgNumRowFooGrp+ 84)
#define ActReqStdPho (ActChgNumRowFooGrp+ 85)
#define ActReqTchPho (ActChgNumRowFooGrp+ 86)
#define ActDetOthPho (ActChgNumRowFooGrp+ 87)
#define ActDetStdPho (ActChgNumRowFooGrp+ 88)
#define ActDetTchPho (ActChgNumRowFooGrp+ 89)
#define ActUpdOthPho (ActChgNumRowFooGrp+ 90)
#define ActUpdStdPho (ActChgNumRowFooGrp+ 91)
#define ActUpdTchPho (ActChgNumRowFooGrp+ 92)
#define ActReqRemOthPho (ActChgNumRowFooGrp+ 93)
#define ActReqRemStdPho (ActChgNumRowFooGrp+ 94)
#define ActReqRemTchPho (ActChgNumRowFooGrp+ 95)
#define ActRemOthPho (ActChgNumRowFooGrp+ 96)
#define ActRemStdPho (ActChgNumRowFooGrp+ 97)
#define ActRemTchPho (ActChgNumRowFooGrp+ 98)
#define ActCreOth (ActChgNumRowFooGrp+ 99)
#define ActCreStd (ActChgNumRowFooGrp+100)
#define ActCreTch (ActChgNumRowFooGrp+101)
#define ActUpdOth (ActChgNumRowFooGrp+102)
#define ActUpdStd (ActChgNumRowFooGrp+103)
#define ActUpdTch (ActChgNumRowFooGrp+104)
#define ActReqAccEnrStd (ActChgNumRowFooGrp+104)
#define ActReqAccEnrTch (ActChgNumRowFooGrp+105)
#define ActAccEnrStd (ActChgNumRowFooGrp+106)
#define ActAccEnrTch (ActChgNumRowFooGrp+107)
#define ActRemMe_Std (ActChgNumRowFooGrp+108)
#define ActRemMe_Tch (ActChgNumRowFooGrp+109)
#define ActReqAccEnrStd (ActChgNumRowFooGrp+105)
#define ActReqAccEnrTch (ActChgNumRowFooGrp+106)
#define ActAccEnrStd (ActChgNumRowFooGrp+107)
#define ActAccEnrTch (ActChgNumRowFooGrp+108)
#define ActRemMe_Std (ActChgNumRowFooGrp+109)
#define ActRemMe_Tch (ActChgNumRowFooGrp+110)
#define ActNewAdmIns (ActChgNumRowFooGrp+110)
#define ActRemAdmIns (ActChgNumRowFooGrp+111)
#define ActNewAdmCtr (ActChgNumRowFooGrp+112)
#define ActRemAdmCtr (ActChgNumRowFooGrp+113)
#define ActNewAdmDeg (ActChgNumRowFooGrp+114)
#define ActRemAdmDeg (ActChgNumRowFooGrp+115)
#define ActNewAdmIns (ActChgNumRowFooGrp+111)
#define ActRemAdmIns (ActChgNumRowFooGrp+112)
#define ActNewAdmCtr (ActChgNumRowFooGrp+113)
#define ActRemAdmCtr (ActChgNumRowFooGrp+114)
#define ActNewAdmDeg (ActChgNumRowFooGrp+115)
#define ActRemAdmDeg (ActChgNumRowFooGrp+116)
#define ActRcvFrmEnrSevStd (ActChgNumRowFooGrp+116)
#define ActRcvFrmEnrSevTch (ActChgNumRowFooGrp+117)
#define ActRcvFrmEnrSevStd (ActChgNumRowFooGrp+117)
#define ActRcvFrmEnrSevTch (ActChgNumRowFooGrp+118)
#define ActReqCnfID_Oth (ActChgNumRowFooGrp+118)
#define ActReqCnfID_Std (ActChgNumRowFooGrp+119)
#define ActReqCnfID_Tch (ActChgNumRowFooGrp+120)
#define ActCnfID_Oth (ActChgNumRowFooGrp+121)
#define ActCnfID_Std (ActChgNumRowFooGrp+122)
#define ActCnfID_Tch (ActChgNumRowFooGrp+123)
#define ActReqCnfID_Oth (ActChgNumRowFooGrp+119)
#define ActReqCnfID_Std (ActChgNumRowFooGrp+120)
#define ActReqCnfID_Tch (ActChgNumRowFooGrp+121)
#define ActCnfID_Oth (ActChgNumRowFooGrp+122)
#define ActCnfID_Std (ActChgNumRowFooGrp+123)
#define ActCnfID_Tch (ActChgNumRowFooGrp+124)
#define ActFrmIDsOth (ActChgNumRowFooGrp+124)
#define ActFrmIDsStd (ActChgNumRowFooGrp+125)
#define ActFrmIDsTch (ActChgNumRowFooGrp+126)
#define ActRemID_Oth (ActChgNumRowFooGrp+127)
#define ActRemID_Std (ActChgNumRowFooGrp+128)
#define ActRemID_Tch (ActChgNumRowFooGrp+129)
#define ActNewID_Oth (ActChgNumRowFooGrp+130)
#define ActNewID_Std (ActChgNumRowFooGrp+131)
#define ActNewID_Tch (ActChgNumRowFooGrp+132)
#define ActFrmPwdOth (ActChgNumRowFooGrp+133)
#define ActFrmPwdStd (ActChgNumRowFooGrp+134)
#define ActFrmPwdTch (ActChgNumRowFooGrp+135)
#define ActChgPwdOth (ActChgNumRowFooGrp+136)
#define ActChgPwdStd (ActChgNumRowFooGrp+137)
#define ActChgPwdTch (ActChgNumRowFooGrp+138)
#define ActFrmMaiOth (ActChgNumRowFooGrp+139)
#define ActFrmMaiStd (ActChgNumRowFooGrp+140)
#define ActFrmMaiTch (ActChgNumRowFooGrp+141)
#define ActRemMaiOth (ActChgNumRowFooGrp+142)
#define ActRemMaiStd (ActChgNumRowFooGrp+143)
#define ActRemMaiTch (ActChgNumRowFooGrp+144)
#define ActNewMaiOth (ActChgNumRowFooGrp+145)
#define ActNewMaiStd (ActChgNumRowFooGrp+146)
#define ActNewMaiTch (ActChgNumRowFooGrp+147)
#define ActFrmIDsOth (ActChgNumRowFooGrp+125)
#define ActFrmIDsStd (ActChgNumRowFooGrp+126)
#define ActFrmIDsTch (ActChgNumRowFooGrp+127)
#define ActRemID_Oth (ActChgNumRowFooGrp+128)
#define ActRemID_Std (ActChgNumRowFooGrp+129)
#define ActRemID_Tch (ActChgNumRowFooGrp+130)
#define ActNewID_Oth (ActChgNumRowFooGrp+131)
#define ActNewID_Std (ActChgNumRowFooGrp+132)
#define ActNewID_Tch (ActChgNumRowFooGrp+133)
#define ActFrmPwdOth (ActChgNumRowFooGrp+134)
#define ActFrmPwdStd (ActChgNumRowFooGrp+135)
#define ActFrmPwdTch (ActChgNumRowFooGrp+136)
#define ActChgPwdOth (ActChgNumRowFooGrp+137)
#define ActChgPwdStd (ActChgNumRowFooGrp+138)
#define ActChgPwdTch (ActChgNumRowFooGrp+139)
#define ActFrmMaiOth (ActChgNumRowFooGrp+140)
#define ActFrmMaiStd (ActChgNumRowFooGrp+141)
#define ActFrmMaiTch (ActChgNumRowFooGrp+142)
#define ActRemMaiOth (ActChgNumRowFooGrp+143)
#define ActRemMaiStd (ActChgNumRowFooGrp+144)
#define ActRemMaiTch (ActChgNumRowFooGrp+145)
#define ActNewMaiOth (ActChgNumRowFooGrp+146)
#define ActNewMaiStd (ActChgNumRowFooGrp+147)
#define ActNewMaiTch (ActChgNumRowFooGrp+148)
#define ActRemStdCrs (ActChgNumRowFooGrp+148)
#define ActRemTchCrs (ActChgNumRowFooGrp+149)
#define ActRemUsrGbl (ActChgNumRowFooGrp+150)
#define ActRemStdCrs (ActChgNumRowFooGrp+149)
#define ActRemTchCrs (ActChgNumRowFooGrp+150)
#define ActRemUsrGbl (ActChgNumRowFooGrp+151)
#define ActReqRemAllStdCrs (ActChgNumRowFooGrp+151)
#define ActRemAllStdCrs (ActChgNumRowFooGrp+152)
#define ActReqRemAllStdCrs (ActChgNumRowFooGrp+152)
#define ActRemAllStdCrs (ActChgNumRowFooGrp+153)
#define ActReqRemOldUsr (ActChgNumRowFooGrp+153)
#define ActRemOldUsr (ActChgNumRowFooGrp+154)
#define ActReqRemOldUsr (ActChgNumRowFooGrp+154)
#define ActRemOldUsr (ActChgNumRowFooGrp+155)
#define ActLstDupUsr (ActChgNumRowFooGrp+155)
#define ActLstSimUsr (ActChgNumRowFooGrp+156)
#define ActRemDupUsr (ActChgNumRowFooGrp+157)
#define ActLstDupUsr (ActChgNumRowFooGrp+156)
#define ActLstSimUsr (ActChgNumRowFooGrp+157)
#define ActRemDupUsr (ActChgNumRowFooGrp+158)
#define ActLstClk (ActChgNumRowFooGrp+158)
#define ActLstClk (ActChgNumRowFooGrp+159)
/*****************************************************************************/
/******************************** Social tab *********************************/
@ -1379,9 +1380,9 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
#define ActReqSndNewPwd (ActSeeMyUsgRep+10)
#define ActSndNewPwd (ActSeeMyUsgRep+11)
#define ActLogOut (ActSeeMyUsgRep+12)
#define ActAutUsrInt (ActSeeMyUsgRep+13)
#define ActAutUsrNew (ActSeeMyUsgRep+14)
#define ActAutUsrChgLan (ActSeeMyUsgRep+15)
#define ActLogIn (ActSeeMyUsgRep+13)
#define ActLogInNew (ActSeeMyUsgRep+14)
#define ActLogInLan (ActSeeMyUsgRep+15)
#define ActAnnSee (ActSeeMyUsgRep+16)
#define ActChgMyRol (ActSeeMyUsgRep+17)
#define ActFrmNewEvtMyAgd (ActSeeMyUsgRep+18)

View File

@ -100,13 +100,16 @@ static void Agd_UpdateEvent (struct AgendaEvent *AgdEvent,const char *Txt);
void Agd_PutFormLogInToShowUsrAgenda (void)
{
/***** Get encrypted user code from user code *****/
Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat);
/***** Form to log in *****/
/* Put the form to log in always, even if user does not exist,
to not give clues about whether a user exists or not */
Usr_WriteFormLogin (ActLogInUsrAgd,Usr_PutParamOtherUsrCodEncrypted);
Usr_WriteFormLogin (ActLogInUsrAgd,Agd_PutParamAgd);
}
void Agd_PutParamAgd (void)
{
char Nickname[Nck_MAX_BYTES_NICKNAME_WITH_ARROBA+1];
sprintf (Nickname,"@%s",Gbl.Usrs.Other.UsrDat.Nickname);
Par_PutHiddenParamString ("agd",Nickname);
}
/*****************************************************************************/
@ -115,15 +118,27 @@ void Agd_PutFormLogInToShowUsrAgenda (void)
void Agd_ShowUsrAgendaAfterLogIn (void)
{
extern const unsigned Txt_Current_CGI_SWAD_Language;
extern const char *Txt_User_not_found_or_you_do_not_have_permission_;
extern const char *Txt_Switching_to_LANGUAGE[1+Txt_NUM_LANGUAGES];
/***** Get user *****/
/* User code is already got */
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat)) // Existing user
/***** Show all the visible events in the user's agenda *****/
Agd_ShowEvents (Agd_USR_AGENDA);
else
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
if (Gbl.Usrs.Me.Logged)
{
if (Gbl.Usrs.Me.UsrDat.Prefs.Language == Txt_Current_CGI_SWAD_Language)
{
/***** Get user *****/
/* If nickname is correct, user code is already got from nickname */
if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat)) // Existing user
/***** Show all the visible events in the user's agenda *****/
Agd_ShowEvents (Agd_USR_AGENDA);
else
Lay_ShowAlert (Lay_WARNING,Txt_User_not_found_or_you_do_not_have_permission_);
}
else
/* The current language is not my preferred language
==> change automatically to my language */
Lay_ShowAlert (Lay_INFO,Txt_Switching_to_LANGUAGE[Gbl.Usrs.Me.UsrDat.Prefs.Language]);
}
}
/*****************************************************************************/

View File

@ -75,6 +75,8 @@ typedef enum
/*****************************************************************************/
void Agd_PutFormLogInToShowUsrAgenda (void);
void Agd_PutParamAgd (void);
void Agd_ShowUsrAgendaAfterLogIn (void);
void Agd_ShowUsrAgenda (void);
void Agd_ShowMyAgenda (void);

View File

@ -179,19 +179,21 @@
// TODO: When teacher sees "No hay estudiantes", put a button to add students
// TODO: When admin sees "No hay profesores", put a button to add teachers
// TODO: Al entrar sin identificar a ver una agenda, por ejemplo, https://localhost/swad/pt?agd=@rms, el idioma cambia ¿?
/*****************************************************************************/
/****************************** Public constants *****************************/
/*****************************************************************************/
#define Log_PLATFORM_VERSION "SWAD 16.86.11 (2016-12-05)"
#define Log_PLATFORM_VERSION "SWAD 16.87 (2016-12-05)"
#define CSS_FILE "swad16.86.5.css"
#define JS_FILE "swad16.84.2.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.87: Dec 05, 2016 Change language after log in to view another user's public agenda. (209952 lines)
1 change necessary in database:
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1616','es','N','Cambiar idioma para ver agenda otro usuario');
Version 16.86.11: Dec 05, 2016 Link to QR in user's agenda. (209908 lines)
Version 16.86.10: Dec 05, 2016 Code refactoring related to user's QR (nickname). (209904 lines)
Version 16.86.9: Dec 05, 2016 Link to QR in user's agenda. Not finished. (209889 lines)

View File

@ -264,8 +264,8 @@ void Con_GetAndShowLastClicks (void)
/* Use a special color for this row depending on the action */
ClassRow = (Act_Actions[Act_FromActCodToAction[ActCod]].BrowserWindow == Act_DOWNLD_FILE) ? "DAT_SMALL_YELLOW LEFT_MIDDLE" :
(ActCod == Act_Actions[ActAutUsrInt].ActCod ||
ActCod == Act_Actions[ActAutUsrNew].ActCod) ? "DAT_SMALL_GREEN" :
(ActCod == Act_Actions[ActLogIn].ActCod ||
ActCod == Act_Actions[ActLogInNew].ActCod) ? "DAT_SMALL_GREEN" :
(ActCod == Act_Actions[ActLogOut].ActCod ) ? "DAT_SMALL_RED" :
(ActCod == Act_Actions[ActWebSvc].ActCod ) ? "DAT_SMALL_BLUE" :
"DAT_SMALL_GREY";

View File

@ -334,9 +334,9 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void)
{
if (Gbl.Usrs.Me.IBelongToCurrentCrs) // I belong to this course
{
if (Gbl.Action.Act != ActAutUsrInt &&
Gbl.Action.Act != ActAutUsrNew &&
Gbl.Action.Act != ActAutUsrChgLan) // I am not just logged
if (Gbl.Action.Act != ActLogIn &&
Gbl.Action.Act != ActLogInNew &&
Gbl.Action.Act != ActLogInLan) // I am not just logged
{
/* Request my removing from this course */
sprintf (Gbl.Title,Txt_Remove_me_from_the_course_X,

View File

@ -79,7 +79,9 @@ static void Lay_WriteEndOfPage (void);
static void Lay_WritePageTitle (void);
static void Lay_WriteRedirectionToMyLanguage (void);
static void Lay_WriteRedirToMyLangOnLogIn (void);
static void Lay_WriteRedirToMyLangOnViewUsrAgd (void);
static void Lay_WriteScripts (void);
static void Lay_WriteScriptInit (void);
static void Lay_WriteScriptParamsAJAX (void);
@ -220,11 +222,15 @@ void Lay_WriteStartOfPage (void)
Cfg_URL_SWAD_PUBLIC);
/* Redirect to correct language */
if ((Gbl.Action.Act == ActAutUsrInt ||
Gbl.Action.Act == ActAutUsrNew) && // Action is log in
Gbl.Usrs.Me.Logged && // I am just logged
if (Gbl.Usrs.Me.Logged && // I am logged
Gbl.Usrs.Me.UsrDat.Prefs.Language != Txt_Current_CGI_SWAD_Language) // My language != current language
Lay_WriteRedirectionToMyLanguage ();
{
if (Gbl.Action.Act == ActLogIn || // Regular log in
Gbl.Action.Act == ActLogInNew) // Log in when checking account
Lay_WriteRedirToMyLangOnLogIn ();
else if (Gbl.Action.Act == ActLogInUsrAgd) // Log in to view another user's public agenda
Lay_WriteRedirToMyLangOnViewUsrAgd ();
}
/* Write initial scripts depending on the action */
Lay_WriteScripts ();
@ -321,9 +327,9 @@ void Lay_WriteStartOfPage (void)
Gbl.Layout.HTMLStartWritten = true;
/* Write new year greeting */
if (Gbl.Action.Act == ActAutUsrInt ||
Gbl.Action.Act == ActAutUsrNew ||
Gbl.Action.Act == ActAutUsrChgLan)
if (Gbl.Action.Act == ActLogIn ||
Gbl.Action.Act == ActLogInNew ||
Gbl.Action.Act == ActLogInLan)
if (Gbl.Now.Date.Month == 1 &&
Gbl.Now.Date.Day == 1)
{
@ -395,7 +401,7 @@ static void Lay_WritePageTitle (void)
/************* Write script and meta to redirect to my language **************/
/*****************************************************************************/
static void Lay_WriteRedirectionToMyLanguage (void)
static void Lay_WriteRedirToMyLangOnLogIn (void)
{
extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS];
extern const char *Txt_STR_LANG_ID[1+Txt_NUM_LANGUAGES];
@ -404,10 +410,24 @@ static void Lay_WriteRedirectionToMyLanguage (void)
" content=\"0; url='%s/%s?act=%ld&amp;ses=%s'\">",
Cfg_URL_SWAD_CGI,
Txt_STR_LANG_ID[Gbl.Usrs.Me.UsrDat.Prefs.Language],
Act_Actions[ActAutUsrChgLan].ActCod,
Act_Actions[ActLogInLan].ActCod,
Gbl.Session.Id);
}
static void Lay_WriteRedirToMyLangOnViewUsrAgd (void)
{
extern struct Act_Actions Act_Actions[Act_NUM_ACTIONS];
extern const char *Txt_STR_LANG_ID[1+Txt_NUM_LANGUAGES];
fprintf (Gbl.F.Out,"<meta http-equiv=\"refresh\""
" content=\"0; url='%s/%s?act=%ld&amp;ses=%s&amp;agd=@%s'\">",
Cfg_URL_SWAD_CGI,
Txt_STR_LANG_ID[Gbl.Usrs.Me.UsrDat.Prefs.Language],
Act_Actions[ActLogInUsrAgdLan].ActCod,
Gbl.Session.Id,
Gbl.Usrs.Other.UsrDat.Nickname);
}
/*****************************************************************************/
/************ Write some scripts depending on the current action *************/
/*****************************************************************************/
@ -984,8 +1004,8 @@ static void Lay_ShowRightColumn (void)
/***** SWADroid advertisement *****/
if (!Gbl.Usrs.Me.Logged ||
Gbl.Action.Act == ActAutUsrInt ||
Gbl.Action.Act == ActAutUsrNew)
Gbl.Action.Act == ActLogIn ||
Gbl.Action.Act == ActLogInNew)
fprintf (Gbl.F.Out,"<div class=\"LEFT_RIGHT_CELL\">"
"<a href=\"https://play.google.com/store/apps/details?id=es.ugr.swad.swadroid\""
" target=\"_blank\" title=\"%s\">"

View File

@ -1732,7 +1732,7 @@ void Mai_ConfirmEmail (void)
Lay_ShowAlert (Lay_WARNING,Txt_Failed_email_confirmation_key);
/***** Form to log in *****/
Usr_WriteFormLogin (ActAutUsrInt,NULL);
Usr_WriteFormLogin (ActLogIn,NULL);
}
/*****************************************************************************/

View File

@ -115,7 +115,6 @@ int main (int argc, char *argv[])
Par_CreateListOfParams ();
Par_GetMainParameters ();
Hie_InitHierarchy ();
if (!Gbl.WebService.IsWebService)
{
/***** Create file for HTML output *****/

View File

@ -32,7 +32,7 @@
#include "swad_action.h"
#include "swad_config.h"
#include "swad_database.h" // TODO: REMOVE !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
#include "swad_global.h"
#include "swad_parameter.h"
#include "swad_password.h"
@ -677,10 +677,14 @@ void Par_GetMainParameters (void)
{
if (Nickname[0])
{
/* Set another user's nickname */
Str_RemoveLeadingArrobas (Nickname);
strcpy (Gbl.Usrs.Other.UsrDat.Nickname,Nickname); // without arroba
// This user's code is used to go to public profile
// and to refresh old publishings in user's timeline
// If user does not exist ==> UsrCod = -1
Gbl.Usrs.Other.UsrDat.UsrCod = Nck_GetUsrCodFromNickname (Nickname);
Gbl.Usrs.Other.UsrDat.UsrCod = Nck_GetUsrCodFromNickname (Gbl.Usrs.Other.UsrDat.Nickname);
Gbl.Action.Act = ActSeePubPrf; // Set default action if no other is specified
}
}
@ -688,9 +692,13 @@ void Par_GetMainParameters (void)
{
if (Nickname[0])
{
/* Set another user's nickname */
Str_RemoveLeadingArrobas (Nickname);
strcpy (Gbl.Usrs.Other.UsrDat.Nickname,Nickname); // without arroba
// This user's code is used to go to public agenda
// If user does not exist ==> UsrCod = -1
Gbl.Usrs.Other.UsrDat.UsrCod = Nck_GetUsrCodFromNickname (Nickname);
Gbl.Usrs.Other.UsrDat.UsrCod = Nck_GetUsrCodFromNickname (Gbl.Usrs.Other.UsrDat.Nickname);
Gbl.Action.Act = ActFrmLogInUsrAgd; // Set default action if no other is specified
}
}
@ -720,9 +728,6 @@ void Par_GetMainParameters (void)
Gbl.Action.Act == ActRefOldSocPubGbl ||
Gbl.Action.Act == ActRefOldSocPubUsr)
Gbl.Action.UsesAJAX = true;
else if (Gbl.Action.Act == ActLogInUsrAgd)
// It's necessary to do this here when log in to view user's agenda fails
Usr_GetParamOtherUsrCodEncrypted (&Gbl.Usrs.Other.UsrDat);
/***** Get session identifier, if exists *****/
Par_GetParToText ("ses",Gbl.Session.Id,Ses_LENGTH_SESSION_ID);
@ -757,7 +762,7 @@ void Par_GetMainParameters (void)
/***** Get user password and login *****/
switch (Gbl.Action.Act)
{
case ActAutUsrInt:
case ActLogIn:
case ActFrmLogInUsrAgd:
case ActLogInUsrAgd: // This action is necessary here when log in fails
Pwd_GetParamUsrPwdLogin ();

View File

@ -1683,7 +1683,7 @@ bool Usr_ChkIfEncryptedUsrCodExists (const char *EncryptedUsrCod)
void Usr_WriteLandingPage (void)
{
/***** Form to log in *****/
Usr_WriteFormLogin (ActAutUsrInt,NULL);
Usr_WriteFormLogin (ActLogIn,NULL);
/***** Form to go to request the creation of a new account *****/
Acc_ShowFormGoToRequestNewAccount ();
@ -1714,7 +1714,7 @@ void Usr_Logout (void)
Lay_ShowAlert (Lay_INFO,Txt_The_session_has_been_closed);
/***** Form to log in *****/
Usr_WriteFormLogin (ActAutUsrInt,NULL);
Usr_WriteFormLogin (ActLogIn,NULL);
/***** Advertisement about mobile app *****/
Lay_AdvertisementMobile ();
@ -1872,7 +1872,9 @@ void Usr_WelcomeUsr (void)
/***** Show the global announcements I have not seen *****/
Ann_ShowMyAnnouncementsNotMarkedAsSeen ();
}
else // The current language is not my preferred language ==> change automatically to my language
else
/* The current language is not my preferred language
==> change automatically to my language */
Lay_ShowAlert (Lay_INFO,Txt_Switching_to_LANGUAGE[Gbl.Usrs.Me.UsrDat.Prefs.Language]);
}
}
@ -2210,7 +2212,7 @@ void Usr_ChkUsrAndGetUsrData (void)
} FormLogin =
{
false,
ActAutUsrInt,
ActLogIn,
NULL
};
Act_Action_t Action;
@ -2268,7 +2270,7 @@ void Usr_ChkUsrAndGetUsrData (void)
else
FormLogin.PutForm = true;
}
else if (Gbl.Action.Act == ActAutUsrInt ||
else if (Gbl.Action.Act == ActLogIn ||
Gbl.Action.Act == ActLogInUsrAgd) // Login using @nickname, email or ID from form
{
if (Usr_ChkUsrAndGetUsrDataFromDirectLogin ()) // User logged in
@ -2287,11 +2289,11 @@ void Usr_ChkUsrAndGetUsrData (void)
if (Gbl.Action.Act == ActLogInUsrAgd)
{
FormLogin.Action = ActLogInUsrAgd;
FormLogin.FuncParams = Usr_PutParamOtherUsrCodEncrypted;
FormLogin.FuncParams = Agd_PutParamAgd;
}
}
}
else if (Gbl.Action.Act == ActAutUsrNew) // Empty account without password, login using encrypted user's code
else if (Gbl.Action.Act == ActLogInNew) // Empty account without password, login using encrypted user's code
{
/***** Get user's data *****/
Usr_GetParamOtherUsrCodEncrypted (&Gbl.Usrs.Me.UsrDat);
@ -2588,8 +2590,8 @@ static void Usr_SetUsrRoleAndPrefs (void)
/***** Get my last data *****/
Usr_GetMyLastData ();
if (Gbl.Action.Act == ActAutUsrInt ||
Gbl.Action.Act == ActAutUsrNew) // If I just logged in...
if (Gbl.Action.Act == ActLogIn ||
Gbl.Action.Act == ActLogInNew) // If I just logged in...
{
/***** WhatToSearch is stored in session,
but in login it is got from user's last data *****/