diff --git a/swad_API.c b/swad_API.c index c1c0398cc..1308a46e8 100644 --- a/swad_API.c +++ b/swad_API.c @@ -264,7 +264,7 @@ static void API_CopyListUsers (struct soap *soap, struct swad__getUsersOutput *getUsersOut); static void API_CopyUsrData (struct soap *soap, struct swad__user *Usr,struct Usr_Data *UsrDat, - Usr_ICan_t ICanSeeUsrID); + Usr_Can_t ICanSeeUsrID); static void API_GetListGrpsInAttendanceEventFromDB (struct soap *soap, long AttCod,char **ListGroups); @@ -1743,7 +1743,7 @@ static void API_CopyListUsers (struct soap *soap, unsigned NumUsrs; unsigned NumUsr; struct Usr_Data UsrDat; - Usr_ICan_t ICanSeeUsrID; + Usr_Can_t ICanSeeUsrID; /***** Initialize result *****/ getUsersOut->numUsers = 0; @@ -2191,7 +2191,7 @@ int swad__sendMyGroups (struct soap *soap, static void API_CopyUsrData (struct soap *soap, struct swad__user *Usr,struct Usr_Data *UsrDat, - Usr_ICan_t ICanSeeUsrID) + Usr_Can_t ICanSeeUsrID) { char PhotoURL[Cns_MAX_BYTES_WWW + 1]; const char *FirstID; @@ -2206,7 +2206,7 @@ static void API_CopyUsrData (struct soap *soap, Str_Copy (Usr->userNickname,UsrDat->Nickname,Length); /* Copy user's first ID */ - if (ICanSeeUsrID == Usr_I_CAN && UsrDat->IDs.List) + if (ICanSeeUsrID == Usr_CAN && UsrDat->IDs.List) FirstID = UsrDat->IDs.List[0].ID; else // Hide user's ID FirstID = "********"; @@ -3262,7 +3262,7 @@ int swad__sendMessage (struct soap *soap, API_CopyUsrData (soap, &(sendMessageOut->usersArray.__ptr[NumUsr]), &Gbl.Usrs.Other.UsrDat, - Usr_I_CAN_NOT); + Usr_CAN_NOT); } } } @@ -4394,7 +4394,7 @@ int swad__getMatchStatus (struct soap *soap, "Requester must be a student in the course"); /***** Can I play this match? *****/ - if (Mch_CheckIfICanPlayThisMatchBasedOnGrps (&Match) == Usr_I_CAN_NOT) + if (Mch_CheckIfICanPlayThisMatchBasedOnGrps (&Match) == Usr_CAN_NOT) return soap_receiver_fault (soap, "Request forbidden", "Requester can not join this match"); @@ -4697,7 +4697,7 @@ int swad__getDirectoryTree (struct soap *soap, /* Get directory tree into XML file */ XML_WriteStartFile (XML,"tree",false); - if (Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Brw_IS_FOLDER, + if (Brw_CheckIfFileOrFolderIsHiddenOrVisible (Brw_IS_FOLDER, Gbl.FileBrowser.FilFolLnk.Full) == HidVis_VISIBLE) API_ListDir (XML,1, Gbl.FileBrowser.Path.RootFolder, @@ -4811,7 +4811,7 @@ static bool API_WriteRowFileBrowser (FILE *XML,unsigned Level, /***** Is this row hidden or visible? *****/ if (Gbl.FileBrowser.Type == Brw_SHOW_DOC_CRS || Gbl.FileBrowser.Type == Brw_SHOW_DOC_GRP) - if (Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (FileType, + if (Brw_CheckIfFileOrFolderIsHiddenOrVisible (FileType, Gbl.FileBrowser.FilFolLnk.Full) == HidVis_HIDDEN) return false; @@ -5263,7 +5263,7 @@ int swad__getLastLocation (struct soap *soap, */ switch (Roo_DB_CheckIfICanSeeUsrLocation ((long) userCode)) { - case Usr_I_CAN: + case Usr_CAN: /***** Get list of locations *****/ NumLocs = Roo_DB_GetUsrLastLocation (&mysql_res,(long) userCode); API_GetLocationData (soap, @@ -5271,7 +5271,7 @@ int swad__getLastLocation (struct soap *soap, &(getLastLocationOut->checkinTime), // Get check in time &mysql_res,NumLocs); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: /* I can not see user's location ==> reset output */ API_ResetLocation (soap, &(getLastLocationOut->location)); diff --git a/swad_ID.c b/swad_ID.c index 4f4fa1fc7..94f3789cb 100644 --- a/swad_ID.c +++ b/swad_ID.c @@ -308,12 +308,12 @@ static bool ID_CheckIfUsrIDIsValidUsingMinDigits (const char *UsrID,unsigned Min void ID_WriteUsrIDs (struct Usr_Data *UsrDat,const char *Anchor) { unsigned NumID; - Usr_ICan_t ICanSeeUsrID = ID_ICanSeeOtherUsrIDs (UsrDat); - Usr_ICan_t ICanConfirmUsrID = (ICanSeeUsrID == Usr_I_CAN && + Usr_Can_t ICanSeeUsrID = ID_ICanSeeOtherUsrIDs (UsrDat); + Usr_Can_t ICanConfirmUsrID = (ICanSeeUsrID == Usr_CAN && Usr_ItsMe (UsrDat->UsrCod) == Usr_OTHER && // Not me !Frm_CheckIfInside () && // Not inside another form - Act_GetBrowserTab (Gbl.Action.Act) == Act_1ST_TAB) ? Usr_I_CAN : // Only in main browser tab - Usr_I_CAN_NOT; + Act_GetBrowserTab (Gbl.Action.Act) == Act_1ST_TAB) ? Usr_CAN : // Only in main browser tab + Usr_CAN_NOT; for (NumID = 0; NumID < UsrDat->IDs.Num; @@ -330,10 +330,10 @@ void ID_WriteUsrIDs (struct Usr_Data *UsrDat,const char *Anchor) The_GetSuffix ()); switch (ICanSeeUsrID) { - case Usr_I_CAN: + case Usr_CAN: HTM_Txt (UsrDat->IDs.List[NumID].ID); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: HTM_Txt ("********"); break; @@ -341,7 +341,7 @@ void ID_WriteUsrIDs (struct Usr_Data *UsrDat,const char *Anchor) HTM_SPAN_End (); /* Put link to confirm ID? */ - if (ICanConfirmUsrID == Usr_I_CAN && + if (ICanConfirmUsrID == Usr_CAN && !UsrDat->IDs.List[NumID].Confirmed) ID_PutLinkToConfirmID (UsrDat,NumID,Anchor); } @@ -351,11 +351,11 @@ void ID_WriteUsrIDs (struct Usr_Data *UsrDat,const char *Anchor) /***************** Check if I can see another user's IDs *********************/ /*****************************************************************************/ -Usr_ICan_t ID_ICanSeeOtherUsrIDs (const struct Usr_Data *UsrDat) +Usr_Can_t ID_ICanSeeOtherUsrIDs (const struct Usr_Data *UsrDat) { /***** Fast check: It's me? *****/ if (Usr_ItsMe (UsrDat->UsrCod) == Usr_ME) - return Usr_I_CAN; + return Usr_CAN; /***** Check if I have permission to see another user's IDs *****/ switch (Gbl.Usrs.Me.Role.Logged) @@ -364,12 +364,12 @@ Usr_ICan_t ID_ICanSeeOtherUsrIDs (const struct Usr_Data *UsrDat) case Rol_TCH: /* Check 1: I can see the IDs of users who do not exist in database */ if (UsrDat->UsrCod <= 0) // User does not exist (when creating a new user) - return Usr_I_CAN; + return Usr_CAN; /* Check 2: I can see the IDs of confirmed students */ if (UsrDat->Roles.InCurrentCrs == Rol_STD && // A student UsrDat->Accepted) // who accepted registration - return Usr_I_CAN; + return Usr_CAN; /* Check 3: I can see the IDs of users with user's data empty */ // This check is made to not view simultaneously: @@ -380,16 +380,16 @@ Usr_ICan_t ID_ICanSeeOtherUsrIDs (const struct Usr_Data *UsrDat) !UsrDat->Surname2[0] && // and who has no surname 2 (nobody filled user's surname 2) !UsrDat->FrstName[0] && // and who has no first name (nobody filled user's first name) !UsrDat->Email[0]) // and who has no email (nobody filled user's email) - return Usr_I_CAN; + return Usr_CAN; - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; case Rol_DEG_ADM: case Rol_CTR_ADM: case Rol_INS_ADM: case Rol_SYS_ADM: return Usr_CheckIfICanEditOtherUsr (UsrDat); default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -700,7 +700,7 @@ void ID_RemoveOtherUsrID (void) if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Usr_CheckIfICanEditOtherUsr (&Gbl.Usrs.Other.UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Remove user's ID *****/ ID_RemoveUsrID (&Gbl.Usrs.Other.UsrDat, Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod)); @@ -711,7 +711,7 @@ void ID_RemoveOtherUsrID (void) /***** Show form again *****/ Acc_ShowFormChgOtherUsrAccount (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -729,11 +729,11 @@ static void ID_RemoveUsrID (const struct Usr_Data *UsrDat,Usr_MeOrOther_t MeOrOt extern const char *Txt_ID_X_removed; extern const char *Txt_You_can_not_delete_this_ID; char UsrID[ID_MAX_BYTES_USR_ID + 1]; - Usr_ICan_t ICanRemove = Usr_I_CAN_NOT; + Usr_Can_t ICanRemove = Usr_CAN_NOT; switch (Usr_CheckIfICanEditOtherUsr (UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Get user's ID from form *****/ Par_GetParText ("UsrID",UsrID,ID_MAX_BYTES_USR_ID); // Users' IDs are always stored internally in capitals and without leading zeros @@ -745,17 +745,17 @@ static void ID_RemoveUsrID (const struct Usr_Data *UsrDat,Usr_MeOrOther_t MeOrOt { case Usr_ME: // I can remove my ID only if it is not confirmed - ICanRemove = ID_DB_CheckIfConfirmed (UsrDat->UsrCod,UsrID) ? Usr_I_CAN_NOT : - Usr_I_CAN; + ICanRemove = ID_DB_CheckIfConfirmed (UsrDat->UsrCod,UsrID) ? Usr_CAN_NOT : + Usr_CAN; break; case Usr_OTHER: - ICanRemove = Usr_I_CAN; + ICanRemove = Usr_CAN; break; } switch (ICanRemove) { - case Usr_I_CAN: + case Usr_CAN: /***** Remove one of the user's IDs *****/ ID_DB_RemoveUsrID (UsrDat->UsrCod,UsrID); @@ -763,14 +763,14 @@ static void ID_RemoveUsrID (const struct Usr_Data *UsrDat,Usr_MeOrOther_t MeOrOt Ale_CreateAlert (Ale_SUCCESS,ID_ID_SECTION_ID, Txt_ID_X_removed,UsrID); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_CreateAlert (Ale_WARNING,ID_ID_SECTION_ID, Txt_You_can_not_delete_this_ID); break; } break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_CreateAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -803,7 +803,7 @@ void ID_ChangeOtherUsrID (void) if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Usr_CheckIfICanEditOtherUsr (&Gbl.Usrs.Other.UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Change user's ID *****/ ID_ChangeUsrID (&Gbl.Usrs.Other.UsrDat, Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod)); @@ -814,7 +814,7 @@ void ID_ChangeOtherUsrID (void) /***** Show form again *****/ Acc_ShowFormChgOtherUsrAccount (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -841,7 +841,7 @@ static void ID_ChangeUsrID (const struct Usr_Data *UsrDat,Usr_MeOrOther_t MeOrOt switch (Usr_CheckIfICanEditOtherUsr (UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Get new user's ID from form *****/ Par_GetParText ("NewID",NewID,ID_MAX_BYTES_USR_ID); // Users' IDs are always stored internally in capitals and without leading zeros @@ -897,7 +897,7 @@ static void ID_ChangeUsrID (const struct Usr_Data *UsrDat,Usr_MeOrOther_t MeOrOt Txt_The_ID_X_is_not_valid, NewID); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_CreateAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -913,7 +913,7 @@ void ID_ConfirmOtherUsrID (void) extern const char *Txt_ID_X_had_already_been_confirmed; extern const char *Txt_The_ID_X_has_been_confirmed; char UsrID[ID_MAX_BYTES_USR_ID + 1]; - Usr_ICan_t ICanConfirm; + Usr_Can_t ICanConfirm; bool Found; unsigned NumID; unsigned NumIDFound = 0; // Initialized to avoid warning @@ -922,7 +922,7 @@ void ID_ConfirmOtherUsrID (void) Gbl.Action.Original = Act_GetActionFromActCod (ParCod_GetPar (ParCod_OrgAct)); /***** Get other user's code from form and get user's data *****/ - ICanConfirm = Usr_I_CAN_NOT; + ICanConfirm = Usr_CAN_NOT; if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) if (Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod) == Usr_OTHER) // Not me { @@ -932,13 +932,13 @@ void ID_ConfirmOtherUsrID (void) if (Gbl.Usrs.Other.UsrDat.Roles.InCurrentCrs == Rol_STD) Gbl.Usrs.Other.UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Other.UsrDat); - if (ID_ICanSeeOtherUsrIDs (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) - ICanConfirm = Usr_I_CAN; + if (ID_ICanSeeOtherUsrIDs (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) + ICanConfirm = Usr_CAN; } switch (ICanConfirm) { - case Usr_I_CAN: + case Usr_CAN: /***** Get user's ID from form *****/ Par_GetParText ("UsrID",UsrID,ID_MAX_BYTES_USR_ID); // Users' IDs are always stored internally in capitals and without leading zeros @@ -977,7 +977,7 @@ void ID_ConfirmOtherUsrID (void) else // User's ID not found Ale_CreateAlertUserNotFoundOrYouDoNotHavePermission (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_CreateAlertUserNotFoundOrYouDoNotHavePermission (); break; diff --git a/swad_ID.h b/swad_ID.h index 816b6c4a8..1d2867d5b 100644 --- a/swad_ID.h +++ b/swad_ID.h @@ -70,7 +70,7 @@ bool ID_CheckIfUsrIDIsValid (const char *UsrID); bool ID_CheckIfUsrIDSeemsAValidID (const char *UsrID); void ID_WriteUsrIDs (struct Usr_Data *UsrDat,const char *Anchor); -Usr_ICan_t ID_ICanSeeOtherUsrIDs (const struct Usr_Data *UsrDat); +Usr_Can_t ID_ICanSeeOtherUsrIDs (const struct Usr_Data *UsrDat); void ID_ShowFormChangeMyID (bool IShouldFillInID); void ID_ShowFormChangeOtherUsrID (void); diff --git a/swad_MFU.c b/swad_MFU.c index ac640af58..c3471ff05 100644 --- a/swad_MFU.c +++ b/swad_MFU.c @@ -112,7 +112,7 @@ void MFU_GetMFUActions (struct MFU_ListMFUActions *ListMFUActions,unsigned MaxAc ActCod = DB_GetNextCode (mysql_res); if ((Action = Act_GetActionFromActCod (ActCod)) != ActUnk) if (Act_GetIndexInMenu (Action) >= 0) // MFU actions must be only actions shown on menu (database could contain wrong action numbers) - if (Act_CheckIfICanExecuteAction (Action) == Usr_I_CAN) + if (Act_CheckIfICanExecuteAction (Action) == Usr_CAN) ListMFUActions->Actions[ListMFUActions->NumActions++] = Action; } @@ -148,7 +148,7 @@ Act_Action_t MFU_GetMyLastActionInCurrentTab (void) if (ActCod >= 0 && ActCod <= ActLst_MAX_ACTION_COD) if ((Action = Act_GetActionFromActCod (ActCod)) >= 0) if (Act_GetTab (Action) == Gbl.Action.Tab) - if (Act_CheckIfICanExecuteAction (Action) == Usr_I_CAN) + if (Act_CheckIfICanExecuteAction (Action) == Usr_CAN) { MoreRecentActionInCurrentTab = Action; break; diff --git a/swad_account.c b/swad_account.c index 546dafb3c..b8d66710d 100644 --- a/swad_account.c +++ b/swad_account.c @@ -489,7 +489,7 @@ void Acc_ShowFormChgOtherUsrAccount (void) if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Usr_CheckIfICanEditOtherUsr (&Gbl.Usrs.Other.UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Get user's nickname and email address It's necessary because nickname or email could be just updated *****/ Nck_DB_GetNicknameFromUsrCod (Gbl.Usrs.Other.UsrDat.UsrCod,Gbl.Usrs.Other.UsrDat.Nickname); @@ -517,7 +517,7 @@ void Acc_ShowFormChgOtherUsrAccount (void) /***** End container for this user *****/ HTM_DIV_End (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -532,7 +532,7 @@ void Acc_ShowFormChgOtherUsrAccount (void) void Acc_PutLinkToRemoveMyAccount (__attribute__((unused)) void *Args) { - if (Acc_CheckIfICanEliminateAccount (Gbl.Usrs.Me.UsrDat.UsrCod) == Usr_I_CAN) + if (Acc_CheckIfICanEliminateAccount (Gbl.Usrs.Me.UsrDat.UsrCod) == Usr_CAN) Lay_PutContextualLinkOnlyIcon (ActReqRemMyAcc,NULL, Acc_PutParsToRemoveMyAccount,Gbl.Usrs.Me.UsrDat.EnUsrCod, "trash.svg",Ico_RED); @@ -774,10 +774,10 @@ void Acc_GetUsrCodAndRemUsrGbl (void) if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Acc_CheckIfICanEliminateAccount (Gbl.Usrs.Other.UsrDat.UsrCod)) { - case Usr_I_CAN: + case Usr_CAN: Acc_ReqRemAccountOrRemAccount (Acc_REMOVE_USR); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Error = true; break; @@ -820,7 +820,7 @@ void Acc_ReqRemAccountOrRemAccount (Acc_ReqOrRemUsr_t RequestOrRemove) /******** Check if I can eliminate completely another user's account *********/ /*****************************************************************************/ -Usr_ICan_t Acc_CheckIfICanEliminateAccount (long UsrCod) +Usr_Can_t Acc_CheckIfICanEliminateAccount (long UsrCod) { Usr_MeOrOther_t MeOrOther = Usr_ItsMe (UsrCod); @@ -830,15 +830,15 @@ Usr_ICan_t Acc_CheckIfICanEliminateAccount (long UsrCod) { case Usr_ME: // A system admin can not eliminate him/herself - return (Gbl.Usrs.Me.Role.Available & (1 << Rol_SYS_ADM)) == 0 ? Usr_I_CAN : - Usr_I_CAN_NOT; + return ((Gbl.Usrs.Me.Role.Available & (1 << Rol_SYS_ADM)) == 0) ? Usr_CAN : + Usr_CAN_NOT; case Usr_OTHER: // Only a system admin can eliminate other's account - return Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM ? Usr_CAN : + Usr_CAN_NOT; } - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } /*****************************************************************************/ @@ -1110,7 +1110,7 @@ void Acc_PutIconToChangeUsrAccount (struct Usr_Data *UsrDat) "at.svg",Ico_BLACK); break; case Usr_OTHER: - if (Usr_CheckIfICanEditOtherUsr (UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanEditOtherUsr (UsrDat) == Usr_CAN) Lay_PutContextualLinkOnlyIcon (NextAction[UsrDat->Roles.InCurrentCrs],NULL, Rec_PutParUsrCodEncrypted,NULL, "at.svg",Ico_BLACK); diff --git a/swad_account.h b/swad_account.h index 02718cd2e..7627fc563 100644 --- a/swad_account.h +++ b/swad_account.h @@ -62,7 +62,7 @@ void Acc_AfterCreationNewAccount (void); void Acc_GetUsrCodAndRemUsrGbl (void); void Acc_ReqRemAccountOrRemAccount (Acc_ReqOrRemUsr_t RequestOrRemove); -Usr_ICan_t Acc_CheckIfICanEliminateAccount (long UsrCod); +Usr_Can_t Acc_CheckIfICanEliminateAccount (long UsrCod); void Acc_AskIfRemoveMyAccount (void); void Acc_RemoveMyAccount (void); void Acc_CompletelyEliminateAccount (struct Usr_Data *UsrDat, diff --git a/swad_action.c b/swad_action.c index f0c015776..2c3a81d16 100644 --- a/swad_action.c +++ b/swad_action.c @@ -99,12 +99,12 @@ Act_Action_t Act_GetSuperAction (Act_Action_t Action) /************* Check if I have permission to execute an action ***************/ /*****************************************************************************/ -Usr_ICan_t Act_CheckIfICanExecuteAction (Act_Action_t Action) +Usr_Can_t Act_CheckIfICanExecuteAction (Act_Action_t Action) { unsigned Permission; if ((unsigned) Action >= ActLst_NUM_ACTIONS) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; switch (Gbl.Hierarchy.Level) { @@ -124,15 +124,15 @@ Usr_ICan_t Act_CheckIfICanExecuteAction (Act_Action_t Action) Permission = ActLst_Actions[Action].PermissionDeg; break; case Hie_CRS: // Course selected - Permission = Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] ? ActLst_Actions[Action].PermissionCrsIfIBelong : - ActLst_Actions[Action].PermissionCrsIfIDontBelong; + Permission = (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG) ? ActLst_Actions[Action].PermissionCrsIfIBelong : + ActLst_Actions[Action].PermissionCrsIfIDontBelong; break; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } - return ((Permission & (1 << Gbl.Usrs.Me.Role.Logged)) != 0) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return ((Permission & (1 << Gbl.Usrs.Me.Role.Logged)) != 0) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ @@ -369,7 +369,7 @@ void Act_AdjustCurrentAction (void) } /***** If I belong to current course *****/ - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG) { /***** Adjustment 6: ------------- diff --git a/swad_action.h b/swad_action.h index 5837be509..08d45dca6 100644 --- a/swad_action.h +++ b/swad_action.h @@ -106,7 +106,7 @@ long Act_GetActCod (Act_Action_t Action); signed int Act_GetIndexInMenu (Act_Action_t Action); Tab_Tab_t Act_GetTab (Act_Action_t Action); Act_Action_t Act_GetSuperAction (Act_Action_t Action); -Usr_ICan_t Act_CheckIfICanExecuteAction (Act_Action_t Action); +Usr_Can_t Act_CheckIfICanExecuteAction (Act_Action_t Action); Act_Content_t Act_GetContentType (Act_Action_t Action); Act_BrowserTab_t Act_GetBrowserTab (Act_Action_t Action); void (*Act_GetFunctionPriori (Act_Action_t Action)) (void); diff --git a/swad_admin.c b/swad_admin.c index 64e4c6b64..c74ce629c 100644 --- a/swad_admin.c +++ b/swad_admin.c @@ -56,16 +56,16 @@ static void Adm_EffectivelyRemAdm (struct Usr_Data *UsrDat,Hie_Level_t Level); /**************** Check if I can admin another user's account ****************/ /*****************************************************************************/ -Usr_ICan_t Adm_CheckIfICanAdminOtherUsrs (void) +Usr_Can_t Adm_CheckIfICanAdminOtherUsrs (void) { - static Usr_ICan_t Adm_ICanAdminOtherUsrs[Rol_NUM_ROLES] = + static Usr_Can_t Adm_ICanAdminOtherUsrs[Rol_NUM_ROLES] = { /* Users who can admin */ - [Rol_TCH ] = Usr_I_CAN, - [Rol_DEG_ADM] = Usr_I_CAN, - [Rol_CTR_ADM] = Usr_I_CAN, - [Rol_INS_ADM] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_DEG_ADM] = Usr_CAN, + [Rol_CTR_ADM] = Usr_CAN, + [Rol_INS_ADM] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return Adm_ICanAdminOtherUsrs[Gbl.Usrs.Me.Role.Logged]; @@ -90,7 +90,7 @@ void Adm_ReqAddAdm (Hie_Level_t Level) [Hie_DEG] = ActNewAdmDeg, [Hie_CRS] = ActUnk, }; - Usr_ICan_t ICanRegister; + Usr_Can_t ICanRegister; if (Gbl.Hierarchy.Node[Level].HieCod > 0) { @@ -100,11 +100,11 @@ void Adm_ReqAddAdm (Hie_Level_t Level) /* Check if I am allowed to register user as administrator in institution/center/degree */ ICanRegister = ((Level == Hie_DEG && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) || (Level == Hie_CTR && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) || - (Level == Hie_INS && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + (Level == Hie_INS && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_CAN : + Usr_CAN_NOT; switch (ICanRegister) { - case Usr_I_CAN: + case Usr_CAN: if (Adm_DB_CheckIfUsrIsAdm (Gbl.Usrs.Other.UsrDat.UsrCod,Level)) // User is already an administrator of current institution/center/degree { Ale_ShowAlert (Ale_INFO,Txt_THE_USER_X_is_already_an_administrator_of_Y, @@ -128,7 +128,7 @@ void Adm_ReqAddAdm (Hie_Level_t Level) Btn_CREATE_BUTTON,Txt_Register_user_IN_A_COURSE_OR_DEGREE); } break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -190,7 +190,7 @@ void Adm_GetAdmsLst (Hie_Level_t Level) static void Adm_AddAdm (Hie_Level_t Level) { - Usr_ICan_t ICanRegister; + Usr_Can_t ICanRegister; if (Gbl.Hierarchy.Node[Level].HieCod > 0) { @@ -200,18 +200,18 @@ static void Adm_AddAdm (Hie_Level_t Level) /* Check if I am allowed to register user as administrator in institution/center/degree */ ICanRegister = ((Level == Hie_DEG && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) || (Level == Hie_CTR && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) || - (Level == Hie_INS && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + (Level == Hie_INS && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_CAN : + Usr_CAN_NOT; switch (ICanRegister) { - case Usr_I_CAN: + case Usr_CAN: /***** Register administrator in current institution/center/degree in database *****/ Adm_RegisterAdmin (&Gbl.Usrs.Other.UsrDat,Level); /***** Show user's record *****/ Rec_ShowSharedRecordUnmodifiable (&Gbl.Usrs.Other.UsrDat); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -308,7 +308,7 @@ static void Adm_ReqRemOrRemAdm (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr, { extern const char *Txt_THE_USER_X_is_not_an_administrator_of_Y; Usr_MeOrOther_t MeOrOther; - Usr_ICan_t ICanRemove; + Usr_Can_t ICanRemove; if (Gbl.Hierarchy.Node[Level].HieCod > 0) { @@ -320,11 +320,11 @@ static void Adm_ReqRemOrRemAdm (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr, ICanRemove = (MeOrOther == Usr_ME || (Level == Hie_DEG && Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) || (Level == Hie_CTR && Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) || - (Level == Hie_INS && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + (Level == Hie_INS && Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_CAN : + Usr_CAN_NOT; switch (ICanRemove) { - case Usr_I_CAN: + case Usr_CAN: /* Check if the other user is an admin of the current institution/center/degree */ if (Adm_DB_CheckIfUsrIsAdm (Gbl.Usrs.Other.UsrDat.UsrCod,Level)) { // The other user is an administrator of current institution/center/degree ==> ask for removing or remove her/him @@ -343,7 +343,7 @@ static void Adm_ReqRemOrRemAdm (Enr_ReqDelOrDelUsr_t ReqDelOrDelUsr, Gbl.Usrs.Other.UsrDat.FullName, Gbl.Hierarchy.Node[Level].FullName); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; diff --git a/swad_admin.h b/swad_admin.h index 7d7c64104..de284fba1 100644 --- a/swad_admin.h +++ b/swad_admin.h @@ -35,7 +35,7 @@ /****************************** Public prototypes ****************************/ /*****************************************************************************/ -Usr_ICan_t Adm_CheckIfICanAdminOtherUsrs (void); +Usr_Can_t Adm_CheckIfICanAdminOtherUsrs (void); void Adm_ReqAddAdm (Hie_Level_t Level); diff --git a/swad_agenda.c b/swad_agenda.c index 04f21c714..c00f72840 100644 --- a/swad_agenda.c +++ b/swad_agenda.c @@ -125,23 +125,23 @@ static void Agd_HideUnhideEvent (HidVis_HiddenOrVisible_t HiddenOrVisible); /******************* Check if I can view a user's agenda *********************/ /*****************************************************************************/ -Usr_ICan_t Agd_CheckIfICanViewUsrAgenda (struct Usr_Data *UsrDat) +Usr_Can_t Agd_CheckIfICanViewUsrAgenda (struct Usr_Data *UsrDat) { /***** 1. Fast check: Am I logged? *****/ if (!Gbl.Usrs.Me.Logged) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 2. Fast check: It's me? *****/ if (Usr_ItsMe (UsrDat->UsrCod) == Usr_ME) - return Usr_I_CAN; + return Usr_CAN; /***** 3. Fast check: Am I logged as system admin? *****/ if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) - return Usr_I_CAN; + return Usr_CAN; /***** 4. Slow check: Get if user shares any course with me from database *****/ - return Enr_CheckIfUsrSharesAnyOfMyCrs (UsrDat) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Enr_CheckIfUsrSharesAnyOfMyCrs (UsrDat) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ @@ -410,7 +410,7 @@ void Agd_ShowUsrAgenda (void) if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Agd_CheckIfICanViewUsrAgenda (&Gbl.Usrs.Other.UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Reset agenda context *****/ Agd_ResetAgenda (&Agenda); @@ -432,7 +432,7 @@ void Agd_ShowUsrAgenda (void) /***** End box *****/ Box_BoxEnd (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -739,18 +739,18 @@ static void Agd_PutIconsOtherPublicAgenda (void *EncryptedUsrCod) { /***** Button to view user's public profile *****/ if (Pri_CheckIfICanView (Gbl.Usrs.Other.UsrDat.BaPrfVisibility, - &Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + &Gbl.Usrs.Other.UsrDat) == Usr_CAN) Lay_PutContextualLinkOnlyIcon (ActSeeOthPubPrf,NULL, Usr_PutParOtherUsrCodEncrypted,EncryptedUsrCod, "user.svg",Ico_BLACK); /***** Button to view user's record card *****/ - if (Usr_CheckIfICanViewRecordStd (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewRecordStd (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) /* View student's records: common record card and course record card */ Lay_PutContextualLinkOnlyIcon (ActSeeRecOneStd,NULL, Usr_PutParOtherUsrCodEncrypted,EncryptedUsrCod, "address-card.svg",Ico_BLACK); - else if (Usr_CheckIfICanViewRecordTch (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + else if (Usr_CheckIfICanViewRecordTch (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) Lay_PutContextualLinkOnlyIcon (ActSeeRecOneTch,NULL, Usr_PutParOtherUsrCodEncrypted,EncryptedUsrCod, "address-card.svg",Ico_BLACK); diff --git a/swad_agenda.h b/swad_agenda.h index fb9f9998e..d6b8b5da9 100644 --- a/swad_agenda.h +++ b/swad_agenda.h @@ -101,7 +101,7 @@ typedef enum /***************************** Public prototypes *****************************/ /*****************************************************************************/ -Usr_ICan_t Agd_CheckIfICanViewUsrAgenda (struct Usr_Data *UsrDat); +Usr_Can_t Agd_CheckIfICanViewUsrAgenda (struct Usr_Data *UsrDat); void Agd_PutFormLogInToShowUsrAgenda (void); void Agd_PutParAgd (void); diff --git a/swad_assignment.c b/swad_assignment.c index e42ba4c5b..12a87fc6f 100644 --- a/swad_assignment.c +++ b/swad_assignment.c @@ -79,7 +79,7 @@ extern struct Globals Gbl; static void Asg_PutHead (struct Asg_Assignments *Assignments, Asg_OneOrMultiple_t OneOrMultiple, Vie_ViewType_t ViewType); -static Usr_ICan_t Asg_CheckIfICanCreateAssignments (void); +static Usr_Can_t Asg_CheckIfICanCreateAssignments (void); static void Asg_PutIconsListAssignments (void *Assignments); static void Asg_PutIconToCreateNewAsg (void *Assignments); static void Asg_ParsWhichGroupsToShow (void *Assignments); @@ -106,7 +106,7 @@ static void Asg_CreateAssignment (struct Asg_Assignment *Asg,const char *Txt); static void Asg_UpdateAssignment (struct Asg_Assignment *Asg,const char *Txt); static void Asg_CreateGroups (long AsgCod); static void Asg_GetAndWriteNamesOfGrpsAssociatedToAsg (struct Asg_Assignment *Asg); -static bool Asg_CheckIfIBelongToCrsOrGrpsThisAssignment (long AsgCod); +static Usr_Can_t Asg_CheckIfICanDoAsgBasedOnGroups (long AsgCod); /*****************************************************************************/ /*************************** Reset assignments *******************************/ @@ -118,8 +118,8 @@ void Asg_ResetAssignments (struct Asg_Assignments *Assignments) Assignments->Num = 0; Assignments->LstAsgCods = NULL; Assignments->SelectedOrder = Asg_ORDER_DEFAULT; - // Assignments->AsgCod = -1L; // Used as parameter in contextual links Assignments->CurrentPage = 0; + Assignments->Asg.AsgCod = -1L; // Used as parameter in contextual links Asg_ResetAssignment (&Assignments->Asg); } @@ -287,11 +287,11 @@ static void Asg_PutHead (struct Asg_Assignments *Assignments, /******************** Check if I can create assignments **********************/ /*****************************************************************************/ -static Usr_ICan_t Asg_CheckIfICanCreateAssignments (void) +static Usr_Can_t Asg_CheckIfICanCreateAssignments (void) { return (Gbl.Usrs.Me.Role.Logged == Rol_TCH || - Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ @@ -303,11 +303,11 @@ static void Asg_PutIconsListAssignments (void *Assignments) /***** Put icon to create a new assignment *****/ if (Assignments) { - if (Asg_CheckIfICanCreateAssignments () == Usr_I_CAN) + if (Asg_CheckIfICanCreateAssignments () == Usr_CAN) Asg_PutIconToCreateNewAsg (Assignments); /***** Link to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) { ((struct Asg_Assignments *) Assignments)->Asg.AsgCod = -1L; Ico_PutContextualIconToGetLink (ActReqLnkAsg,NULL, @@ -657,7 +657,7 @@ static void Asg_WriteAssignmentFolder (struct Asg_Assignment *Asg, Act_Action_t NextAction; bool ICanSendFiles = Asg->HiddenOrVisible == HidVis_VISIBLE && // It's visible (not hidden) Asg->ClosedOrOpen == CloOpe_OPEN && // It's open (inside dates) - Asg->IBelongToCrsOrGrps; // I belong to course or groups + Asg->ICanDo == Usr_CAN; // I can do (I belong to course/group) /***** Folder icon *****/ if (ViewType == Vie_VIEW && // Not print view @@ -766,7 +766,7 @@ static void Asg_PutIconsToRemEditOneAsg (struct Asg_Assignments *Assignments, Asg_PutPars,Assignments); /***** Link to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkAsg,NULL, Asg_PutPars,Assignments); /* falls through */ @@ -938,7 +938,7 @@ static void Asg_GetAssignmentDataFromRow (MYSQL_RES **mysql_res, Asg->SendWork = (Asg->Folder[0] != '\0'); /* Can I do this assignment? */ - Asg->IBelongToCrsOrGrps = Asg_CheckIfIBelongToCrsOrGrpsThisAssignment (Asg->AsgCod); + Asg->ICanDo = Asg_CheckIfICanDoAsgBasedOnGroups (Asg->AsgCod); } /***** Free structure that stores the query result *****/ @@ -953,16 +953,15 @@ static void Asg_ResetAssignment (struct Asg_Assignment *Asg) { if (Asg->AsgCod <= 0) // If > 0 ==> keep value Asg->AsgCod = -1L; - Asg->AsgCod = -1L; - Asg->HiddenOrVisible = HidVis_VISIBLE; - Asg->UsrCod = -1L; + Asg->HiddenOrVisible = HidVis_VISIBLE; + Asg->UsrCod = -1L; Asg->TimeUTC[Dat_STR_TIME] = Asg->TimeUTC[Dat_END_TIME] = (time_t) 0; - Asg->ClosedOrOpen = CloOpe_CLOSED; - Asg->Title[0] = '\0'; - Asg->SendWork = Asg_DO_NOT_SEND_WORK; - Asg->Folder[0] = '\0'; - Asg->IBelongToCrsOrGrps = false; + Asg->ClosedOrOpen = CloOpe_CLOSED; + Asg->Title[0] = '\0'; + Asg->SendWork = Asg_DONT_SEND_WORK; + Asg->Folder[0] = '\0'; + Asg->ICanDo = Usr_CAN_NOT; } /*****************************************************************************/ @@ -1178,14 +1177,14 @@ void Asg_ReqCreatOrEditAsg (void) if (ItsANewAssignment) { /* Initialize to empty assignment */ - Assignments.Asg.AsgCod = -1L; + Assignments.Asg.AsgCod = -1L; Assignments.Asg.TimeUTC[Dat_STR_TIME] = Dat_GetStartExecutionTimeUTC (); Assignments.Asg.TimeUTC[Dat_END_TIME] = Assignments.Asg.TimeUTC[Dat_STR_TIME] + (2 * 60 * 60); // +2 hours - Assignments.Asg.ClosedOrOpen = CloOpe_OPEN; - Assignments.Asg.Title[0] = '\0'; - Assignments.Asg.SendWork = Asg_DO_NOT_SEND_WORK; - Assignments.Asg.Folder[0] = '\0'; - Assignments.Asg.IBelongToCrsOrGrps = false; + Assignments.Asg.ClosedOrOpen = CloOpe_OPEN; + Assignments.Asg.Title[0] = '\0'; + Assignments.Asg.SendWork = Asg_DONT_SEND_WORK; + Assignments.Asg.Folder[0] = '\0'; + Assignments.Asg.ICanDo = Usr_CAN_NOT; } else { @@ -1403,7 +1402,7 @@ void Asg_ReceiveAssignment (void) /***** Get folder name where to send works of the assignment *****/ Par_GetParText ("Folder",Assignments.Asg.Folder,Brw_MAX_BYTES_FOLDER); Assignments.Asg.SendWork = (Assignments.Asg.Folder[0]) ? Asg_SEND_WORK : - Asg_DO_NOT_SEND_WORK; + Asg_DONT_SEND_WORK; /***** Get assignment text *****/ Par_GetParHTML ("Txt",Description,Cns_MAX_BYTES_TEXT); // Store in HTML format (not rigorous) @@ -1626,10 +1625,10 @@ void Asg_RemoveCrsAssignments (long CrsCod) } /*****************************************************************************/ -/********* Check if I belong to any of the groups of an assignment ***********/ +/*********************** Check if I can do an assignment *********************/ /*****************************************************************************/ -static bool Asg_CheckIfIBelongToCrsOrGrpsThisAssignment (long AsgCod) +static Usr_Can_t Asg_CheckIfICanDoAsgBasedOnGroups (long AsgCod) { switch (Gbl.Usrs.Me.Role.Logged) { @@ -1638,11 +1637,11 @@ static bool Asg_CheckIfIBelongToCrsOrGrpsThisAssignment (long AsgCod) case Rol_TCH: // Students and teachers can do assignments depending on groups /***** Get if I can do an assignment from database *****/ - return (Asg_DB_CheckIfICanDoAssignment (AsgCod) == Usr_I_CAN); + return Asg_DB_CheckIfICanDoAsgBasedOnGroups (AsgCod); case Rol_SYS_ADM: - return true; + return Usr_CAN; default: - return false; + return Usr_CAN_NOT; } } @@ -1704,26 +1703,26 @@ void Asg_WriteDatesAssignment (const struct Asg_Assignment *Asg) /* Check if I have permission to create a file or folder into an assignment **/ /*****************************************************************************/ -Usr_ICan_t Asg_CheckIfICanCreateIntoAssigment (const struct Asg_Assignment *Asg) +Usr_Can_t Asg_CheckIfICanCreateIntoAssigment (const struct Asg_Assignment *Asg) { - static Usr_ICan_t CloOpe_ICanCreate[CloOpe_NUM_CLOSED_OPEN] = + static Usr_Can_t CloOpe_ICanCreate[CloOpe_NUM_CLOSED_OPEN] = { - [CloOpe_CLOSED] = Usr_I_CAN_NOT, - [CloOpe_OPEN ] = Usr_I_CAN, + [CloOpe_CLOSED] = Usr_CAN_NOT, + [CloOpe_OPEN ] = Usr_CAN, }; /***** Trivial check 1: assignment is valid *****/ if (Asg->AsgCod <= 0) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** Check 2: Do not create anything in hidden assigments *****/ if (Asg->HiddenOrVisible == HidVis_HIDDEN) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** Check 3: If I do not belong to course / groups of this assignment, I can not create anything inside this assignment *****/ - if (!Asg->IBelongToCrsOrGrps) - return Usr_I_CAN_NOT; + if (Asg->ICanDo == Usr_CAN_NOT) + return Usr_CAN_NOT; /***** Check 4: Depending on my role in this course... *****/ switch (Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs) @@ -1733,9 +1732,9 @@ Usr_ICan_t Asg_CheckIfICanCreateIntoAssigment (const struct Asg_Assignment *Asg) // ...can create only inside open assignments return CloOpe_ICanCreate[Asg->ClosedOrOpen]; case Rol_TCH: // Teachers... - return Usr_I_CAN; // ...can create inside any assignment + return Usr_CAN; // ...can create inside any assignment default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } diff --git a/swad_assignment.h b/swad_assignment.h index 081a55cd5..1a1672485 100644 --- a/swad_assignment.h +++ b/swad_assignment.h @@ -42,8 +42,8 @@ #define Asg_NUM_TYPES_SEND_WORK 2 typedef enum { - Asg_DO_NOT_SEND_WORK = 0, - Asg_SEND_WORK = 1, + Asg_DONT_SEND_WORK = 0, + Asg_SEND_WORK = 1, } Asg_SendWork_t; struct Asg_Assignment @@ -56,10 +56,10 @@ struct Asg_Assignment char Title[Asg_MAX_BYTES_ASSIGNMENT_TITLE + 1]; Asg_SendWork_t SendWork; char Folder[Brw_MAX_BYTES_FOLDER + 1]; - bool IBelongToCrsOrGrps; // I can do this assignment - // (it is associated to no groups - // or, if associated to groups, - // I belong to any of the groups) + Usr_Can_t ICanDo; // I can do this assignment + // (it is associated to no groups + // or, if associated to groups, + // I belong to any of the groups) }; struct Asg_Assignments @@ -106,7 +106,7 @@ void Asg_ReceiveAssignment (void); void Asg_RemoveCrsAssignments (long CrsCod); void Asg_WriteDatesAssignment (const struct Asg_Assignment *Asg); -Usr_ICan_t Asg_CheckIfICanCreateIntoAssigment (const struct Asg_Assignment *Asg); +Usr_Can_t Asg_CheckIfICanCreateIntoAssigment (const struct Asg_Assignment *Asg); void Asg_SetFolder (struct Asg_Assignment *Asg,unsigned Level); unsigned Asg_GetNumAssignments (Hie_Level_t Level,unsigned *NumNotif); diff --git a/swad_assignment_database.c b/swad_assignment_database.c index 47b00a200..22935fff6 100644 --- a/swad_assignment_database.c +++ b/swad_assignment_database.c @@ -331,7 +331,7 @@ void Asg_DB_RemoveAssignment (long AsgCod) /********************* Check if I can do an assignment ***********************/ /*****************************************************************************/ -Usr_ICan_t Asg_DB_CheckIfICanDoAssignment (long AsgCod) +Usr_Can_t Asg_DB_CheckIfICanDoAsgBasedOnGroups (long AsgCod) { // Students and teachers can do assignments depending on groups return @@ -355,8 +355,8 @@ Usr_ICan_t Asg_DB_CheckIfICanDoAssignment (long AsgCod) " AND asg_groups.GrpCod=grp_users.GrpCod)" "))", AsgCod, - Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ diff --git a/swad_assignment_database.h b/swad_assignment_database.h index 039cc941c..646ff809a 100644 --- a/swad_assignment_database.h +++ b/swad_assignment_database.h @@ -59,7 +59,7 @@ void Asg_DB_HideOrUnhideAssignment (long AsgCod, void Asg_DB_RemoveAssignment (long AsgCod); -Usr_ICan_t Asg_DB_CheckIfICanDoAssignment (long AsgCod); +Usr_Can_t Asg_DB_CheckIfICanDoAsgBasedOnGroups (long AsgCod); unsigned Asg_DB_GetGrps (MYSQL_RES **mysql_res,long AsgCod); void Asg_DB_CreateGroup (long AsgCod,long GrpCod); diff --git a/swad_attendance.c b/swad_attendance.c index e9f7cb706..bb030cb7e 100644 --- a/swad_attendance.c +++ b/swad_attendance.c @@ -338,15 +338,15 @@ static void Att_ParsWhichGroupsToShow (void *Events) static void Att_PutIconsInListOfEvents (void *Events) { - Usr_ICan_t ICanEdit; + Usr_Can_t ICanEdit; if (Events) { /***** Put icon to create a new attendance event *****/ ICanEdit = (Gbl.Usrs.Me.Role.Logged == Rol_TCH || - Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; - if (ICanEdit == Usr_I_CAN) + Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_CAN : + Usr_CAN_NOT; + if (ICanEdit == Usr_CAN) Att_PutIconToCreateNewEvent ((struct Att_Events *) Events); /***** Put icon to show attendance list *****/ @@ -372,7 +372,7 @@ static void Att_PutIconsInListOfEvents (void *Events) Usr_PutParMyUsrCodEncrypted,Gbl.Usrs.Me.UsrDat.EnUsrCod); /***** Put icon to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkAtt,NULL, Att_PutPars,Events); } @@ -576,7 +576,7 @@ static void Att_PutFormsToRemEditOneEvent (struct Att_Events *Events, [HidVis_VISIBLE] = ActHidAtt, // Visible ==> action to hide }; - if (Att_CheckIfICanEditEvents () == Usr_I_CAN) + if (Att_CheckIfICanEditEvents () == Usr_CAN) { /***** Icon to remove attendance event *****/ Ico_PutContextualIconToRemove (ActReqRemAtt,NULL, @@ -592,7 +592,7 @@ static void Att_PutFormsToRemEditOneEvent (struct Att_Events *Events, } /***** Icon to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkAtt,NULL,Att_PutPars,Events); } @@ -600,12 +600,12 @@ static void Att_PutFormsToRemEditOneEvent (struct Att_Events *Events, /******************* Check if I can edit calls for exams *********************/ /*****************************************************************************/ -Usr_ICan_t Att_CheckIfICanEditEvents (void) +Usr_Can_t Att_CheckIfICanEditEvents (void) { - static Usr_ICan_t ICanEditAttEvents[Rol_NUM_ROLES] = + static Usr_Can_t ICanEditAttEvents[Rol_NUM_ROLES] = { - [Rol_TCH ] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return ICanEditAttEvents[Gbl.Usrs.Me.Role.Logged]; @@ -1652,9 +1652,9 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr, bool Present; char CommentStd[Cns_MAX_BYTES_TEXT + 1]; char CommentTch[Cns_MAX_BYTES_TEXT + 1]; - Usr_ICan_t ICanChangeStdAttendance; - Usr_ICan_t ICanEditStdComment; - Usr_ICan_t ICanEditTchComment; + Usr_Can_t ICanChangeStdAttendance; + Usr_Can_t ICanEditStdComment; + Usr_Can_t ICanEditTchComment; /***** Set who can edit *****/ switch (Gbl.Usrs.Me.Role.Logged) @@ -1663,25 +1663,25 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr, // A student can see only her/his attendance if (Usr_ItsMe (UsrDat->UsrCod) == Usr_OTHER) Err_ShowErrorAndExit ("Wrong call."); - ICanChangeStdAttendance = Usr_I_CAN_NOT; - ICanEditStdComment = (Event->ClosedOrOpen == CloOpe_OPEN) ? Usr_I_CAN : // Attendance event is open - Usr_I_CAN_NOT; - ICanEditTchComment = Usr_I_CAN_NOT; + ICanChangeStdAttendance = Usr_CAN_NOT; + ICanEditStdComment = (Event->ClosedOrOpen == CloOpe_OPEN) ? Usr_CAN : // Attendance event is open + Usr_CAN_NOT; + ICanEditTchComment = Usr_CAN_NOT; break; case Rol_TCH: - ICanChangeStdAttendance = Usr_I_CAN; - ICanEditStdComment = Usr_I_CAN_NOT; - ICanEditTchComment = Usr_I_CAN; + ICanChangeStdAttendance = Usr_CAN; + ICanEditStdComment = Usr_CAN_NOT; + ICanEditTchComment = Usr_CAN; break; case Rol_SYS_ADM: - ICanChangeStdAttendance = Usr_I_CAN; - ICanEditStdComment = Usr_I_CAN_NOT; - ICanEditTchComment = Usr_I_CAN_NOT; + ICanChangeStdAttendance = Usr_CAN; + ICanEditStdComment = Usr_CAN_NOT; + ICanEditTchComment = Usr_CAN_NOT; break; default: - ICanChangeStdAttendance = Usr_I_CAN_NOT; - ICanEditStdComment = Usr_I_CAN_NOT; - ICanEditTchComment = Usr_I_CAN_NOT; + ICanChangeStdAttendance = Usr_CAN_NOT; + ICanEditStdComment = Usr_CAN_NOT; + ICanEditTchComment = Usr_CAN_NOT; break; } @@ -1704,7 +1704,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr, "id=\"Std%u\" value=\"%s\"%s%s", NumUsr,UsrDat->EnUsrCod, Present ? " checked=\"checked\"" : "", - (ICanChangeStdAttendance == Usr_I_CAN) ? "" : + (ICanChangeStdAttendance == Usr_CAN) ? "" : " disabled=\"disabled\""); HTM_TD_End (); @@ -1755,7 +1755,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr, The_GetColorRows ()); switch (ICanEditStdComment) { - case Usr_I_CAN: // Show with form + case Usr_CAN: // Show with form HTM_TEXTAREA_Begin ("name=\"CommentStd%s\" cols=\"40\" rows=\"3\"" " class=\"INPUT_%s\"", UsrDat->EnUsrCod, @@ -1763,7 +1763,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr, HTM_Txt (CommentStd); HTM_TEXTAREA_End (); break; - case Usr_I_CAN_NOT: // Show without form + case Usr_CAN_NOT: // Show without form default: Str_ChangeFormat (Str_FROM_HTML,Str_TO_RIGOROUS_HTML, CommentStd,Cns_MAX_BYTES_TEXT,Str_DONT_REMOVE_SPACES); @@ -1780,7 +1780,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr, The_GetColorRows ()); switch (ICanEditTchComment) { - case Usr_I_CAN: // Show with form + case Usr_CAN: // Show with form HTM_TEXTAREA_Begin ("name=\"CommentTch%s\" cols=\"40\" rows=\"3\"" " class=\"INPUT_%s\"", UsrDat->EnUsrCod, @@ -1788,7 +1788,7 @@ static void Att_WriteRowUsrToCallTheRoll (unsigned NumUsr, HTM_Txt (CommentTch); HTM_TEXTAREA_End (); break; - case Usr_I_CAN_NOT: // Show without form + case Usr_CAN_NOT: // Show without form default: if (Event->CommentTchVisible) { @@ -2775,7 +2775,7 @@ static void Att_ListUsrsAttendanceTable (struct Att_Events *Events, if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat, // Get from the database the data of the student Usr_DONT_GET_PREFS, Usr_DONT_GET_ROLE_IN_CRS)) - if (Usr_CheckIfICanViewAtt (&UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewAtt (&UsrDat) == Usr_CAN) { UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&UsrDat); Att_WriteRowUsrSeveralAttEvents (Events,NumUsr,&UsrDat); @@ -3010,7 +3010,7 @@ static void Att_ListStdsWithAttEventsDetails (struct Att_Events *Events, if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&UsrDat, // Get from the database the data of the student Usr_DONT_GET_PREFS, Usr_DONT_GET_ROLE_IN_CRS)) - if (Usr_CheckIfICanViewAtt (&UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewAtt (&UsrDat) == Usr_CAN) { UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&UsrDat); Att_ListAttEventsForAStd (Events,NumUsr,&UsrDat); diff --git a/swad_attendance.h b/swad_attendance.h index 92e95fc40..358636e90 100644 --- a/swad_attendance.h +++ b/swad_attendance.h @@ -85,7 +85,7 @@ struct Att_Events void Att_SeeEvents (void); -Usr_ICan_t Att_CheckIfICanEditEvents (void); +Usr_Can_t Att_CheckIfICanEditEvents (void); void Att_ReqCreatOrEditEvent (void); bool Att_GetEventDataByCod (struct Att_Event *Event); diff --git a/swad_browser.c b/swad_browser.c index 2990dfb8d..a3adf223d 100644 --- a/swad_browser.c +++ b/swad_browser.c @@ -1098,7 +1098,7 @@ static Act_Action_t Brw_ActZIPFolder[Brw_NUM_TYPES_FILE_BROWSER] = /***************************** Private variables *****************************/ /*****************************************************************************/ -Usr_ICan_t Brw_ICanEditFileOrFolder; // Can I modify (remove, rename, create inside, etc.) a file or folder? +Usr_Can_t Brw_ICanEditFileOrFolder; // Can I modify (remove, rename, create inside, etc.) a file or folder? /*****************************************************************************/ /**************************** Private prototypes *****************************/ @@ -1141,7 +1141,7 @@ static void Brw_ListDir (unsigned Level,const char *RowId, static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId, bool TreeContracted, Brw_IconTree_t IconThisRow); -static Usr_ICan_t Brw_CheckIfCanPasteIn (unsigned Level); +static Usr_Can_t Brw_CheckIfCanPasteIn (unsigned Level); static void Brw_PutIconRemove (void); static void Brw_PutIconCopy (void); static void Brw_PutIconPaste (unsigned Level); @@ -1216,7 +1216,7 @@ static bool Brw_CheckIfUploadIsAllowed (const char *FileType); static void Brw_PutIconToGetLinkToFile (void *FileMetadata); static void Brw_PutParsToGetLinkToFile (void *FileMetadata); -static Usr_ICan_t Brw_CheckIfICanEditFileMetadata (bool IAmTheOwner); +static Usr_Can_t Brw_CheckIfICanEditFileMetadata (bool IAmTheOwner); static bool Brw_CheckIfIAmOwnerOfFile (long PublisherUsrCod); static void Brw_WriteBigLinkToDownloadFile (const char *URL, struct Brw_FileMetadata *FileMetadata, @@ -1236,15 +1236,15 @@ static unsigned Brw_GetFileViewsFromMe (long FilCod); static void Brw_RemoveOneFileOrFolderFromDB (const char Path[PATH_MAX + 1]); static void Brw_RemoveChildrenOfFolderFromDB (const char Path[PATH_MAX + 1]); -static void Brw_SetIfICanEditFileOrFolder (Usr_ICan_t Value); -static Usr_ICan_t Brw_GetIfICanEditFileOrFolder (void); -static Usr_ICan_t Brw_CheckIfICanEditFileOrFolder (unsigned Level); +static void Brw_SetIfICanEditFileOrFolder (Usr_Can_t Value); +static Usr_Can_t Brw_GetIfICanEditFileOrFolder (void); +static Usr_Can_t Brw_CheckIfICanEditFileOrFolder (unsigned Level); -static Usr_ICan_t Brw_CheckIfICanCreateIntoFolder (unsigned Level); -static Usr_ICan_t Brw_CheckIfICanModifySharedFileOrFolder (void); -static Usr_ICan_t Brw_CheckIfICanModifyPrivateFileOrFolder (void); -static Usr_ICan_t Brw_CheckIfICanModifyPrjDocFileOrFolder (void); -static Usr_ICan_t Brw_CheckIfICanModifyPrjAssFileOrFolder (void); +static Usr_Can_t Brw_CheckIfICanCreateIntoFolder (unsigned Level); +static Usr_Can_t Brw_CheckIfICanModifySharedFileOrFolder (void); +static Usr_Can_t Brw_CheckIfICanModifyPrivateFileOrFolder (void); +static Usr_Can_t Brw_CheckIfICanModifyPrjDocFileOrFolder (void); +static Usr_Can_t Brw_CheckIfICanModifyPrjAssFileOrFolder (void); static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row); @@ -1991,22 +1991,26 @@ void Brw_GetParAndInitFileBrowser (void) case Brw_SHOW_DOC_INS: case Brw_ADMI_DOC_INS: case Brw_ADMI_SHR_INS: - Gbl.FileBrowser.ShowOnlyPublicFiles = !Gbl.Usrs.Me.IBelongToCurrent[Hie_INS]; + Gbl.FileBrowser.ShowOnlyPublicFiles = + (Gbl.Usrs.Me.IBelongToCurrent[Hie_INS] == Usr_DONT_BELONG); break; case Brw_SHOW_DOC_CTR: case Brw_ADMI_DOC_CTR: case Brw_ADMI_SHR_CTR: - Gbl.FileBrowser.ShowOnlyPublicFiles = !Gbl.Usrs.Me.IBelongToCurrent[Hie_CTR]; + Gbl.FileBrowser.ShowOnlyPublicFiles = + (Gbl.Usrs.Me.IBelongToCurrent[Hie_CTR] == Usr_DONT_BELONG); break; case Brw_SHOW_DOC_DEG: case Brw_ADMI_DOC_DEG: case Brw_ADMI_SHR_DEG: - Gbl.FileBrowser.ShowOnlyPublicFiles = !Gbl.Usrs.Me.IBelongToCurrent[Hie_DEG]; + Gbl.FileBrowser.ShowOnlyPublicFiles = + (Gbl.Usrs.Me.IBelongToCurrent[Hie_DEG] == Usr_DONT_BELONG); break; case Brw_SHOW_DOC_CRS: case Brw_ADMI_DOC_CRS: case Brw_ADMI_SHR_CRS: - Gbl.FileBrowser.ShowOnlyPublicFiles = !Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]; + Gbl.FileBrowser.ShowOnlyPublicFiles = + (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_DONT_BELONG); break; default: break; @@ -2747,7 +2751,7 @@ void Brw_ShowFileBrowserProject (long PrjCod) Brw_WriteTopBeforeShowingFileBrowser (); - if (Prj_CheckIfICanViewProjectDocuments (PrjCod) == Usr_I_CAN) + if (Prj_CheckIfICanViewProjectDocuments (PrjCod) == Usr_CAN) { /***** Show the tree with the project documents *****/ Gbl.FileBrowser.Type = Brw_ADMI_DOC_PRJ; @@ -2755,7 +2759,7 @@ void Brw_ShowFileBrowserProject (long PrjCod) Brw_ShowFileBrowser (); } - if (Prj_CheckIfICanViewProjectAssessment (PrjCod) == Usr_I_CAN) + if (Prj_CheckIfICanViewProjectAssessment (PrjCod) == Usr_CAN) { /***** Show the tree with the project assessment *****/ Gbl.FileBrowser.Type = Brw_ADMI_ASS_PRJ; @@ -2801,7 +2805,7 @@ static void Brw_ShowFileBrowsersAsgWrkCrs (void) if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat, Usr_DONT_GET_PREFS, Usr_GET_ROLE_IN_CRS)) - if (Usr_CheckIfICanViewAsgWrk (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewAsgWrk (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) { Gbl.Usrs.Other.UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Other.UsrDat); @@ -3336,7 +3340,7 @@ static void Brw_PutIconsFileBrowser (__attribute__((unused)) void *Args) /***** Put icon to get resource link *****/ if (Brw_ActReqLnk[Gbl.FileBrowser.Type] != ActUnk && - Rsc_CheckIfICanGetLink () == Usr_I_CAN) + Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (Brw_ActReqLnk[Gbl.FileBrowser.Type],NULL, NULL,NULL); @@ -3892,7 +3896,7 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId, Brw_TypeIsAdmDoc[Gbl.FileBrowser.Type] || Brw_TypeIsAdmMrk[Gbl.FileBrowser.Type]) { - HiddenOrVisible = Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Gbl.FileBrowser.FilFolLnk.Type, + HiddenOrVisible = Brw_CheckIfFileOrFolderIsHiddenOrVisible (Gbl.FileBrowser.FilFolLnk.Type, Gbl.FileBrowser.FilFolLnk.Full); if (HiddenOrVisible == HidVis_HIDDEN && (Brw_TypeIsSeeDoc[Gbl.FileBrowser.Type] || @@ -3907,12 +3911,13 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId, Gbl.FileBrowser.HiddenLevels[Level] = (HiddenOrVisible == HidVis_HIDDEN); switch (HiddenOrVisible) { - case HidVis_HIDDEN: // this row is marked as hidden - LightStyle = true; - break; case HidVis_VISIBLE: // this row is not marked as hidden LightStyle = Brw_CheckIfAnyHigherLevelIsHidden (Level); break; + case HidVis_HIDDEN: // this row is marked as hidden + default: + LightStyle = true; + break; } } } @@ -4002,7 +4007,7 @@ static bool Brw_WriteRowFileBrowser (unsigned Level,const char *RowId, } /****** If current action allows file administration... ******/ - Brw_SetIfICanEditFileOrFolder (Usr_I_CAN_NOT); + Brw_SetIfICanEditFileOrFolder (Usr_CAN_NOT); if (Brw_CheckIfFileBrowserIsEditable (Gbl.FileBrowser.Type) && !Gbl.FileBrowser.ShowOnlyPublicFiles) { @@ -4142,26 +4147,26 @@ void Brw_SetFullPathInTree (void) /*****************************************************************************/ // Return true if Gbl.FileBrowser.Clipboard.FilFolLnk.Full can be pasted into Gbl.FileBrowser.FilFolLnk.Full -static Usr_ICan_t Brw_CheckIfCanPasteIn (unsigned Level) +static Usr_Can_t Brw_CheckIfCanPasteIn (unsigned Level) { char PathDstWithFile[PATH_MAX + 1 + NAME_MAX + 1]; /***** If not in a folder... *****/ if (Gbl.FileBrowser.FilFolLnk.Type != Brw_IS_FOLDER) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** If there is nothing in clipboard... *****/ if (Gbl.FileBrowser.Clipboard.FileBrowser == Brw_UNKNOWN) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** Do not paste a link in marks... *****/ if (Gbl.FileBrowser.Clipboard.FilFolLnk.Type == Brw_IS_LINK && Brw_TypeIsAdmMrk[Gbl.FileBrowser.Type]) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /**** If I can not create elements into this folder... *****/ - if (Brw_CheckIfICanCreateIntoFolder (Level) == Usr_I_CAN_NOT) - return Usr_I_CAN_NOT; // Pasting into top level of assignments is forbidden + if (Brw_CheckIfICanCreateIntoFolder (Level) == Usr_CAN_NOT) + return Usr_CAN_NOT; // Pasting into top level of assignments is forbidden /**** If we are in the same tree of the clipboard... *****/ if (Gbl.FileBrowser.Clipboard.IsThisTree) // We are in the same tree of the clipboard ==> @@ -4173,11 +4178,11 @@ static Usr_ICan_t Brw_CheckIfCanPasteIn (unsigned Level) Gbl.FileBrowser.Clipboard.FilFolLnk.Name); return Str_Path1BeginsByPath2 (PathDstWithFile, - Gbl.FileBrowser.Clipboard.FilFolLnk.Full) ? Usr_I_CAN_NOT : - Usr_I_CAN; + Gbl.FileBrowser.Clipboard.FilFolLnk.Full) ? Usr_CAN_NOT : + Usr_CAN; } - return Usr_I_CAN; // I can paste + return Usr_CAN; // I can paste } /*****************************************************************************/ @@ -4190,7 +4195,7 @@ static void Brw_PutIconRemove (void) switch (Brw_GetIfICanEditFileOrFolder ()) // Can I remove this? { - case Usr_I_CAN: + case Usr_CAN: switch (Gbl.FileBrowser.FilFolLnk.Type) { case Brw_IS_FILE: @@ -4212,7 +4217,7 @@ static void Brw_PutIconRemove (void) break; } break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconRemovalNotAllowed (); break; @@ -4250,13 +4255,13 @@ static void Brw_PutIconPaste (unsigned Level) /***** Icon to paste *****/ switch (Brw_CheckIfCanPasteIn (Level)) { - case Usr_I_CAN: + case Usr_CAN: /* Form to paste the content of the clipboard */ Ico_PutContextualIconToPaste (Brw_ActPaste[Gbl.FileBrowser.Type], Brw_PutImplicitParsFileBrowser, &Gbl.FileBrowser.FilFolLnk); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: /* Icon to paste inactive */ Ico_PutIconOff ("paste.svg",Ico_BLACK,Txt_Copy_not_allowed); @@ -4342,15 +4347,16 @@ static void Brw_PutIconToExpandFolder (const char *FileBrowserId,const char *Row /***** Begin container *****/ switch (HiddenOrVisible) { - case HidVis_HIDDEN: - HTM_DIV_Begin ("id=\"expand_%s_%s\" style=\"display:none;\"", - FileBrowserId,RowId); - break; case HidVis_VISIBLE: HTM_DIV_Begin ("id=\"expand_%s_%s\"", FileBrowserId,RowId); break; - } + case HidVis_HIDDEN: + default: + HTM_DIV_Begin ("id=\"expand_%s_%s\" style=\"display:none;\"", + FileBrowserId,RowId); + break; + } /***** Form and icon *****/ snprintf (JavaScriptFuncToExpandFolder,sizeof (JavaScriptFuncToExpandFolder), @@ -4380,14 +4386,15 @@ static void Brw_PutIconToContractFolder (const char *FileBrowserId,const char *R /***** Begin container *****/ switch (HiddenOrVisible) { - case HidVis_HIDDEN: - HTM_DIV_Begin ("id=\"contract_%s_%s\" style=\"display:none;\"", - FileBrowserId,RowId); - break; case HidVis_VISIBLE: HTM_DIV_Begin ("id=\"contract_%s_%s\"", FileBrowserId,RowId); break; + case HidVis_HIDDEN: + default: + HTM_DIV_Begin ("id=\"contract_%s_%s\" style=\"display:none;\"", + FileBrowserId,RowId); + break; } /***** Form and icon *****/ @@ -4478,12 +4485,12 @@ static void Brw_PutIconFolder (unsigned Level, const char *FileBrowserId,const char *RowId, Brw_IconTree_t IconSubtree) { - static void (*Brw_PutIconFolder[Usr_NUM_I_CAN]) (const char *FileBrowserId,const char *RowId, + static void (*Brw_PutIconFolder[Usr_NUM_CAN]) (const char *FileBrowserId,const char *RowId, CloOpe_ClosedOrOpen_t ClosedOrOpen, HidVis_HiddenOrVisible_t HiddenOrVisible) = { - [Usr_I_CAN_NOT] = Brw_PutIconFolderWithoutPlus, - [Usr_I_CAN ] = Brw_PutIconFolderWithPlus, + [Usr_CAN_NOT] = Brw_PutIconFolderWithoutPlus, + [Usr_CAN ] = Brw_PutIconFolderWithPlus, }; static HidVis_HiddenOrVisible_t HiddenOrVisible[Brw_NUM_ICON_TREE][CloOpe_NUM_CLOSED_OPEN] = { @@ -4495,7 +4502,7 @@ static void Brw_PutIconFolder (unsigned Level, [Brw_ICON_TREE_CONTRACT][CloOpe_OPEN ] = HidVis_VISIBLE, }; CloOpe_ClosedOrOpen_t ClosedOrOpen; - Usr_ICan_t ICanCreateIntoFolder = Brw_CheckIfICanCreateIntoFolder (Level); + Usr_Can_t ICanCreateIntoFolder = Brw_CheckIfICanCreateIntoFolder (Level); /***** Begin cell *****/ HTM_TD_Begin ("class=\"BM %s\"",The_GetColorRows ()); @@ -4712,7 +4719,7 @@ static void Brw_WriteFileName (unsigned Level,bool IsPublic, switch (Brw_GetIfICanEditFileOrFolder ()) // Can I rename this folder? { - case Usr_I_CAN: + case Usr_CAN: /***** Form to rename folder *****/ Frm_BeginForm (Brw_ActRenameFolder[Gbl.FileBrowser.Type]); Brw_PutImplicitParsFileBrowser (&Gbl.FileBrowser.FilFolLnk); @@ -4726,7 +4733,7 @@ static void Brw_WriteFileName (unsigned Level,bool IsPublic, The_GetColorRows ()); Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: /***** Write name of the folder *****/ if (Level == 1 && Brw_TypeIsAdmAsg[Gbl.FileBrowser.Type]) @@ -4929,7 +4936,7 @@ void Brw_AskRemFileFromTree (void) /***** Button of confirmation of removing *****/ switch (Brw_CheckIfICanEditFileOrFolder (Gbl.FileBrowser.Level)) // Can I remove this file? { - case Usr_I_CAN: + case Usr_CAN: /***** Show question and button to remove file/link *****/ Brw_GetFileNameToShowDependingOnLevel (Gbl.FileBrowser.Type, Gbl.FileBrowser.Level, @@ -4941,7 +4948,7 @@ void Brw_AskRemFileFromTree (void) Txt_Do_you_really_want_to_remove_FILE_OR_LINK_X, FileNameToShow); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Err_ShowErrorAndExit (Txt_You_can_not_remove_this_file_or_link); break; @@ -4968,7 +4975,7 @@ void Brw_RemFileFromTree (void) switch (Brw_CheckIfICanEditFileOrFolder (Gbl.FileBrowser.Level)) // Can I remove this file? { - case Usr_I_CAN: + case Usr_CAN: snprintf (Path,sizeof (Path),"%s/%s", Gbl.FileBrowser.Path.AboveRootFolder, Gbl.FileBrowser.FilFolLnk.Full); @@ -4999,7 +5006,7 @@ void Brw_RemFileFromTree (void) else // File / link not found Err_FileFolderNotFoundExit (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Err_ShowErrorAndExit (Txt_You_can_not_remove_this_file_or_link); break; @@ -5025,7 +5032,7 @@ void Brw_RemFolderFromTree (void) switch (Brw_CheckIfICanEditFileOrFolder (Gbl.FileBrowser.Level)) // Can I remove this folder? { - case Usr_I_CAN: + case Usr_CAN: snprintf (Path,sizeof (Path),"%s/%s", Gbl.FileBrowser.Path.AboveRootFolder, Gbl.FileBrowser.FilFolLnk.Full); @@ -5056,7 +5063,7 @@ void Brw_RemFolderFromTree (void) else // Folder not found Err_FileFolderNotFoundExit (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Err_ShowErrorAndExit (Txt_You_can_not_remove_this_folder); break; @@ -5093,7 +5100,7 @@ void Brw_RemSubtreeInFileBrowser (void) /***** Get parameters related to file browser *****/ Brw_GetParAndInitFileBrowser (); - if (Brw_CheckIfICanEditFileOrFolder (Gbl.FileBrowser.Level) == Usr_I_CAN) // Can I remove this subtree? + if (Brw_CheckIfICanEditFileOrFolder (Gbl.FileBrowser.Level) == Usr_CAN) // Can I remove this subtree? { snprintf (Path,sizeof (Path),"%s/%s", Gbl.FileBrowser.Path.AboveRootFolder, @@ -5776,7 +5783,7 @@ static void Brw_PasteClipboard (struct BrwSiz_BrowserSize *Size) Gbl.FileBrowser.Clipboard.IsThisTree = Brw_CheckIfClipboardIsInThisTree (); switch (Brw_CheckIfCanPasteIn (Gbl.FileBrowser.Level)) { - case Usr_I_CAN: + case Usr_CAN: /***** Construct the relative path of the origin file or folder *****/ switch (Gbl.FileBrowser.Clipboard.FileBrowser) { @@ -5928,7 +5935,7 @@ static void Brw_PasteClipboard (struct BrwSiz_BrowserSize *Size) Brw_GetFileMetadataByCod (&FileMetadata); /* Notify only is destination folder is visible */ - if (!Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (&FileMetadata)) + if (Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (&FileMetadata) == HidVis_VISIBLE) switch (Gbl.FileBrowser.Type) { case Brw_ADMI_DOC_CRS: @@ -5956,7 +5963,7 @@ static void Brw_PasteClipboard (struct BrwSiz_BrowserSize *Size) /***** Add path where new tree is pasted to table of expanded folders *****/ Brw_InsFoldersInPathAndUpdOtherFoldersInExpandedFolders (Gbl.FileBrowser.FilFolLnk.Full); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: // It's difficult, but not impossible that a user sees this message Err_ShowErrorAndExit (Txt_You_can_not_paste_file_or_folder_here); @@ -6202,7 +6209,7 @@ void Brw_ShowFormFileBrowser (void) /***** Check if creating a new folder or file is allowed *****/ switch (Brw_CheckIfICanCreateIntoFolder (Gbl.FileBrowser.Level)) { - case Usr_I_CAN: + case Usr_CAN: /***** Name of the folder to be shown ****/ Brw_GetFileNameToShowDependingOnLevel (Gbl.FileBrowser.Type, Gbl.FileBrowser.Level, @@ -6224,7 +6231,7 @@ void Brw_ShowFormFileBrowser (void) { /***** Check if we can paste in this folder *****/ Gbl.FileBrowser.Clipboard.IsThisTree = Brw_CheckIfClipboardIsInThisTree (); - if (Brw_CheckIfCanPasteIn (Gbl.FileBrowser.Level) == Usr_I_CAN) + if (Brw_CheckIfCanPasteIn (Gbl.FileBrowser.Level) == Usr_CAN) Brw_PutFormToPasteAFileOrFolder (FileNameToShow); } @@ -6233,7 +6240,7 @@ void Brw_ShowFormFileBrowser (void) Gbl.FileBrowser.Type != Brw_ADMI_MRK_GRP) // Do not create links in marks Brw_PutFormToCreateALink (FileNameToShow); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Err_ShowErrorAndExit (Txt_You_can_not_create_folders_files_or_links_here); // It's difficult, but not impossible that a user sees this message @@ -6500,7 +6507,7 @@ void Brw_RecFolderFileBrowser (void) /***** Check if creating a new folder is allowed *****/ switch (Brw_CheckIfICanCreateIntoFolder (Gbl.FileBrowser.Level)) { - case Usr_I_CAN: + case Usr_CAN: if (Str_ConvertFilFolLnkNameToValid (Gbl.FileBrowser.NewFilFolLnkName)) { /* In Gbl.FileBrowser.NewFilFolLnkName is the name of the new folder */ @@ -6574,7 +6581,7 @@ void Brw_RecFolderFileBrowser (void) else // Folder name not valid Ale_ShowAlerts (NULL); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: // It's difficult, but not impossible that a user sees this message Err_ShowErrorAndExit (Txt_You_can_not_create_folders_here); @@ -6605,7 +6612,7 @@ void Brw_RenFolderFileBrowser (void) switch (Brw_CheckIfICanEditFileOrFolder (Gbl.FileBrowser.Level)) // Can I rename this folder? { - case Usr_I_CAN: + case Usr_CAN: if (Str_ConvertFilFolLnkNameToValid (Gbl.FileBrowser.NewFilFolLnkName)) { if (strcmp (Gbl.FileBrowser.FilFolLnk.Name, @@ -6691,7 +6698,7 @@ void Brw_RenFolderFileBrowser (void) else // Folder name not valid Ale_ShowAlerts (NULL); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Err_ShowErrorAndExit (Txt_You_can_not_rename_this_folder); break; @@ -6783,7 +6790,7 @@ static bool Brw_RcvFileInFileBrw (struct BrwSiz_BrowserSize *Size, /***** Check if creating a new file is allowed *****/ switch (Brw_CheckIfICanCreateIntoFolder (Gbl.FileBrowser.Level)) { - case Usr_I_CAN: + case Usr_CAN: /***** First, we save in disk the file received *****/ Par = Fil_StartReceptionOfFile (Fil_NAME_OF_PARAM_FILENAME_ORG, SrcFileName,MIMEType); @@ -6892,7 +6899,7 @@ static bool Brw_RcvFileInFileBrw (struct BrwSiz_BrowserSize *Size, Mrk_DB_AddMarks (FileMetadata.FilCod,&Marks); /* Notify new file */ - if (!Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (&FileMetadata)) + if (Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (&FileMetadata) == HidVis_VISIBLE) switch (Gbl.FileBrowser.Type) { case Brw_ADMI_DOC_CRS: @@ -6927,7 +6934,7 @@ static bool Brw_RcvFileInFileBrw (struct BrwSiz_BrowserSize *Size, Ale_CreateAlert (Ale_WARNING,NULL, Txt_UPLOAD_FILE_You_must_specify_the_file_NO_HTML); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: // I do not have permission to create files here Ale_CreateAlert (Ale_WARNING,NULL, @@ -6968,7 +6975,7 @@ void Brw_RecLinkFileBrowser (void) /***** Check if creating a new link is allowed *****/ switch (Brw_CheckIfICanCreateIntoFolder (Gbl.FileBrowser.Level)) { - case Usr_I_CAN: + case Usr_CAN: /***** Create a new file to store URL ****/ Par_GetParText ("NewLinkURL",URL,PATH_MAX); if ((LengthURL = strlen (URL))) @@ -7070,7 +7077,7 @@ void Brw_RecLinkFileBrowser (void) Brw_GetFileMetadataByCod (&FileMetadata); /* Notify new file */ - if (!Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (&FileMetadata)) + if (Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (&FileMetadata) == HidVis_VISIBLE) switch (Gbl.FileBrowser.Type) { case Brw_ADMI_DOC_CRS: @@ -7102,7 +7109,7 @@ void Brw_RecLinkFileBrowser (void) else // Link URL not valid Ale_ShowAlert (Ale_WARNING,Txt_UPLOAD_FILE_Invalid_link); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: // It's difficult, but not impossible that a user sees this message Err_ShowErrorAndExit (Txt_You_can_not_create_links_here); @@ -7186,7 +7193,7 @@ void Brw_SetDocumentAsVisible (void) Brw_GetParAndInitFileBrowser (); /***** Change file to visible *****/ - if (Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Gbl.FileBrowser.FilFolLnk.Type, + if (Brw_CheckIfFileOrFolderIsHiddenOrVisible (Gbl.FileBrowser.FilFolLnk.Type, Gbl.FileBrowser.FilFolLnk.Full) == HidVis_HIDDEN) Brw_DB_HideOrUnhideFileOrFolder (Gbl.FileBrowser.FilFolLnk.Full,HidVis_VISIBLE); @@ -7210,7 +7217,7 @@ void Brw_SetDocumentAsHidden (void) /***** If the file or folder is not already set as hidden in database, set it as hidden *****/ - if (Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Gbl.FileBrowser.FilFolLnk.Type, + if (Brw_CheckIfFileOrFolderIsHiddenOrVisible (Gbl.FileBrowser.FilFolLnk.Type, Gbl.FileBrowser.FilFolLnk.Full) == HidVis_VISIBLE) Brw_DB_HideOrUnhideFileOrFolder (Gbl.FileBrowser.FilFolLnk.Full,HidVis_HIDDEN); @@ -7227,7 +7234,7 @@ void Brw_SetDocumentAsHidden (void) /** Check if a file / folder from the documents zone is set as hidden in DB **/ /*****************************************************************************/ -HidVis_HiddenOrVisible_t Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Brw_FileType_t FileType, +HidVis_HiddenOrVisible_t Brw_CheckIfFileOrFolderIsHiddenOrVisible (Brw_FileType_t FileType, const char *Path) { MYSQL_RES *mysql_res; @@ -7235,19 +7242,21 @@ HidVis_HiddenOrVisible_t Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Brw_FileType_ HidVis_HiddenOrVisible_t HiddenOrVisible; /***** Get if a file or folder is hidden from database *****/ - if (Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingPath (&mysql_res,Path)) + switch (Brw_DB_CheckIfFileOrFolderIsHiddenUsingPath (&mysql_res,Path)) { - /* Get row */ - row = mysql_fetch_row (mysql_res); + case HidVis_VISIBLE: + Brw_DB_AddPath (-1L,FileType, + Gbl.FileBrowser.FilFolLnk.Full,false,Brw_LICENSE_DEFAULT); + HiddenOrVisible = HidVis_VISIBLE; + break; + case HidVis_HIDDEN: + default: + /* Get row */ + row = mysql_fetch_row (mysql_res); - /* File is hidden? (row[0]) */ - HiddenOrVisible = HidVid_GetHiddenOrVisible (row[0][0]); - } - else - { - Brw_DB_AddPath (-1L,FileType, - Gbl.FileBrowser.FilFolLnk.Full,false,Brw_LICENSE_DEFAULT); - HiddenOrVisible = HidVis_VISIBLE; + /* File is hidden? (row[0]) */ + HiddenOrVisible = HidVid_GetHiddenOrVisible (row[0][0]); + break; } /***** Free structure that stores the query result *****/ @@ -7292,10 +7301,10 @@ void Brw_ShowFileMetadata (void) char URL[PATH_MAX + 1]; char FileSizeStr[Fil_MAX_BYTES_FILE_SIZE_STRING + 1]; bool Found; - Usr_ICan_t ICanView = Usr_I_CAN_NOT; + Usr_Can_t ICanView = Usr_CAN_NOT; bool IAmTheOwner; - Usr_ICan_t ICanEdit; - Usr_ICan_t ICanChangePublic = Usr_I_CAN_NOT; + Usr_Can_t ICanEdit; + Usr_Can_t ICanChangePublic = Usr_CAN_NOT; bool FileHasPublisher; Brw_License_t License; unsigned LicenseUnsigned; @@ -7318,29 +7327,29 @@ void Brw_ShowFileMetadata (void) /***** Check if I can view this file. It could be marked as hidden or in a hidden folder *****/ - ICanView = Usr_I_CAN; + ICanView = Usr_CAN; switch (Gbl.FileBrowser.Type) { case Brw_SHOW_DOC_INS: if (Gbl.Usrs.Me.Role.Logged < Rol_INS_ADM) - ICanView = Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (&FileMetadata) ? Usr_I_CAN_NOT : - Usr_I_CAN; + ICanView = (Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (&FileMetadata) == HidVis_VISIBLE) ? Usr_CAN : + Usr_CAN_NOT; break; case Brw_SHOW_DOC_CTR: if (Gbl.Usrs.Me.Role.Logged < Rol_CTR_ADM) - ICanView = Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (&FileMetadata) ? Usr_I_CAN_NOT : - Usr_I_CAN; + ICanView = (Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (&FileMetadata) == HidVis_VISIBLE) ? Usr_CAN : + Usr_CAN_NOT; break; case Brw_SHOW_DOC_DEG: if (Gbl.Usrs.Me.Role.Logged < Rol_DEG_ADM) - ICanView = Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (&FileMetadata) ? Usr_I_CAN_NOT : - Usr_I_CAN; + ICanView = (Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (&FileMetadata) == HidVis_VISIBLE) ? Usr_CAN : + Usr_CAN_NOT; break; case Brw_SHOW_DOC_CRS: case Brw_SHOW_DOC_GRP: if (Gbl.Usrs.Me.Role.Logged < Rol_TCH) - ICanView = Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (&FileMetadata) ? Usr_I_CAN_NOT : - Usr_I_CAN; + ICanView = (Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (&FileMetadata) == HidVis_VISIBLE) ? Usr_CAN : + Usr_CAN_NOT; break; default: break; @@ -7349,7 +7358,7 @@ void Brw_ShowFileMetadata (void) switch (ICanView) { - case Usr_I_CAN: + case Usr_CAN: if (FileMetadata.FilFolLnk.Type == Brw_IS_FILE || FileMetadata.FilFolLnk.Type == Brw_IS_LINK) { @@ -7392,7 +7401,7 @@ void Brw_ShowFileMetadata (void) if ((Brw_ActReqLnk[Gbl.FileBrowser.Type] != ActUnk && (FileMetadata.FilFolLnk.Type == Brw_IS_FILE || // Only files or links FileMetadata.FilFolLnk.Type == Brw_IS_LINK) && - Rsc_CheckIfICanGetLink ()) == Usr_I_CAN) + Rsc_CheckIfICanGetLink ()) == Usr_CAN) Box_BoxShadowBegin (NULL,Brw_PutIconToGetLinkToFile, &FileMetadata,NULL); else @@ -7400,7 +7409,7 @@ void Brw_ShowFileMetadata (void) /***** Begin form to update the metadata of a file *****/ - if (ICanEdit == Usr_I_CAN) // I can edit file properties + if (ICanEdit == Usr_CAN) // I can edit file properties { /* Can the file be public? */ switch (Gbl.FileBrowser.Type) @@ -7409,10 +7418,10 @@ void Brw_ShowFileMetadata (void) case Brw_ADMI_DOC_CTR: case Brw_ADMI_SHR_CTR: case Brw_ADMI_DOC_DEG: case Brw_ADMI_SHR_DEG: case Brw_ADMI_DOC_CRS: case Brw_ADMI_SHR_CRS: - ICanChangePublic = Usr_I_CAN; + ICanChangePublic = Usr_CAN; break; default: - ICanChangePublic = Usr_I_CAN_NOT; + ICanChangePublic = Usr_CAN_NOT; break; } @@ -7506,14 +7515,14 @@ void Brw_ShowFileMetadata (void) HTM_TR_Begin (NULL); /* Label */ - Frm_LabelColumn ("RT",ICanChangePublic == Usr_I_CAN ? "PublicFile" : - NULL, + Frm_LabelColumn ("RT",ICanChangePublic == Usr_CAN ? "PublicFile" : + NULL, Txt_Availability); /* Data */ HTM_TD_Begin ("class=\"LT DAT_STRONG_%s\"", The_GetSuffix ()); - if (ICanChangePublic == Usr_I_CAN) // I can change file to public + if (ICanChangePublic == Usr_CAN) // I can change file to public { HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL, "id=\"PublicFile\" name=\"PublicFile\" class=\"PUBLIC_FILE\""); @@ -7540,14 +7549,14 @@ void Brw_ShowFileMetadata (void) HTM_TR_Begin (NULL); /* Label */ - Frm_LabelColumn ("RT",ICanEdit == Usr_I_CAN ? "License" : + Frm_LabelColumn ("RT",ICanEdit == Usr_CAN ? "License" : NULL, Txt_License); /* Data */ HTM_TD_Begin ("class=\"LT DAT_STRONG_%s\"", The_GetSuffix ()); - if (ICanEdit == Usr_I_CAN) // I can edit file properties + if (ICanEdit == Usr_CAN) // I can edit file properties { HTM_SELECT_Begin (HTM_DONT_SUBMIT_ON_CHANGE,NULL, "id=\"License\" name=\"License\" class=\"LICENSE\""); @@ -7617,7 +7626,7 @@ void Brw_ShowFileMetadata (void) HTM_TABLE_End (); /***** End form *****/ - if (ICanEdit == Usr_I_CAN) // I can edit file properties + if (ICanEdit == Usr_CAN) // I can edit file properties { Btn_PutButton (Btn_CONFIRM_BUTTON,Txt_Save_file_properties); Frm_EndForm (); @@ -7661,7 +7670,7 @@ void Brw_ShowFileMetadata (void) /***** Add paths until file to table of expanded folders *****/ Brw_InsFoldersInPathAndUpdOtherFoldersInExpandedFolders (Gbl.FileBrowser.FilFolLnk.Path); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: /***** Mark possible notifications about non visible file as removed *****/ switch (Gbl.FileBrowser.Type) @@ -7770,7 +7779,7 @@ void Brw_DownloadFile (void) struct Brw_FileMetadata FileMetadata; char URL[PATH_MAX + 1]; bool Found; - Usr_ICan_t ICanView = Usr_I_CAN_NOT; + Usr_Can_t ICanView = Usr_CAN_NOT; /***** Get parameters related to file browser *****/ Brw_GetParAndInitFileBrowser (); @@ -7789,29 +7798,29 @@ void Brw_DownloadFile (void) /***** Check if I can view this file. It could be marked as hidden or in a hidden folder *****/ - ICanView = Usr_I_CAN; + ICanView = Usr_CAN; switch (Gbl.FileBrowser.Type) { case Brw_SHOW_DOC_INS: if (Gbl.Usrs.Me.Role.Logged < Rol_INS_ADM) - ICanView = Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (&FileMetadata) ? Usr_I_CAN_NOT : - Usr_I_CAN; + ICanView = (Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (&FileMetadata) == HidVis_VISIBLE) ? Usr_CAN : + Usr_CAN_NOT; break; case Brw_SHOW_DOC_CTR: if (Gbl.Usrs.Me.Role.Logged < Rol_CTR_ADM) - ICanView = Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (&FileMetadata) ? Usr_I_CAN_NOT : - Usr_I_CAN; + ICanView = (Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (&FileMetadata) == HidVis_VISIBLE) ? Usr_CAN : + Usr_CAN_NOT; break; case Brw_SHOW_DOC_DEG: if (Gbl.Usrs.Me.Role.Logged < Rol_DEG_ADM) - ICanView = Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (&FileMetadata) ? Usr_I_CAN_NOT : - Usr_I_CAN; + ICanView = (Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (&FileMetadata) == HidVis_VISIBLE) ? Usr_CAN : + Usr_CAN_NOT; break; case Brw_SHOW_DOC_CRS: case Brw_SHOW_DOC_GRP: if (Gbl.Usrs.Me.Role.Logged < Rol_TCH) - ICanView = Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (&FileMetadata) ? Usr_I_CAN_NOT : - Usr_I_CAN; + ICanView = (Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (&FileMetadata) == HidVis_VISIBLE) ? Usr_CAN : + Usr_CAN_NOT; break; default: break; @@ -7820,7 +7829,7 @@ void Brw_DownloadFile (void) switch (ICanView) { - case Usr_I_CAN: + case Usr_CAN: if (FileMetadata.FilFolLnk.Type == Brw_IS_FILE || FileMetadata.FilFolLnk.Type == Brw_IS_LINK) { @@ -7879,7 +7888,7 @@ void Brw_DownloadFile (void) Gbl.Layout.DivsEndWritten = Gbl.Layout.HTMLEndWritten = true; // Don't write HTML at all break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: /***** Mark possible notifications about non visible file as removed *****/ switch (Gbl.FileBrowser.Type) @@ -7918,7 +7927,7 @@ void Brw_DownloadFile (void) /*********** Check if I have permission to change file metadata **************/ /*****************************************************************************/ -static Usr_ICan_t Brw_CheckIfICanEditFileMetadata (bool IAmTheOwner) +static Usr_Can_t Brw_CheckIfICanEditFileMetadata (bool IAmTheOwner) { switch (Gbl.Action.Act) // Only in actions where edition is allowed { @@ -7947,10 +7956,10 @@ static Usr_ICan_t Brw_CheckIfICanEditFileMetadata (bool IAmTheOwner) case ActReqDatWrkUsr: case ActChgDatWrkUsr: case ActReqDatBrf: case ActChgDatBrf: - return IAmTheOwner ? Usr_I_CAN : - Usr_I_CAN_NOT; + return IAmTheOwner ? Usr_CAN : + Usr_CAN_NOT; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -8119,7 +8128,7 @@ void Brw_ChgFileMetadata (void) { /***** Check if I can change file metadata *****/ IAmTheOwner = Brw_CheckIfIAmOwnerOfFile (FileMetadata.PublisherUsrCod); - if (Brw_CheckIfICanEditFileMetadata (IAmTheOwner) == Usr_I_CAN_NOT) + if (Brw_CheckIfICanEditFileMetadata (IAmTheOwner) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Check if the file was public before the edition *****/ @@ -8688,40 +8697,40 @@ static void Brw_RemoveChildrenOfFolderFromDB (const char Path[PATH_MAX + 1]) /********** Check if I have permission to modify a file or folder ************/ /*****************************************************************************/ -static void Brw_SetIfICanEditFileOrFolder (Usr_ICan_t Value) +static void Brw_SetIfICanEditFileOrFolder (Usr_Can_t Value) { Brw_ICanEditFileOrFolder = Value; } -static Usr_ICan_t Brw_GetIfICanEditFileOrFolder (void) +static Usr_Can_t Brw_GetIfICanEditFileOrFolder (void) { return Brw_ICanEditFileOrFolder; } -static Usr_ICan_t Brw_CheckIfICanEditFileOrFolder (unsigned Level) +static Usr_Can_t Brw_CheckIfICanEditFileOrFolder (unsigned Level) { /***** Level 0 (root folder) can not be removed/renamed *****/ if (Level == 0) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** I must be student or a superior role to edit *****/ if (Gbl.Usrs.Me.Role.Max < Rol_STD) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** Set depending on browser, level, logged role... *****/ switch (Gbl.FileBrowser.Type) { case Brw_ADMI_DOC_CRS: - return (Gbl.Usrs.Me.Role.Logged >= Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.Role.Logged >= Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; case Brw_ADMI_DOC_GRP: if (Gbl.Usrs.Me.Role.Logged == Rol_TCH) // A teacher... // ...can edit only if he/she belongs to group - return Grp_GetIfIBelongToGrp (Gbl.Crs.Grps.GrpCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Grp_GetIfIBelongToGrp (Gbl.Crs.Grps.GrpCod) ? Usr_CAN : + Usr_CAN_NOT; // An administrator can edit - return (Gbl.Usrs.Me.Role.Logged > Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.Role.Logged > Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; case Brw_ADMI_TCH_CRS: case Brw_ADMI_TCH_GRP: // Check if I am the publisher of the file/folder @@ -8734,7 +8743,7 @@ static Usr_ICan_t Brw_CheckIfICanEditFileOrFolder (unsigned Level) case Brw_ADMI_ASG_CRS: if (Gbl.FileBrowser.FilFolLnk.Type == Brw_IS_FOLDER && // The main folder of an assignment Level == 1) - return Usr_I_CAN_NOT; // Do not remove / rename main folder of assigment + return Usr_CAN_NOT; // Do not remove / rename main folder of assigment return Asg_CheckIfICanCreateIntoAssigment (&Gbl.FileBrowser.Asg); case Brw_ADMI_DOC_PRJ: @@ -8742,8 +8751,8 @@ static Usr_ICan_t Brw_CheckIfICanEditFileOrFolder (unsigned Level) case Brw_ADMI_ASS_PRJ: return Brw_CheckIfICanModifyPrjAssFileOrFolder (); default: - return Brw_CheckIfFileBrowserIsEditable (Gbl.FileBrowser.Type) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Brw_CheckIfFileBrowserIsEditable (Gbl.FileBrowser.Type) ? Usr_CAN : + Usr_CAN_NOT; } return false; } @@ -8752,67 +8761,67 @@ static Usr_ICan_t Brw_CheckIfICanEditFileOrFolder (unsigned Level) /**** Check if I have permission to create a file or folder into a folder ****/ /*****************************************************************************/ -static Usr_ICan_t Brw_CheckIfICanCreateIntoFolder (unsigned Level) +static Usr_Can_t Brw_CheckIfICanCreateIntoFolder (unsigned Level) { /***** If not in a folder... *****/ if (Gbl.FileBrowser.FilFolLnk.Type != Brw_IS_FOLDER) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** I must be student, teacher, admin or superuser to edit *****/ if (Gbl.Usrs.Me.Role.Max < Rol_STD) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** If maximum level is reached, I can not create/paste *****/ if (Level >= BrwSiz_MAX_DIR_LEVELS) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** Have I permission to create/paste a new file or folder into the folder? *****/ switch (Gbl.FileBrowser.Type) { case Brw_ADMI_DOC_CRS: - return (Gbl.Usrs.Me.Role.Logged >= Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.Role.Logged >= Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; case Brw_ADMI_DOC_GRP: if (Gbl.Usrs.Me.Role.Logged == Rol_TCH) // A teacher // ...can create/paste only if he/she belongs to group - return Grp_GetIfIBelongToGrp (Gbl.Crs.Grps.GrpCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Grp_GetIfIBelongToGrp (Gbl.Crs.Grps.GrpCod) ? Usr_CAN : + Usr_CAN_NOT; // An administrator can create/paste - return (Gbl.Usrs.Me.Role.Logged > Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.Role.Logged > Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; case Brw_ADMI_TCH_CRS: - return (Gbl.Usrs.Me.Role.Logged >= Rol_NET) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.Role.Logged >= Rol_NET) ? Usr_CAN : + Usr_CAN_NOT; case Brw_ADMI_TCH_GRP: if (Gbl.Usrs.Me.Role.Logged == Rol_NET || // A non-editing teacher... Gbl.Usrs.Me.Role.Logged == Rol_TCH) // ...or a teacher // ...can create/paste only if he/she belongs to group - return Grp_GetIfIBelongToGrp (Gbl.Crs.Grps.GrpCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Grp_GetIfIBelongToGrp (Gbl.Crs.Grps.GrpCod) ? Usr_CAN : + Usr_CAN_NOT; // An administrator can create/paste - return (Gbl.Usrs.Me.Role.Logged > Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.Role.Logged > Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; case Brw_ADMI_SHR_CRS: - return (Gbl.Usrs.Me.Role.Logged >= Rol_STD) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.Role.Logged >= Rol_STD) ? Usr_CAN : + Usr_CAN_NOT; case Brw_ADMI_SHR_GRP: if (Gbl.Usrs.Me.Role.Logged >= Rol_STD && // A student, non-editing teacher... Gbl.Usrs.Me.Role.Logged <= Rol_TCH) // ...or a teacher // ...can create/paste only if he/she belongs to group - return Grp_GetIfIBelongToGrp (Gbl.Crs.Grps.GrpCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Grp_GetIfIBelongToGrp (Gbl.Crs.Grps.GrpCod) ? Usr_CAN : + Usr_CAN_NOT; // An administrator can create/paste - return (Gbl.Usrs.Me.Role.Logged >= Rol_STD) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.Role.Logged >= Rol_STD) ? Usr_CAN : + Usr_CAN_NOT; case Brw_ADMI_ASG_USR: case Brw_ADMI_ASG_CRS: if (Level == 0) // If root folder - return Usr_I_CAN_NOT; // Folders of assigments (level 1) + return Usr_CAN_NOT; // Folders of assigments (level 1) // can only be created automatically return Asg_CheckIfICanCreateIntoAssigment (&Gbl.FileBrowser.Asg); default: - return Brw_CheckIfFileBrowserIsEditable (Gbl.FileBrowser.Type) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Brw_CheckIfFileBrowserIsEditable (Gbl.FileBrowser.Type) ? Usr_CAN : + Usr_CAN_NOT; } } @@ -8866,41 +8875,41 @@ bool Brw_CheckIfFileBrowserIsEditable (Brw_FileBrowser_t FileBrowser) // I can remove or rename a file if I am the publisher // I can remove or rename a folder if I am the unique publisher of all files and folders in the subtree starting there -static Usr_ICan_t Brw_CheckIfICanModifySharedFileOrFolder (void) +static Usr_Can_t Brw_CheckIfICanModifySharedFileOrFolder (void) { switch (Gbl.Usrs.Me.Role.Logged) { case Rol_STD: // If I am a student or a non-editing teacher... case Rol_NET: // ...I can modify the file/folder if I am the publisher - return (Gbl.Usrs.Me.UsrDat.UsrCod == Brw_DB_GetPublisherOfSubtree (Gbl.FileBrowser.FilFolLnk.Full) ? Usr_I_CAN : - Usr_I_CAN_NOT); // Am I the publisher of subtree? + return (Gbl.Usrs.Me.UsrDat.UsrCod == Brw_DB_GetPublisherOfSubtree (Gbl.FileBrowser.FilFolLnk.Full) ? Usr_CAN : + Usr_CAN_NOT); // Am I the publisher of subtree? case Rol_TCH: case Rol_DEG_ADM: case Rol_CTR_ADM: case Rol_INS_ADM: case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } -static Usr_ICan_t Brw_CheckIfICanModifyPrivateFileOrFolder (void) +static Usr_Can_t Brw_CheckIfICanModifyPrivateFileOrFolder (void) { switch (Gbl.Usrs.Me.Role.Logged) { case Rol_NET: // If I am a student or a non-editing teacher... // ...I can modify the file/folder if I am the publisher - return (Gbl.Usrs.Me.UsrDat.UsrCod == Brw_DB_GetPublisherOfSubtree (Gbl.FileBrowser.FilFolLnk.Full) ? Usr_I_CAN : - Usr_I_CAN_NOT); // Am I the publisher of subtree? + return (Gbl.Usrs.Me.UsrDat.UsrCod == Brw_DB_GetPublisherOfSubtree (Gbl.FileBrowser.FilFolLnk.Full) ? Usr_CAN : + Usr_CAN_NOT); // Am I the publisher of subtree? case Rol_TCH: case Rol_DEG_ADM: case Rol_CTR_ADM: case Rol_INS_ADM: case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -8912,21 +8921,21 @@ static Usr_ICan_t Brw_CheckIfICanModifyPrivateFileOrFolder (void) // I can remove or rename a file if I am the publisher // I can remove or rename a folder if I am the unique publisher of all files and folders in the subtree starting there -static Usr_ICan_t Brw_CheckIfICanModifyPrjDocFileOrFolder (void) +static Usr_Can_t Brw_CheckIfICanModifyPrjDocFileOrFolder (void) { switch (Gbl.Usrs.Me.Role.Logged) { case Rol_STD: case Rol_NET: if (Prj_GetMyRolesInProject (Prj_GetPrjCod ())) // I am a member - return (Gbl.Usrs.Me.UsrDat.UsrCod == Brw_DB_GetPublisherOfSubtree (Gbl.FileBrowser.FilFolLnk.Full) ? Usr_I_CAN : - Usr_I_CAN_NOT); // Am I the publisher of subtree? - return Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.UsrDat.UsrCod == Brw_DB_GetPublisherOfSubtree (Gbl.FileBrowser.FilFolLnk.Full) ? Usr_CAN : + Usr_CAN_NOT); // Am I the publisher of subtree? + return Usr_CAN_NOT; case Rol_TCH: // Editing teachers in a course can access to all files case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -8938,7 +8947,7 @@ static Usr_ICan_t Brw_CheckIfICanModifyPrjDocFileOrFolder (void) // I can remove or rename a file if I am the publisher // I can remove or rename a folder if I am the unique publisher of all files and folders in the subtree starting there -static Usr_ICan_t Brw_CheckIfICanModifyPrjAssFileOrFolder (void) +static Usr_Can_t Brw_CheckIfICanModifyPrjAssFileOrFolder (void) { switch (Gbl.Usrs.Me.Role.Logged) { @@ -8946,14 +8955,14 @@ static Usr_ICan_t Brw_CheckIfICanModifyPrjAssFileOrFolder (void) case Rol_NET: if ((Prj_GetMyRolesInProject (Prj_GetPrjCod ()) & (1 << Prj_ROLE_TUT | // Tutor... 1 << Prj_ROLE_EVL))) // ...or evaluator - return (Gbl.Usrs.Me.UsrDat.UsrCod == Brw_DB_GetPublisherOfSubtree (Gbl.FileBrowser.FilFolLnk.Full) ? Usr_I_CAN : - Usr_I_CAN_NOT); // Am I the publisher of subtree? - return Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.UsrDat.UsrCod == Brw_DB_GetPublisherOfSubtree (Gbl.FileBrowser.FilFolLnk.Full) ? Usr_CAN : + Usr_CAN_NOT); // Am I the publisher of subtree? + return Usr_CAN_NOT; case Rol_TCH: // Editing teachers in a course can access to all files case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -9238,232 +9247,228 @@ static void Brw_WriteRowDocData (unsigned *NumDocsNotHidden,MYSQL_ROW row) FileMetadata.FilCod = Str_ConvertStrCodToLongCod (row[0]); Brw_GetFileMetadataByCod (&FileMetadata); - if (!Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (&FileMetadata)) - { - /***** Get institution code (row[2]) *****/ - Hie[Hie_INS].HieCod = Str_ConvertStrCodToLongCod (row[2]); - Str_Copy (Hie[Hie_INS].ShrtName,row[3],sizeof (Hie[Hie_INS].ShrtName) - 1); + /***** If hidden ==> nothing to show *****/ + if (Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (&FileMetadata) == HidVis_HIDDEN) + return; - /***** Get center code (row[4]) *****/ - Hie[Hie_CTR].HieCod = Str_ConvertStrCodToLongCod (row[4]); - Str_Copy (Hie[Hie_CTR].ShrtName,row[5],sizeof (Hie[Hie_CTR].ShrtName) - 1); + /***** Get institution code (row[2]) *****/ + Hie[Hie_INS].HieCod = Str_ConvertStrCodToLongCod (row[2]); + Str_Copy (Hie[Hie_INS].ShrtName,row[3],sizeof (Hie[Hie_INS].ShrtName) - 1); - /***** Get degree code (row[6]) *****/ - Hie[Hie_DEG].HieCod = Str_ConvertStrCodToLongCod (row[6]); - Str_Copy (Hie[Hie_DEG].ShrtName,row[7],sizeof (Hie[Hie_DEG].ShrtName) - 1); + /***** Get center code (row[4]) *****/ + Hie[Hie_CTR].HieCod = Str_ConvertStrCodToLongCod (row[4]); + Str_Copy (Hie[Hie_CTR].ShrtName,row[5],sizeof (Hie[Hie_CTR].ShrtName) - 1); - /***** Get course code (row[8]) *****/ - Hie[Hie_CRS].HieCod = Str_ConvertStrCodToLongCod (row[8]); - Str_Copy (Hie[Hie_CRS].ShrtName,row[9],sizeof (Hie[Hie_CRS].ShrtName) - 1); + /***** Get degree code (row[6]) *****/ + Hie[Hie_DEG].HieCod = Str_ConvertStrCodToLongCod (row[6]); + Str_Copy (Hie[Hie_DEG].ShrtName,row[7],sizeof (Hie[Hie_DEG].ShrtName) - 1); - /***** Get group code (row[8]) *****/ - GrpCod = Str_ConvertStrCodToLongCod (row[10]); + /***** Get course code (row[8]) *****/ + Hie[Hie_CRS].HieCod = Str_ConvertStrCodToLongCod (row[8]); + Str_Copy (Hie[Hie_CRS].ShrtName,row[9],sizeof (Hie[Hie_CRS].ShrtName) - 1); - /***** Set row color *****/ - BgColor = (Hie[Hie_CRS].HieCod > 0 && - Hie[Hie_CRS].HieCod == Gbl.Hierarchy.Node[Hie_CRS].HieCod) ? "BG_HIGHLIGHT" : - The_GetColorRows (); + /***** Get group code (row[8]) *****/ + GrpCod = Str_ConvertStrCodToLongCod (row[10]); - HTM_TR_Begin (NULL); + /***** Set row color *****/ + BgColor = (Hie[Hie_CRS].HieCod > 0 && + Hie[Hie_CRS].HieCod == Gbl.Hierarchy.Node[Hie_CRS].HieCod) ? "BG_HIGHLIGHT" : + The_GetColorRows (); - /***** Write number of document in this search *****/ - HTM_TD_Begin ("class=\"RT DAT_%s %s\"", - The_GetSuffix (),BgColor); - HTM_Unsigned (++(*NumDocsNotHidden)); - HTM_TD_End (); + HTM_TR_Begin (NULL); - /***** Write institution logo, institution short name *****/ - HTM_TD_Begin ("class=\"LT DAT_%s %s\"", - The_GetSuffix (),BgColor); - if (Hie[Hie_INS].HieCod > 0) - { - Frm_BeginFormGoTo (ActSeeInsInf); - ParCod_PutPar (ParCod_Ins,Hie[Hie_INS].HieCod); - HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Hie[Hie_INS].ShrtName), - "class=\"LT BT_LINK\""); - Str_FreeGoToTitle (); - Lgo_DrawLogo (Hie_INS,&Hie[Hie_INS],"LT BT_LINK ICO20x20"); - HTM_TxtF (" %s",Hie[Hie_INS].ShrtName); - HTM_BUTTON_End (); - Frm_EndForm (); - } - HTM_TD_End (); + /***** Write number of document in this search *****/ + HTM_TD_Begin ("class=\"RT DAT_%s %s\"",The_GetSuffix (),BgColor); + HTM_Unsigned (++(*NumDocsNotHidden)); + HTM_TD_End (); - /***** Write center logo, center short name *****/ - HTM_TD_Begin ("class=\"LT DAT_%s %s\"", - The_GetSuffix (),BgColor); - if (Hie[Hie_CTR].HieCod > 0) - { - Frm_BeginFormGoTo (ActSeeCtrInf); - ParCod_PutPar (ParCod_Ctr,Hie[Hie_CTR].HieCod); - HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Hie[Hie_CTR].ShrtName), - "class=\"LT BT_LINK\""); - Str_FreeGoToTitle (); - Lgo_DrawLogo (Hie_CTR,&Hie[Hie_CTR],"LT ICO20x20"); - HTM_TxtF (" %s",Hie[Hie_CTR].ShrtName); - HTM_BUTTON_End (); - Frm_EndForm (); - } - HTM_TD_End (); - - /***** Write degree logo, degree short name *****/ - HTM_TD_Begin ("class=\"LT DAT_%s %s\"", - The_GetSuffix (),BgColor); - if (Hie[Hie_DEG].HieCod > 0) - { - Frm_BeginFormGoTo (ActSeeDegInf); - ParCod_PutPar (ParCod_Deg,Hie[Hie_DEG].HieCod); - HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Hie[Hie_DEG].ShrtName), - "class=\"LT BT_LINK\""); - Str_FreeGoToTitle (); - Lgo_DrawLogo (Hie_DEG,&Hie[Hie_DEG],"LT ICO20x20"); - HTM_TxtF (" %s",Hie[Hie_DEG].ShrtName); - HTM_BUTTON_End (); - Frm_EndForm (); - } - HTM_TD_End (); - - /***** Write course short name *****/ - HTM_TD_Begin ("class=\"LT DAT_%s %s\"", - The_GetSuffix (),BgColor); - if (Hie[Hie_CRS].HieCod > 0) - { - Frm_BeginFormGoTo (ActSeeCrsInf); - ParCod_PutPar (ParCod_Crs,Hie[Hie_CRS].HieCod); - HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Hie[Hie_CRS].ShrtName), - "class=\"LT BT_LINK\""); - Str_FreeGoToTitle (); - HTM_Txt (Hie[Hie_CRS].ShrtName); - HTM_BUTTON_End (); - Frm_EndForm (); - } - HTM_TD_End (); - - /***** Write file zone *****/ - switch (FileMetadata.FileBrowser) + /***** Write institution logo, institution short name *****/ + HTM_TD_Begin ("class=\"LT DAT_%s %s\"",The_GetSuffix (),BgColor); + if (Hie[Hie_INS].HieCod > 0) { - case Brw_ADMI_DOC_INS: - case Brw_ADMI_DOC_CTR: - case Brw_ADMI_DOC_DEG: - case Brw_ADMI_DOC_CRS: - case Brw_ADMI_DOC_GRP: - Title = Txt_Documents_area; - break; - case Brw_ADMI_TCH_CRS: - case Brw_ADMI_TCH_GRP: - Title = Txt_Teachers_files_area; - break; - case Brw_ADMI_SHR_INS: - case Brw_ADMI_SHR_CTR: - case Brw_ADMI_SHR_DEG: - case Brw_ADMI_SHR_CRS: - case Brw_ADMI_SHR_GRP: - Title = Txt_Shared_files_area; - break; - case Brw_ADMI_ASG_USR: - Title = Txt_Assignments_area; - break; - case Brw_ADMI_WRK_USR: - Title = Txt_Works_area; - break; - case Brw_ADMI_DOC_PRJ: - Title = Txt_Project_documents; - break; - case Brw_ADMI_ASS_PRJ: - Title = Txt_Project_assessment; - break; - case Brw_ADMI_MRK_CRS: - case Brw_ADMI_MRK_GRP: - Title = Txt_Marks_area; - break; - case Brw_ADMI_BRF_USR: - Title = Txt_Temporary_private_storage_area; - break; - default: - Title = ""; - break; - } - - HTM_TD_Begin ("class=\"LT DAT_%s %s\"",The_GetSuffix (),BgColor); - HTM_Txt (Title); - HTM_TD_End (); - - /***** Get the name of the file to show *****/ - Brw_GetFileNameToShow (FileMetadata.FilFolLnk.Type, - FileMetadata.FilFolLnk.Name, - FileNameToShow); - - /***** Write file name using path (row[1]) *****/ - HTM_TD_Begin ("class=\"LT DAT_STRONG_%s %s\"",The_GetSuffix (),BgColor); - - /* Begin form */ - Action = Brw_ActReqDatFile[Brw_FileBrowserForFoundDocs[FileMetadata.FileBrowser]]; - - if (Hie[Hie_CRS].HieCod > 0) - { - Frm_BeginFormGoTo (Action); - ParCod_PutPar (ParCod_Crs,Hie[Hie_CRS].HieCod); // Go to course - if (GrpCod > 0) - ParCod_PutPar (ParCod_Grp,GrpCod); - } - else if (Hie[Hie_DEG].HieCod > 0) - { - Frm_BeginFormGoTo (Action); - ParCod_PutPar (ParCod_Deg,Hie[Hie_DEG].HieCod); // Go to degree - } - else if (Hie[Hie_CTR].HieCod > 0) - { - Frm_BeginFormGoTo (Action); - ParCod_PutPar (ParCod_Ctr,Hie[Hie_CTR].HieCod); // Go to center - } - else if (Hie[Hie_INS].HieCod > 0) - { - Frm_BeginFormGoTo (Action); - ParCod_PutPar (ParCod_Ins,Hie[Hie_INS].HieCod); // Go to institution - } - else - Frm_BeginForm (Action); - - /* Parameters to go to file / folder */ - if (FileMetadata.FilFolLnk.Type == Brw_IS_FOLDER) - Brw_PutImplicitParsFileBrowser (&Gbl.FileBrowser.FilFolLnk); - else - Brw_PutParsFileBrowser (NULL, // Not used - NULL, // Not used - Brw_IS_UNKNOWN, // Not used - FileMetadata.FilCod); - - /* File or folder icon */ - HTM_BUTTON_Submit_Begin (FileNameToShow,"class=\"LT BT_LINK\""); - switch (FileMetadata.FilFolLnk.Type) - { - case Brw_IS_FILE: - Brw_PutIconFile (FileMetadata.FilFolLnk.Name, - "CONTEXT_ICO16x16", - Frm_DONT_PUT_FORM); // Don't put link to view metadata - break; - case Brw_IS_FOLDER: - Ico_PutIcon ("folder-closed-yellow.png",Ico_UNCHANGED, - Txt_Folder,"CONTEXT_ICO16x16"); - break; - case Brw_IS_LINK: - Ico_PutIcon ("up-right-from-square.svg",Ico_BLACK, - Txt_Link,"CONTEXT_ICO16x16"); - break; - default: - break; - } - HTM_TxtF (" %s",FileNameToShow); - HTM_BUTTON_End (); - - /* End form */ + Frm_BeginFormGoTo (ActSeeInsInf); + ParCod_PutPar (ParCod_Ins,Hie[Hie_INS].HieCod); + HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Hie[Hie_INS].ShrtName), + "class=\"LT BT_LINK\""); + Str_FreeGoToTitle (); + Lgo_DrawLogo (Hie_INS,&Hie[Hie_INS],"LT BT_LINK ICO20x20"); + HTM_TxtF (" %s",Hie[Hie_INS].ShrtName); + HTM_BUTTON_End (); Frm_EndForm (); + } + HTM_TD_End (); - HTM_TD_End (); - HTM_TR_End (); + /***** Write center logo, center short name *****/ + HTM_TD_Begin ("class=\"LT DAT_%s %s\"",The_GetSuffix (),BgColor); + if (Hie[Hie_CTR].HieCod > 0) + { + Frm_BeginFormGoTo (ActSeeCtrInf); + ParCod_PutPar (ParCod_Ctr,Hie[Hie_CTR].HieCod); + HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Hie[Hie_CTR].ShrtName), + "class=\"LT BT_LINK\""); + Str_FreeGoToTitle (); + Lgo_DrawLogo (Hie_CTR,&Hie[Hie_CTR],"LT ICO20x20"); + HTM_TxtF (" %s",Hie[Hie_CTR].ShrtName); + HTM_BUTTON_End (); + Frm_EndForm (); + } + HTM_TD_End (); - The_ChangeRowColor (); - } + /***** Write degree logo, degree short name *****/ + HTM_TD_Begin ("class=\"LT DAT_%s %s\"",The_GetSuffix (),BgColor); + if (Hie[Hie_DEG].HieCod > 0) + { + Frm_BeginFormGoTo (ActSeeDegInf); + ParCod_PutPar (ParCod_Deg,Hie[Hie_DEG].HieCod); + HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Hie[Hie_DEG].ShrtName), + "class=\"LT BT_LINK\""); + Str_FreeGoToTitle (); + Lgo_DrawLogo (Hie_DEG,&Hie[Hie_DEG],"LT ICO20x20"); + HTM_TxtF (" %s",Hie[Hie_DEG].ShrtName); + HTM_BUTTON_End (); + Frm_EndForm (); + } + HTM_TD_End (); + + /***** Write course short name *****/ + HTM_TD_Begin ("class=\"LT DAT_%s %s\"",The_GetSuffix (),BgColor); + if (Hie[Hie_CRS].HieCod > 0) + { + Frm_BeginFormGoTo (ActSeeCrsInf); + ParCod_PutPar (ParCod_Crs,Hie[Hie_CRS].HieCod); + HTM_BUTTON_Submit_Begin (Str_BuildGoToTitle (Hie[Hie_CRS].ShrtName), + "class=\"LT BT_LINK\""); + Str_FreeGoToTitle (); + HTM_Txt (Hie[Hie_CRS].ShrtName); + HTM_BUTTON_End (); + Frm_EndForm (); + } + HTM_TD_End (); + + /***** Write file zone *****/ + switch (FileMetadata.FileBrowser) + { + case Brw_ADMI_DOC_INS: + case Brw_ADMI_DOC_CTR: + case Brw_ADMI_DOC_DEG: + case Brw_ADMI_DOC_CRS: + case Brw_ADMI_DOC_GRP: + Title = Txt_Documents_area; + break; + case Brw_ADMI_TCH_CRS: + case Brw_ADMI_TCH_GRP: + Title = Txt_Teachers_files_area; + break; + case Brw_ADMI_SHR_INS: + case Brw_ADMI_SHR_CTR: + case Brw_ADMI_SHR_DEG: + case Brw_ADMI_SHR_CRS: + case Brw_ADMI_SHR_GRP: + Title = Txt_Shared_files_area; + break; + case Brw_ADMI_ASG_USR: + Title = Txt_Assignments_area; + break; + case Brw_ADMI_WRK_USR: + Title = Txt_Works_area; + break; + case Brw_ADMI_DOC_PRJ: + Title = Txt_Project_documents; + break; + case Brw_ADMI_ASS_PRJ: + Title = Txt_Project_assessment; + break; + case Brw_ADMI_MRK_CRS: + case Brw_ADMI_MRK_GRP: + Title = Txt_Marks_area; + break; + case Brw_ADMI_BRF_USR: + Title = Txt_Temporary_private_storage_area; + break; + default: + Title = ""; + break; + } + + HTM_TD_Begin ("class=\"LT DAT_%s %s\"",The_GetSuffix (),BgColor); + HTM_Txt (Title); + HTM_TD_End (); + + /***** Get the name of the file to show *****/ + Brw_GetFileNameToShow (FileMetadata.FilFolLnk.Type, + FileMetadata.FilFolLnk.Name, + FileNameToShow); + + /***** Write file name using path (row[1]) *****/ + HTM_TD_Begin ("class=\"LT DAT_STRONG_%s %s\"",The_GetSuffix (),BgColor); + + /* Begin form */ + Action = Brw_ActReqDatFile[Brw_FileBrowserForFoundDocs[FileMetadata.FileBrowser]]; + + if (Hie[Hie_CRS].HieCod > 0) + { + Frm_BeginFormGoTo (Action); + ParCod_PutPar (ParCod_Crs,Hie[Hie_CRS].HieCod); // Go to course + if (GrpCod > 0) + ParCod_PutPar (ParCod_Grp,GrpCod); + } + else if (Hie[Hie_DEG].HieCod > 0) + { + Frm_BeginFormGoTo (Action); + ParCod_PutPar (ParCod_Deg,Hie[Hie_DEG].HieCod); // Go to degree + } + else if (Hie[Hie_CTR].HieCod > 0) + { + Frm_BeginFormGoTo (Action); + ParCod_PutPar (ParCod_Ctr,Hie[Hie_CTR].HieCod); // Go to center + } + else if (Hie[Hie_INS].HieCod > 0) + { + Frm_BeginFormGoTo (Action); + ParCod_PutPar (ParCod_Ins,Hie[Hie_INS].HieCod); // Go to institution + } + else + Frm_BeginForm (Action); + + /* Parameters to go to file / folder */ + if (FileMetadata.FilFolLnk.Type == Brw_IS_FOLDER) + Brw_PutImplicitParsFileBrowser (&Gbl.FileBrowser.FilFolLnk); + else + Brw_PutParsFileBrowser (NULL, // Not used + NULL, // Not used + Brw_IS_UNKNOWN, // Not used + FileMetadata.FilCod); + + /* File or folder icon */ + HTM_BUTTON_Submit_Begin (FileNameToShow,"class=\"LT BT_LINK\""); + switch (FileMetadata.FilFolLnk.Type) + { + case Brw_IS_FILE: + Brw_PutIconFile (FileMetadata.FilFolLnk.Name, + "CONTEXT_ICO16x16", + Frm_DONT_PUT_FORM); // Don't put link to view metadata + break; + case Brw_IS_FOLDER: + Ico_PutIcon ("folder-closed-yellow.png",Ico_UNCHANGED, + Txt_Folder,"CONTEXT_ICO16x16"); + break; + case Brw_IS_LINK: + Ico_PutIcon ("up-right-from-square.svg",Ico_BLACK, + Txt_Link,"CONTEXT_ICO16x16"); + break; + default: + break; + } + HTM_TxtF (" %s",FileNameToShow); + HTM_BUTTON_End (); + + /* End form */ + Frm_EndForm (); + + HTM_TD_End (); + HTM_TR_End (); + + The_ChangeRowColor (); } /*****************************************************************************/ diff --git a/swad_browser.h b/swad_browser.h index 842953409..c6121a4bf 100644 --- a/swad_browser.h +++ b/swad_browser.h @@ -213,7 +213,7 @@ void Brw_RcvFileInFileBrwClassic (void); void Brw_RecLinkFileBrowser (void); void Brw_SetDocumentAsVisible (void); void Brw_SetDocumentAsHidden (void); -HidVis_HiddenOrVisible_t Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (Brw_FileType_t FileType, +HidVis_HiddenOrVisible_t Brw_CheckIfFileOrFolderIsHiddenOrVisible (Brw_FileType_t FileType, const char *Path); void Brw_ShowFileMetadata (void); diff --git a/swad_browser_database.c b/swad_browser_database.c index 9dfdbeabd..c3dffbe7c 100644 --- a/swad_browser_database.c +++ b/swad_browser_database.c @@ -2299,13 +2299,13 @@ void Brw_DB_HideOrUnhideFileOrFolder (const char Path[PATH_MAX + 1], /************** Check if a file / folder from is set as hidden ***************/ /*****************************************************************************/ -unsigned Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingPath (MYSQL_RES **mysql_res, - const char *Path) +HidVis_HiddenOrVisible_t Brw_DB_CheckIfFileOrFolderIsHiddenUsingPath (MYSQL_RES **mysql_res, + const char *Path) { long Cod = Brw_GetCodForFileBrowser (); long ZoneUsrCod = Brw_GetZoneUsrCodForFileBrowser (); - return (unsigned) + return DB_QuerySELECT (mysql_res,"can not check if a file is hidden", "SELECT Hidden" // row[0] " FROM brw_files" @@ -2318,14 +2318,15 @@ unsigned Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingPath (MYSQL_RES **mysql_res (unsigned) Brw_DB_FileBrowserForDB_files[Gbl.FileBrowser.Type], Cod, ZoneUsrCod, - Path); + Path) ? HidVis_HIDDEN : + HidVis_VISIBLE; } /*****************************************************************************/ /******** Check if a file / folder from the documents zone is hidden *********/ /*****************************************************************************/ -bool Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (const struct Brw_FileMetadata *FileMetadata) +HidVis_HiddenOrVisible_t Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (const struct Brw_FileMetadata *FileMetadata) { /***** Get if a file or folder is under a hidden folder from database *****/ /* @@ -2350,7 +2351,8 @@ bool Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (const struct Brw_File FileMetadata->Cod, FileMetadata->ZoneUsrCod, FileMetadata->FilFolLnk.Full, - FileMetadata->FilFolLnk.Full); + FileMetadata->FilFolLnk.Full) ? HidVis_HIDDEN : + HidVis_VISIBLE; } /*****************************************************************************/ diff --git a/swad_browser_database.h b/swad_browser_database.h index f78aa6efb..22d1936a1 100644 --- a/swad_browser_database.h +++ b/swad_browser_database.h @@ -101,9 +101,9 @@ unsigned Brw_DB_GetNumFileViewsUsr (long UsrCod); //------------------------------- Hidden files -------------------------------- void Brw_DB_HideOrUnhideFileOrFolder (const char Path[PATH_MAX + 1], HidVis_HiddenOrVisible_t HiddenOrVisible); -unsigned Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingPath (MYSQL_RES **mysql_res, +unsigned Brw_DB_CheckIfFileOrFolderIsHiddenUsingPath (MYSQL_RES **mysql_res, const char *Path); -bool Brw_DB_CheckIfFileOrFolderIsSetAsHiddenUsingMetadata (const struct Brw_FileMetadata *FileMetadata); +HidVis_HiddenOrVisible_t Brw_DB_CheckIfFileOrFolderIsHiddenOrVisibleUsingMetadata (const struct Brw_FileMetadata *FileMetadata); //---------------------------- Expanded folders ------------------------------- void Brw_DB_InsertFolderInExpandedFolders (const char Path[PATH_MAX + 1]); diff --git a/swad_building.c b/swad_building.c index 6177d87f7..d1a03e24e 100644 --- a/swad_building.c +++ b/swad_building.c @@ -60,7 +60,7 @@ static struct Bld_Building *Bld_EditingBuilding = NULL; // Static variable to ke /*****************************************************************************/ static Bld_Order_t Bld_GetParBuildingOrder (void); -static Usr_ICan_t Bld_CheckIfICanCreateBuildings (void); +static Usr_Can_t Bld_CheckIfICanCreateBuildings (void); static void Bld_PutIconsListingBuildings (__attribute__((unused)) void *Args); static void Bld_PutIconToEditBuildings (void); static void Bld_PutIconsEditingBuildings (__attribute__((unused)) void *Args); @@ -196,10 +196,10 @@ static Bld_Order_t Bld_GetParBuildingOrder (void) /********************* Check if I can create buildings ***********************/ /*****************************************************************************/ -static Usr_ICan_t Bld_CheckIfICanCreateBuildings (void) +static Usr_Can_t Bld_CheckIfICanCreateBuildings (void) { - return (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ @@ -209,7 +209,7 @@ static Usr_ICan_t Bld_CheckIfICanCreateBuildings (void) static void Bld_PutIconsListingBuildings (__attribute__((unused)) void *Args) { /***** Put icon to edit buildings *****/ - if (Bld_CheckIfICanCreateBuildings () == Usr_I_CAN) + if (Bld_CheckIfICanCreateBuildings () == Usr_CAN) Bld_PutIconToEditBuildings (); } diff --git a/swad_call_for_exam.c b/swad_call_for_exam.c index c7d5279b8..4549896fc 100644 --- a/swad_call_for_exam.c +++ b/swad_call_for_exam.c @@ -675,11 +675,11 @@ static void Cfe_ListCallsForExams (struct Cfe_CallsForExams *CallsForExams, static void Cfe_PutIconsCallsForExams (__attribute__((unused)) void *Args) { /***** Icon to create a new call for exam *****/ - if (Cfe_CheckIfICanEditCallsForExams () == Usr_I_CAN) + if (Cfe_CheckIfICanEditCallsForExams () == Usr_CAN) Ico_PutContextualIconToAdd (ActEdiCfe,NULL,NULL,NULL); /***** Icon to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkCfe,NULL,NULL,NULL); } @@ -1464,7 +1464,7 @@ static void Cfe_PutIconsCallForExam (void *CallsForExams) if (CallsForExams) { - if (Cfe_CheckIfICanEditCallsForExams () == Usr_I_CAN) + if (Cfe_CheckIfICanEditCallsForExams () == Usr_CAN) { /***** Icon to remove call for exam *****/ Ico_PutContextualIconToRemove (ActReqRemCfe,NULL, @@ -1498,7 +1498,7 @@ static void Cfe_PutIconsCallForExam (void *CallsForExams) &((struct Cfe_CallsForExams *) CallsForExams)->ExaCod); /***** Link to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkCfe,NULL, Cfe_PutParExaCod, &((struct Cfe_CallsForExams *) CallsForExams)->ExaCod); @@ -1509,12 +1509,12 @@ static void Cfe_PutIconsCallForExam (void *CallsForExams) /******************* Check if I can edit calls for exams *********************/ /*****************************************************************************/ -Usr_ICan_t Cfe_CheckIfICanEditCallsForExams (void) +Usr_Can_t Cfe_CheckIfICanEditCallsForExams (void) { - static Usr_ICan_t ICanEditCallsForExams[Rol_NUM_ROLES] = + static Usr_Can_t ICanEditCallsForExams[Rol_NUM_ROLES] = { - [Rol_TCH ] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return ICanEditCallsForExams[Gbl.Usrs.Me.Role.Logged]; diff --git a/swad_call_for_exam.h b/swad_call_for_exam.h index 85aaa84e5..3450bfe2c 100644 --- a/swad_call_for_exam.h +++ b/swad_call_for_exam.h @@ -129,7 +129,7 @@ void Cfe_ListCallsForExamsDay (void); void Cfe_CreateListCallsForExams (struct Cfe_CallsForExams *CallsForExams); -Usr_ICan_t Cfe_CheckIfICanEditCallsForExams (void); +Usr_Can_t Cfe_CheckIfICanEditCallsForExams (void); void Cfe_GetSummaryAndContentCallForExam (char SummaryStr[Ntf_MAX_BYTES_SUMMARY + 1], char **ContentStr, diff --git a/swad_call_for_exam_database.c b/swad_call_for_exam_database.c index bcf216408..9f07e9100 100644 --- a/swad_call_for_exam_database.c +++ b/swad_call_for_exam_database.c @@ -87,10 +87,10 @@ unsigned Cfe_DB_GetCallsForExamsInCurrentCrs (MYSQL_RES **mysql_res) /***** Build subquery about status depending on my role *****/ switch (Cfe_CheckIfICanEditCallsForExams ()) { - case Usr_I_CAN: + case Usr_CAN: sprintf (SubQueryStatus,"Status<>%u",(unsigned) Cfe_DELETED_CALL_FOR_EXAM); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: sprintf (SubQueryStatus,"Status=%u",(unsigned) Cfe_VISIBLE_CALL_FOR_EXAM); break; diff --git a/swad_center.c b/swad_center.c index a9bac1539..97058871f 100644 --- a/swad_center.c +++ b/swad_center.c @@ -89,7 +89,7 @@ static void Ctr_GetCoordFromRow (MYSQL_RES *mysql_res, struct Map_Coordinates *Coord); static void Ctr_ListCentersForEdition (const struct Plc_Places *Places); -static Usr_ICan_t Ctr_CheckIfICanEditACenter (struct Hie_Node *Ctr); +static Usr_Can_t Ctr_CheckIfICanEditACenter (struct Hie_Node *Ctr); static void Ctr_ShowAlertAndButtonToGoToCtr (void); @@ -289,7 +289,7 @@ static void Ctr_ListCenters (void) static void Ctr_PutIconsListingCenters (__attribute__((unused)) void *Args) { /***** Put icon to edit centers *****/ - if (Hie_CheckIfICanEdit () == Usr_I_CAN) + if (Hie_CheckIfICanEdit () == Usr_CAN) Ctr_PutIconToEditCenters (); /***** Put icon to show a figure *****/ @@ -735,7 +735,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) const struct Plc_Place *Plc; char WWW[Cns_MAX_BYTES_WWW + 1]; struct Usr_Data UsrDat; - Usr_ICan_t ICanEdit; + Usr_Can_t ICanEdit; unsigned NumDegs; unsigned NumUsrsCtr; unsigned NumUsrsInCrssOfCtr; @@ -771,7 +771,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) /* Put icon to remove center */ HTM_TD_Begin ("class=\"BT\""); - if (ICanEdit == Usr_I_CAN_NOT || // I cannot edit + if (ICanEdit == Usr_CAN_NOT || // I cannot edit NumDegs || // Center has degrees NumUsrsCtr || // Center has users who claim to belong to it NumUsrsInCrssOfCtr) // Center has users @@ -795,7 +795,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) HTM_TD_Begin ("class=\"LT DAT_%s\"",The_GetSuffix ()); switch (ICanEdit) { - case Usr_I_CAN: + case Usr_CAN: Frm_BeginForm (ActChgCtrPlc); ParCod_PutPar (ParCod_OthHie,Ctr->HieCod); HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL, @@ -821,7 +821,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) HTM_SELECT_End (); Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: for (NumPlc = 0; NumPlc < Places->Num; @@ -838,14 +838,14 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) Nam_ExistingShortAndFullNames (ActionRename, ParCod_OthHie,Ctr->HieCod, Names, - ICanEdit == Usr_I_CAN ? Frm_PUT_FORM : + ICanEdit == Usr_CAN ? Frm_PUT_FORM : Frm_DONT_PUT_FORM); /* Center WWW */ HTM_TD_Begin ("class=\"LT DAT_%s\"",The_GetSuffix ()); switch (ICanEdit) { - case Usr_I_CAN: + case Usr_CAN: Frm_BeginForm (ActChgCtrWWW); ParCod_PutPar (ParCod_OthHie,Ctr->HieCod); HTM_INPUT_URL ("WWW",Ctr->WWW,HTM_SUBMIT_ON_CHANGE, @@ -854,7 +854,7 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) The_GetSuffix ()); Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Str_Copy (WWW,Ctr->WWW,sizeof (WWW) - 1); HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHRT\""); @@ -890,8 +890,8 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) HTM_TD_End (); /* Center status */ - Hie_WriteStatusCellEditable (Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM ? Usr_I_CAN : - Usr_I_CAN_NOT, + Hie_WriteStatusCellEditable (Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM ? Usr_CAN : + Usr_CAN_NOT, Ctr->Status,ActChgCtrSta,Ctr->HieCod, Txt_CENTER_STATUS); @@ -909,12 +909,12 @@ static void Ctr_ListCentersForEdition (const struct Plc_Places *Places) /************** Check if I can edit, remove, etc. a center *******************/ /*****************************************************************************/ -static Usr_ICan_t Ctr_CheckIfICanEditACenter (struct Hie_Node *Ctr) +static Usr_Can_t Ctr_CheckIfICanEditACenter (struct Hie_Node *Ctr) { return (Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM || // I am an institution administrator or higher ((Ctr->Status & Hie_STATUS_BIT_PENDING) != 0 && // Center is not yet activated - Gbl.Usrs.Me.UsrDat.UsrCod == Ctr->RequesterUsrCod)) ? Usr_I_CAN : // I am the requester - Usr_I_CAN_NOT; + Gbl.Usrs.Me.UsrDat.UsrCod == Ctr->RequesterUsrCod)) ? Usr_CAN : // I am the requester + Usr_CAN_NOT; } /*****************************************************************************/ diff --git a/swad_changelog.h b/swad_changelog.h index 2ba689923..ba960c866 100644 --- a/swad_changelog.h +++ b/swad_changelog.h @@ -633,10 +633,11 @@ Me sale este error, no s "can npt create received message (duplicated entry '243218-2160773' for key 'UsrCod_MsgCod') */ -#define Log_PLATFORM_VERSION "SWAD 23.75 (2024-04-13)" +#define Log_PLATFORM_VERSION "SWAD 23.76 (2024-04-19)" #define CSS_FILE "swad23.67.2.css" #define JS_FILE "swad23.53.6.js" /* + Version 23.76: Apr 19, 2024 Code refactoring related to don't belong/belong. (335550 lines) Version 23.75: Apr 13, 2024 Code refactoring related to closed/open. (335484 lines) Copy the following icons to icon public directory: sudo cp icon/folder-closed-yellow.png /var/www/html/swad/icon/ diff --git a/swad_chat.c b/swad_chat.c index 916523520..7a4d14708 100644 --- a/swad_chat.c +++ b/swad_chat.c @@ -135,7 +135,7 @@ void Cht_ShowListOfAvailableChatRooms (void) HTM_UL_Begin ("class=\"LIST_TREE\""); /***** Link to chat available for all users *****/ - IsLastItemInLevel[1] = (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] || + IsLastItemInLevel[1] = (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG || Gbl.Usrs.Me.Hierarchy[Hie_DEG].Num) ? Lay_NO_LAST_ITEM : Lay_LAST_ITEM; snprintf (ThisRoomFullName,sizeof (ThisRoomFullName),"%s (%s)", diff --git a/swad_connected.c b/swad_connected.c index bb397cad0..519f4758d 100644 --- a/swad_connected.c +++ b/swad_connected.c @@ -225,9 +225,9 @@ static void Con_ShowGlobalConnectedUsrsRole (Rol_Role_t Role,unsigned UsrsTotal) void Con_ComputeConnectedUsrsBelongingToCurrentCrs (void) { - if ((Gbl.Prefs.SideCols & Lay_SHOW_RIGHT_COLUMN) && // Right column visible - Gbl.Hierarchy.Level == Hie_CRS && // Course selected - (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] || // I can view users + if ((Gbl.Prefs.SideCols & Lay_SHOW_RIGHT_COLUMN) && // Right column visible + Gbl.Hierarchy.Level == Hie_CRS && // Course selected + (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG || // I can view users Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) { Gbl.Usrs.Connected.NumUsrs = diff --git a/swad_country.c b/swad_country.c index e5d89b03b..ce238470c 100644 --- a/swad_country.c +++ b/swad_country.c @@ -463,7 +463,7 @@ static void Cty_ListOneCountryForSeeing (struct Hie_Node *Cty,unsigned NumCty) static void Cty_PutIconsListingCountries (__attribute__((unused)) void *Args) { /***** Put icon to edit countries *****/ - if (Cty_CheckIfICanEditCountries () == Usr_I_CAN) + if (Cty_CheckIfICanEditCountries () == Usr_CAN) Cty_PutIconToEditCountries (); /***** Put icon to show a figure *****/ @@ -474,10 +474,10 @@ static void Cty_PutIconsListingCountries (__attribute__((unused)) void *Args) /********************** Check if I can edit countries ************************/ /*****************************************************************************/ -Usr_ICan_t Cty_CheckIfICanEditCountries (void) +Usr_Can_t Cty_CheckIfICanEditCountries (void) { - return (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ diff --git a/swad_country.h b/swad_country.h index 891ac5a68..121bd8f1f 100644 --- a/swad_country.h +++ b/swad_country.h @@ -54,7 +54,7 @@ void Cty_ListCountries (void); void Cty_ListCountries1 (void); void Cty_ListCountries2 (void); -Usr_ICan_t Cty_CheckIfICanEditCountries (void); +Usr_Can_t Cty_CheckIfICanEditCountries (void); void Cty_DrawCountryMapAndNameWithLink (struct Hie_Node *Cty,Act_Action_t Action, const char *ClassContainer, diff --git a/swad_country_config.c b/swad_country_config.c index 09e09e355..1c458ab00 100644 --- a/swad_country_config.c +++ b/swad_country_config.c @@ -341,7 +341,7 @@ static void CtyCfg_MapImage (Vie_ViewType_t ViewType,Hie_PutLink_t PutLink) HTM_DIV_End (); /***** Map attribution *****/ - if (ViewType == Vie_VIEW && Cty_CheckIfICanEditCountries () == Usr_I_CAN) + if (ViewType == Vie_VIEW && Cty_CheckIfICanEditCountries () == Usr_CAN) { HTM_DIV_Begin ("class=\"CM\""); Frm_BeginForm (ActChgCtyMapAtt); diff --git a/swad_course.c b/swad_course.c index 125284765..30f249a43 100644 --- a/swad_course.c +++ b/swad_course.c @@ -100,7 +100,7 @@ static void Crs_EditCoursesInternal (void); static void Crs_PutIconsEditingCourses (__attribute__((unused)) void *Args); static void Crs_ListCoursesForEdition (void); static void Crs_ListCoursesOfAYearForEdition (unsigned Year); -static Usr_ICan_t Crs_CheckIfICanEdit (struct Hie_Node *Crs); +static Usr_Can_t Crs_CheckIfICanEdit (struct Hie_Node *Crs); static void Crs_PutFormToCreateCourse (void); static void Crs_PutHeadCoursesForSeeing (void); static void Crs_PutHeadCoursesForEdition (void); @@ -357,8 +357,8 @@ void Crs_WriteSelectorMyCoursesInBreadcrumb (void) /***** Write an option with the current course when I don't belong to it *****/ - if (Gbl.Hierarchy.Level == Hie_CRS && // Course selected - !Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) // I do not belong to it + if (Gbl.Hierarchy.Level == Hie_CRS && // Course selected + Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_DONT_BELONG) // I do not belong to it HTM_OPTION (HTM_Type_LONG,&Gbl.Hierarchy.Node[Hie_CRS].HieCod, HTM_OPTION_SELECTED, HTM_OPTION_DISABLED, @@ -423,7 +423,7 @@ static void Crs_ListCourses (void) static void Crs_PutIconsListCourses (__attribute__((unused)) void *Args) { /***** Put icon to edit courses *****/ - if (Hie_CheckIfICanEdit () == Usr_I_CAN) + if (Hie_CheckIfICanEdit () == Usr_CAN) Crs_PutIconToEditCourses (); /***** Put icon to show a figure *****/ @@ -479,8 +479,8 @@ static bool Crs_ListCoursesOfAYearForSeeing (unsigned Year) } /* Check if this course is one of my courses */ - BgColor = (Hie_CheckIfIBelongTo (Hie_CRS,Crs->HieCod)) ? "BG_HIGHLIGHT" : - The_GetColorRows (); + BgColor = (Hie_CheckIfIBelongTo (Hie_CRS,Crs->HieCod) == Usr_BELONG) ? "BG_HIGHLIGHT" : + The_GetColorRows (); HTM_TR_Begin (NULL); @@ -660,7 +660,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) unsigned YearAux; unsigned NumCrs; struct Usr_Data UsrDat; - Usr_ICan_t ICanEdit; + Usr_Can_t ICanEdit; unsigned NumUsrs[Rol_NUM_ROLES]; const char *Names[Nam_NUM_SHRT_FULL_NAMES]; @@ -691,9 +691,9 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) /* Put icon to remove course */ HTM_TD_Begin ("class=\"BT\""); if (NumUsrs[Rol_UNK] || // Course has users ==> deletion forbidden - ICanEdit == Usr_I_CAN_NOT) + ICanEdit == Usr_CAN_NOT) Ico_PutIconRemovalNotAllowed (); - else // Crs->NumUsrs == 0 && ICanEdit == Usr_I_CAN + else // Crs->NumUsrs == 0 && ICanEdit == Usr_CAN Ico_PutContextualIconToRemove (ActRemCrs,NULL, Hie_PutParOtherHieCod,&Crs->HieCod); HTM_TD_End (); @@ -707,7 +707,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) HTM_TD_Begin ("class=\"CT DAT_%s\"",The_GetSuffix ()); switch (ICanEdit) { - case Usr_I_CAN: + case Usr_CAN: Frm_BeginForm (ActChgCrsYea); ParCod_PutPar (ParCod_OthHie,Crs->HieCod); HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL, @@ -727,7 +727,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) HTM_SELECT_End (); Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: HTM_Txt (Txt_YEAR_OF_DEGREE[Crs->Specific.Year]); break; @@ -738,7 +738,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) HTM_TD_Begin ("class=\"LT DAT_%s\"",The_GetSuffix ()); switch (ICanEdit) { - case Usr_I_CAN: + case Usr_CAN: Frm_BeginForm (ActChgInsCrsCod); ParCod_PutPar (ParCod_OthHie,Crs->HieCod); HTM_INPUT_TEXT ("InsCrsCod",Hie_MAX_CHARS_INSTITUTIONAL_COD, @@ -747,7 +747,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) The_GetSuffix ()); Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: HTM_Txt (Crs->InstitutionalCod); break; @@ -760,7 +760,7 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) Nam_ExistingShortAndFullNames (ActionRename, ParCod_OthHie,Crs->HieCod, Names, - ICanEdit == Usr_I_CAN ? Frm_PUT_FORM : + ICanEdit == Usr_CAN ? Frm_PUT_FORM : Frm_DONT_PUT_FORM); /* Current number of teachers in this course */ @@ -781,8 +781,8 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) HTM_TD_End (); /* Course status */ - Hie_WriteStatusCellEditable (Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM ? Usr_I_CAN : - Usr_I_CAN_NOT, + Hie_WriteStatusCellEditable (Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM ? Usr_CAN : + Usr_CAN_NOT, Crs->Status,ActChgCrsSta,Crs->HieCod, Txt_COURSE_STATUS); @@ -798,12 +798,12 @@ static void Crs_ListCoursesOfAYearForEdition (unsigned Year) /************** Check if I can edit, remove, etc. a course *******************/ /*****************************************************************************/ -static Usr_ICan_t Crs_CheckIfICanEdit (struct Hie_Node *Crs) +static Usr_Can_t Crs_CheckIfICanEdit (struct Hie_Node *Crs) { return (Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM || // I am a degree administrator or higher ((Crs->Status & Hie_STATUS_BIT_PENDING) != 0 && // Course is not yet activated - Gbl.Usrs.Me.UsrDat.UsrCod == Crs->RequesterUsrCod)) ? Usr_I_CAN : // I am the requester - Usr_I_CAN_NOT; + Gbl.Usrs.Me.UsrDat.UsrCod == Crs->RequesterUsrCod)) ? Usr_CAN : // I am the requester + Usr_CAN_NOT; } /*****************************************************************************/ @@ -1061,7 +1061,7 @@ void Crs_RemoveCourse (void) /***** Get data of the course from database *****/ Hie_GetDataByCod[Hie_CRS] (Crs_EditingCrs); - if (Crs_CheckIfICanEdit (Crs_EditingCrs) == Usr_I_CAN_NOT) + if (Crs_CheckIfICanEdit (Crs_EditingCrs) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Check if this course has users *****/ @@ -1304,7 +1304,7 @@ void Crs_ChangeInsCrsCod (void) /* Get data of the course */ Hie_GetDataByCod[Hie_CRS] (Crs_EditingCrs); - if (Crs_CheckIfICanEdit (Crs_EditingCrs) == Usr_I_CAN_NOT) + if (Crs_CheckIfICanEdit (Crs_EditingCrs) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Change the institutional course code *****/ @@ -1349,7 +1349,7 @@ void Crs_ChangeCrsYear (void) /* Get data of the course */ Hie_GetDataByCod[Hie_CRS] (Crs_EditingCrs); - if (Crs_CheckIfICanEdit (Crs_EditingCrs) == Usr_I_CAN_NOT) + if (Crs_CheckIfICanEdit (Crs_EditingCrs) == Usr_CAN_NOT) Err_NoPermissionExit (); if (NewYear <= Deg_MAX_YEARS_PER_DEGREE) // If year is valid @@ -1454,7 +1454,7 @@ void Crs_RenameCourse (struct Hie_Node *Crs,Nam_ShrtOrFullName_t ShrtOrFull) /***** Get from the database the data of the degree *****/ Hie_GetDataByCod[Hie_CRS] (Crs); - if (Crs_CheckIfICanEdit (Crs) == Usr_I_CAN_NOT) + if (Crs_CheckIfICanEdit (Crs) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Check if new name is empty *****/ diff --git a/swad_degree.c b/swad_degree.c index d8735770c..7cb51618e 100644 --- a/swad_degree.c +++ b/swad_degree.c @@ -84,7 +84,7 @@ static struct Hie_Node *Deg_EditingDeg = NULL; // Static variable to keep the de /*****************************************************************************/ static void Deg_ListDegreesForEdition (const struct DegTyp_DegTypes *DegTypes); -static Usr_ICan_t Deg_CheckIfICanEditADegree (struct Hie_Node *Deg); +static Usr_Can_t Deg_CheckIfICanEditADegree (struct Hie_Node *Deg); static void Deg_PutFormToCreateDegree (const struct DegTyp_DegTypes *DegTypes); static void Deg_PutHeadDegreesForSeeing (void); static void Deg_PutHeadDegreesForEdition (void); @@ -325,7 +325,7 @@ static void Deg_ListDegreesForEdition (const struct DegTyp_DegTypes *DegTypes) struct DegTyp_DegreeType *DegTyp; char WWW[Cns_MAX_BYTES_WWW + 1]; struct Usr_Data UsrDat; - Usr_ICan_t ICanEdit; + Usr_Can_t ICanEdit; unsigned NumCrss; unsigned NumUsrsInCrssOfDeg; const char *Names[Nam_NUM_SHRT_FULL_NAMES]; @@ -359,7 +359,7 @@ static void Deg_ListDegreesForEdition (const struct DegTyp_DegTypes *DegTypes) /* Put icon to remove degree */ HTM_TD_Begin ("class=\"BT\""); - if (ICanEdit == Usr_I_CAN_NOT || + if (ICanEdit == Usr_CAN_NOT || NumCrss || // Degree has courses ==> deletion forbidden NumUsrsInCrssOfDeg) Ico_PutIconRemovalNotAllowed (); @@ -384,14 +384,14 @@ static void Deg_ListDegreesForEdition (const struct DegTyp_DegTypes *DegTypes) Nam_ExistingShortAndFullNames (ActionRename, ParCod_OthHie,Deg->HieCod, Names, - ICanEdit == Usr_I_CAN ? Frm_PUT_FORM : + ICanEdit == Usr_CAN ? Frm_PUT_FORM : Frm_DONT_PUT_FORM); /* Degree type */ HTM_TD_Begin ("class=\"LT DAT_%s\"",The_GetSuffix ()); switch (ICanEdit) { - case Usr_I_CAN: + case Usr_CAN: Frm_BeginForm (ActChgDegTyp); ParCod_PutPar (ParCod_OthHie,Deg->HieCod); HTM_SELECT_Begin (HTM_SUBMIT_ON_CHANGE,NULL, @@ -412,7 +412,7 @@ static void Deg_ListDegreesForEdition (const struct DegTyp_DegTypes *DegTypes) HTM_SELECT_End (); Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: for (NumDegTyp = 0; NumDegTyp < DegTypes->Num; @@ -430,7 +430,7 @@ static void Deg_ListDegreesForEdition (const struct DegTyp_DegTypes *DegTypes) HTM_TD_Begin ("class=\"LT DAT_%s\"",The_GetSuffix ()); switch (ICanEdit) { - case Usr_I_CAN: + case Usr_CAN: Frm_BeginForm (ActChgDegWWW); ParCod_PutPar (ParCod_OthHie,Deg->HieCod); HTM_INPUT_URL ("WWW",Deg->WWW,HTM_SUBMIT_ON_CHANGE, @@ -439,7 +439,7 @@ static void Deg_ListDegreesForEdition (const struct DegTyp_DegTypes *DegTypes) The_GetSuffix ()); Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Str_Copy (WWW,Deg->WWW,sizeof (WWW) - 1); HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHRT\""); @@ -472,8 +472,8 @@ static void Deg_ListDegreesForEdition (const struct DegTyp_DegTypes *DegTypes) HTM_TD_End (); /* Degree status */ - Hie_WriteStatusCellEditable (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM ? Usr_I_CAN : - Usr_I_CAN_NOT, + Hie_WriteStatusCellEditable (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM ? Usr_CAN : + Usr_CAN_NOT, Deg->Status,ActChgDegSta,Deg->HieCod, Txt_DEGREE_STATUS); @@ -491,12 +491,12 @@ static void Deg_ListDegreesForEdition (const struct DegTyp_DegTypes *DegTypes) /************** Check if I can edit, remove, etc. a degree *******************/ /*****************************************************************************/ -static Usr_ICan_t Deg_CheckIfICanEditADegree (struct Hie_Node *Deg) +static Usr_Can_t Deg_CheckIfICanEditADegree (struct Hie_Node *Deg) { return (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM || // I am a center administrator or higher ((Deg->Status & Hie_STATUS_BIT_PENDING) != 0 && // Degree is not yet activated - Gbl.Usrs.Me.UsrDat.UsrCod == Deg->RequesterUsrCod)) ? Usr_I_CAN : // I am the requester - Usr_I_CAN_NOT; + Gbl.Usrs.Me.UsrDat.UsrCod == Deg->RequesterUsrCod)) ? Usr_CAN : // I am the requester + Usr_CAN_NOT; } /*****************************************************************************/ @@ -728,7 +728,7 @@ static void Deg_ListDegrees (void) static void Deg_PutIconsListingDegrees (__attribute__((unused)) void *Args) { /***** Put icon to edit degrees *****/ - if (Hie_CheckIfICanEdit () == Usr_I_CAN) + if (Hie_CheckIfICanEdit () == Usr_CAN) Deg_PutIconToEditDegrees (); /***** Put icon to view degree types *****/ @@ -890,7 +890,7 @@ static void Deg_EditDegreesInternal (void) Ale_ShowAlert (Ale_WARNING,Txt_No_types_of_degree); /***** Form to create the first degree type *****/ - if (DegTyp_CheckIfICanCreateDegreeTypes () == Usr_I_CAN) + if (DegTyp_CheckIfICanCreateDegreeTypes () == Usr_CAN) DegTyp_EditDegreeTypes (&DegTypes); } diff --git a/swad_degree_type.c b/swad_degree_type.c index 195e7ab0d..efea71e83 100644 --- a/swad_degree_type.c +++ b/swad_degree_type.c @@ -373,7 +373,7 @@ static void DegTyp_PutIconsListingDegTypes (__attribute__((unused)) void *Args) static void DegTyp_PutIconToEditDegTypes (__attribute__((unused)) void *Args) { if (Gbl.Hierarchy.Level == Hie_CTR && // Only editable if center tab is visible - DegTyp_CheckIfICanCreateDegreeTypes () == Usr_I_CAN) + DegTyp_CheckIfICanCreateDegreeTypes () == Usr_CAN) Ico_PutContextualIconToEdit (ActEdiDegTyp,NULL,NULL,NULL); } @@ -442,10 +442,10 @@ static void DegTyp_ListDegreeTypesForEdition (const struct DegTyp_DegTypes *DegT /******************** Check if I can create degree types *********************/ /*****************************************************************************/ -Usr_ICan_t DegTyp_CheckIfICanCreateDegreeTypes (void) +Usr_Can_t DegTyp_CheckIfICanCreateDegreeTypes (void) { - return (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ diff --git a/swad_degree_type.h b/swad_degree_type.h index 44c0acd6c..67cd6c12a 100644 --- a/swad_degree_type.h +++ b/swad_degree_type.h @@ -73,7 +73,7 @@ void DegTyp_EditDegreeTypes (const struct DegTyp_DegTypes *DegTypes); void DegTyp_PutIconToViewDegreeTypes (void); -Usr_ICan_t DegTyp_CheckIfICanCreateDegreeTypes (void); +Usr_Can_t DegTyp_CheckIfICanCreateDegreeTypes (void); void DegTyp_GetListDegreeTypes (struct DegTyp_DegTypes *DegTypes, Hie_Level_t Level,DegTyp_Order_t Order); diff --git a/swad_department.c b/swad_department.c index 5c210fa83..88298f1f4 100644 --- a/swad_department.c +++ b/swad_department.c @@ -53,11 +53,11 @@ /****************************** Private constants ****************************/ /*****************************************************************************/ -static Usr_ICan_t Dpt_ICanEditDpts[Rol_NUM_ROLES] = +static Usr_Can_t Dpt_ICanEditDpts[Rol_NUM_ROLES] = { /* Users who can edit */ - [Rol_INS_ADM] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_INS_ADM] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; /*****************************************************************************/ @@ -243,7 +243,7 @@ static Dpt_Order_t Dpt_GetParDptOrder (void) static void Dpt_PutIconToEditDpts (__attribute__((unused)) void *Args) { - if (Dpt_ICanEditDpts[Gbl.Usrs.Me.Role.Logged] == Usr_I_CAN) + if (Dpt_ICanEditDpts[Gbl.Usrs.Me.Role.Logged] == Usr_CAN) Ico_PutContextualIconToEdit (ActEdiDpt,NULL,NULL,NULL); } diff --git a/swad_duplicate.c b/swad_duplicate.c index f218b1b15..f17f2ed95 100644 --- a/swad_duplicate.c +++ b/swad_duplicate.c @@ -311,7 +311,7 @@ static void Dup_ListSimilarUsrs (void) Usr_NUM_MAIN_FIELDS_DATA_USR-2, The_GetColorRows ()); /* Button to remove this user */ - if (Acc_CheckIfICanEliminateAccount (UsrDat.UsrCod) == Usr_I_CAN) + if (Acc_CheckIfICanEliminateAccount (UsrDat.UsrCod) == Usr_CAN) Dup_PutButtonToEliminateUsrAccount (&UsrDat); /* Button to remove from list of possible duplicate users */ if (Dup_DB_CheckIfUsrIsDup (UsrDat.UsrCod)) diff --git a/swad_enrolment.c b/swad_enrolment.c index e88bb8ed7..05692282a 100644 --- a/swad_enrolment.c +++ b/swad_enrolment.c @@ -145,7 +145,7 @@ static void Enr_AskIfRegRemUsr (struct Usr_ListUsrCods *ListUsrCods,Rol_Role_t R static void Enr_ShowFormToEditOtherUsr (void); -static Usr_ICan_t Enr_CheckIfICanRemUsrFromCrs (void); +static Usr_Can_t Enr_CheckIfICanRemUsrFromCrs (void); static void Enr_AskIfRemoveUsrFromCrs (struct Usr_Data *UsrDat); static void Enr_EffectivelyRemUsrFromCrs (struct Usr_Data *UsrDat, @@ -1428,7 +1428,7 @@ bool Enr_PutActionsRegRemOneUsr (Usr_MeOrOther_t MeOrOther) } /***** Eliminate user completely from platform *****/ - if (Acc_CheckIfICanEliminateAccount (Gbl.Usrs.Other.UsrDat.UsrCod) == Usr_I_CAN) + if (Acc_CheckIfICanEliminateAccount (Gbl.Usrs.Other.UsrDat.UsrCod) == Usr_CAN) { Enr_PutActionRemUsrAcc (&OptionChecked,MeOrOther); OptionsShown = true; @@ -2373,8 +2373,8 @@ void Enr_PutLinkToAdminOneUsr (Act_Action_t NextAction) extern const char *Txt_Administer_one_user; static const char **TitleText[] = { - [Usr_I_CAN_NOT] = &Txt_Administer_me, - [Usr_I_CAN ] = &Txt_Administer_one_user, + [Usr_CAN_NOT] = &Txt_Administer_me, + [Usr_CAN ] = &Txt_Administer_one_user, }; Lay_PutContextualLinkIconText (NextAction,NULL, @@ -2424,7 +2424,7 @@ void Enr_ReqRegRemOth (void) void Enr_ReqRegRemStd (void) { /***** Contextual menu *****/ - if (Adm_CheckIfICanAdminOtherUsrs () == Usr_I_CAN) + if (Adm_CheckIfICanAdminOtherUsrs () == Usr_CAN) { Mnu_ContextMenuBegin (); Enr_PutLinkToAdminSeveralUsrs (Rol_STD); // Admin several students @@ -2445,11 +2445,11 @@ static void Enr_ReqRegRemUsr (Rol_Role_t Role) { switch (Adm_CheckIfICanAdminOtherUsrs ()) { - case Usr_I_CAN: + case Usr_CAN: /***** Form to request the user's ID of another user *****/ Enr_ReqAnotherUsrIDToRegisterRemove (Role); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: /***** Form to request if register/remove me *****/ Enr_AskIfRegRemMe (Role); @@ -2680,10 +2680,10 @@ void Enr_ReqRemUsrFromCrs (void) if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Enr_CheckIfICanRemUsrFromCrs ()) { - case Usr_I_CAN: + case Usr_CAN: Enr_AskIfRemoveUsrFromCrs (&Gbl.Usrs.Other.UsrDat); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -2704,13 +2704,13 @@ void Enr_RemUsrFromCrs1 (void) if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Enr_CheckIfICanRemUsrFromCrs ()) { - case Usr_I_CAN: + case Usr_CAN: Enr_EffectivelyRemUsrFromCrs (&Gbl.Usrs.Other.UsrDat, &Gbl.Hierarchy.Node[Hie_CRS], Enr_DO_NOT_REMOVE_USR_PRODUCTION, Cns_VERBOSE); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_CreateAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -2733,24 +2733,24 @@ void Enr_RemUsrFromCrs2 (void) /*********** Check if I can remove another user in current course ************/ /*****************************************************************************/ -static Usr_ICan_t Enr_CheckIfICanRemUsrFromCrs (void) +static Usr_Can_t Enr_CheckIfICanRemUsrFromCrs (void) { switch (Gbl.Usrs.Me.Role.Logged) { case Rol_STD: case Rol_NET: // A student or non-editing teacher can remove herself/himself - return (Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod) == Usr_ME) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod) == Usr_ME) ? Usr_CAN : + Usr_CAN_NOT; case Rol_TCH: case Rol_DEG_ADM: case Rol_CTR_ADM: case Rol_INS_ADM: case Rol_SYS_ADM: // A teacher or administrator can remove anyone - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -2916,7 +2916,7 @@ void Enr_ModifyUsr1 (void) if (MeOrOther == Usr_ME || Gbl.Usrs.Me.Role.Logged >= Rol_TCH) { /***** Get user's name from record form *****/ - if (Usr_ICanChangeOtherUsrData (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + if (Usr_ICanChangeOtherUsrData (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) Rec_GetUsrNameFromRecordForm (&Gbl.Usrs.Other.UsrDat); /***** Update user's data in database *****/ @@ -3021,7 +3021,7 @@ void Enr_ModifyUsr1 (void) Ale_CreateAlertUserNotFoundOrYouDoNotHavePermission (); break; case Enr_ELIMINATE_ONE_USR_FROM_PLATFORM: - if (Acc_CheckIfICanEliminateAccount (Gbl.Usrs.Other.UsrDat.UsrCod) == Usr_I_CAN_NOT) + if (Acc_CheckIfICanEliminateAccount (Gbl.Usrs.Other.UsrDat.UsrCod) == Usr_CAN_NOT) Ale_CreateAlertUserNotFoundOrYouDoNotHavePermission (); break; default: @@ -3200,7 +3200,7 @@ static void Enr_EffectivelyRemUsrFromCrs (struct Usr_Data *UsrDat, { case Usr_ME: /* Now I don't belong to current course */ - Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] = + Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] = Usr_DONT_BELONG; Gbl.Usrs.Me.UsrDat.Accepted = false; /* Fill the list with the courses I belong to */ @@ -3339,7 +3339,7 @@ bool Enr_CheckIfUsrSharesAnyOfMyCrs (struct Usr_Data *UsrDat) return Gbl.Cache.UsrSharesAnyOfMyCrs.SharesAnyOfMyCrs; /***** 5. Fast check: Is course selected and we both belong to it? *****/ - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG) if (Enr_CheckIfUsrBelongsToCurrentCrs (UsrDat)) // Course selected and we both belong to it { Gbl.Cache.UsrSharesAnyOfMyCrs.UsrCod = UsrDat->UsrCod; diff --git a/swad_exam.c b/swad_exam.c index 19fcaba2f..8a6babe60 100644 --- a/swad_exam.c +++ b/swad_exam.c @@ -315,12 +315,12 @@ void Exa_ListAllExams (struct Exa_Exams *Exams) /************************ Check if I can edit exams **************************/ /*****************************************************************************/ -Usr_ICan_t Exa_CheckIfICanEditExams (void) +Usr_Can_t Exa_CheckIfICanEditExams (void) { - static Usr_ICan_t ICanEditExams[Rol_NUM_ROLES] = + static Usr_Can_t ICanEditExams[Rol_NUM_ROLES] = { - [Rol_TCH ] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return ICanEditExams[Gbl.Usrs.Me.Role.Logged]; @@ -343,7 +343,7 @@ static void Exa_PutIconsListExams (void *Exams) if (Exams) { /***** Put icon to create a new exam *****/ - if (Exa_CheckIfICanEditExams () == Usr_I_CAN) + if (Exa_CheckIfICanEditExams () == Usr_CAN) Exa_PutIconToCreateNewExam ((struct Exa_Exams *) Exams); /***** Put icon to view sessions results *****/ @@ -352,7 +352,7 @@ static void Exa_PutIconsListExams (void *Exams) NULL,NULL); /***** Link to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkExa,NULL,Exa_PutPars,Exams); /***** Put icon to show a figure *****/ @@ -671,7 +671,7 @@ static void Exa_PutIconsToRemEditOneExam (struct Exa_Exams *Exams, [Rol_SYS_ADM] = ActSeeUsrExaResExa, }; - if (Exa_CheckIfICanEditExams () == Usr_I_CAN) + if (Exa_CheckIfICanEditExams () == Usr_CAN) { /***** Icon to remove exam *****/ Ico_PutContextualIconToRemove (ActReqRemExa,NULL, @@ -692,7 +692,7 @@ static void Exa_PutIconsToRemEditOneExam (struct Exa_Exams *Exams, Exa_PutPars,Exams); /***** Link to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkExa,NULL,Exa_PutPars,Exams); } @@ -971,7 +971,7 @@ void Exa_AskRemExam (void) struct Exa_Exams Exams; /***** Check if I can edit exams *****/ - if (Exa_CheckIfICanEditExams () == Usr_I_CAN_NOT) + if (Exa_CheckIfICanEditExams () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Reset exams context *****/ @@ -1004,7 +1004,7 @@ void Exa_RemoveExam (void) struct Exa_Exams Exams; /***** Check if I can edit exams *****/ - if (Exa_CheckIfICanEditExams () == Usr_I_CAN_NOT) + if (Exa_CheckIfICanEditExams () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Reset exams context *****/ @@ -1184,7 +1184,7 @@ static void Exa_HideUnhideExam (HidVis_HiddenOrVisible_t HiddenOrVisible) struct Exa_Exams Exams; /***** Check if I can edit exams *****/ - if (Exa_CheckIfICanEditExams () == Usr_I_CAN_NOT) + if (Exa_CheckIfICanEditExams () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Reset exams context *****/ @@ -1214,7 +1214,7 @@ void Exa_ReqCreatOrEditExam (void) Exa_ExistingNewExam_t ExistingNewExam; /***** Check if I can edit exams *****/ - if (Exa_CheckIfICanEditExams () == Usr_I_CAN_NOT) + if (Exa_CheckIfICanEditExams () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Reset exams context *****/ @@ -1425,7 +1425,7 @@ void Exa_ReceiveExam (void) char Txt[Cns_MAX_BYTES_TEXT + 1]; /***** Check if I can edit exams *****/ - if (Exa_CheckIfICanEditExams () == Usr_I_CAN_NOT) + if (Exa_CheckIfICanEditExams () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Reset exams context *****/ diff --git a/swad_exam.h b/swad_exam.h index 2258a43ca..8c95b3c52 100644 --- a/swad_exam.h +++ b/swad_exam.h @@ -40,7 +40,7 @@ void Exa_ResetExam (struct Exa_Exam *Exam); void Exa_SeeAllExams (void); void Exa_ListAllExams (struct Exa_Exams *Exams); -Usr_ICan_t Exa_CheckIfICanEditExams (void); +Usr_Can_t Exa_CheckIfICanEditExams (void); void Exa_SeeOneExam (void); void Exa_ShowOnlyOneExam (struct Exa_Exams *Exams,Frm_PutForm_t PutFormSession); diff --git a/swad_exam_database.c b/swad_exam_database.c index 9da5d8b65..271f3315c 100644 --- a/swad_exam_database.c +++ b/swad_exam_database.c @@ -1668,7 +1668,7 @@ unsigned Exa_DB_GetGrpsAssociatedToSes (MYSQL_RES **mysql_res,long SesCod) /*** Check if I belong to any of the groups associated to the exam session ***/ /*****************************************************************************/ -Usr_ICan_t Exa_DB_CheckIfICanListThisSessionBasedOnGrps (long SesCod) +Usr_Can_t Exa_DB_CheckIfICanListThisSessionBasedOnGrps (long SesCod) { return DB_QueryEXISTS ("can not check if I can play an exam session", @@ -1686,8 +1686,8 @@ Usr_ICan_t Exa_DB_CheckIfICanListThisSessionBasedOnGrps (long SesCod) " WHERE grp_users.UsrCod=%ld" " AND grp_users.GrpCod=exa_groups.GrpCod)))", SesCod, - Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ @@ -2151,10 +2151,10 @@ bool Exa_DB_CheckIfUserAgentIsTheSameAsTheLast (long PrnCod,const char *UserAgen void Exa_DB_LogAccess (long LogCod,long PrnCod,ExaLog_Action_t Action) { - static char YN[Usr_NUM_I_CAN] = + static char YN[Usr_NUM_CAN] = { - [Usr_I_CAN_NOT] = 'N', - [Usr_I_CAN ] = 'Y', + [Usr_CAN_NOT] = 'N', + [Usr_CAN ] = 'Y', }; /* Log access in exam log. diff --git a/swad_exam_database.h b/swad_exam_database.h index d07b90132..02ae80cfe 100644 --- a/swad_exam_database.h +++ b/swad_exam_database.h @@ -128,7 +128,7 @@ void Exa_DB_RemoveUsrFromSessionTablesInCrs (long UsrCod,long CrsCod); //--------------------------------- Groups ------------------------------------ void Exa_DB_CreateGrpAssociatedToSes (long SesCod,long GrpCod); unsigned Exa_DB_GetGrpsAssociatedToSes (MYSQL_RES **mysql_res,long SesCod); -Usr_ICan_t Exa_DB_CheckIfICanListThisSessionBasedOnGrps (long SesCod); +Usr_Can_t Exa_DB_CheckIfICanListThisSessionBasedOnGrps (long SesCod); void Exa_DB_RemoveAllGrpsFromExa (long ExaCod); void Exa_DB_RemoveAllGrpsFromCrs (long CrsCod); void Exa_DB_RemoveAllGrpsFromSes (long SesCod); diff --git a/swad_exam_log.c b/swad_exam_log.c index cb172d944..debc3e3f5 100644 --- a/swad_exam_log.c +++ b/swad_exam_log.c @@ -54,13 +54,13 @@ static struct long PrnCod; // Exam print code int QstInd; // Exam print question index ExaLog_Action_t Action; // Action performed by user - Usr_ICan_t ICanAnswer; // Exam print is open and accesible to answer by the user + Usr_Can_t ICanAnswer; // Exam print is open and accesible to answer by the user } ExaLog_Log = { .PrnCod = -1L, // -1 means no print code set .QstInd = -1, // -1 means no question index set .Action = ExaLog_UNKNOWN_ACTION, - .ICanAnswer = false, + .ICanAnswer = Usr_CAN_NOT, }; /*****************************************************************************/ @@ -116,12 +116,12 @@ int ExaLog_GetQstInd (void) /************* Set and get if exam print is open and accessible **************/ /*****************************************************************************/ -void ExaLog_SetIfCanAnswer (Usr_ICan_t ICanAnswer) +void ExaLog_SetIfCanAnswer (Usr_Can_t ICanAnswer) { ExaLog_Log.ICanAnswer = ICanAnswer; } -Usr_ICan_t ExaLog_GetIfCanAnswer (void) +Usr_Can_t ExaLog_GetIfCanAnswer (void) { return ExaLog_Log.ICanAnswer; } diff --git a/swad_exam_log.h b/swad_exam_log.h index a6278eaf0..6dc2af28b 100644 --- a/swad_exam_log.h +++ b/swad_exam_log.h @@ -54,8 +54,8 @@ void ExaLog_SetAction (ExaLog_Action_t Action); ExaLog_Action_t ExaLog_GetAction (void); void ExaLog_SetQstInd (unsigned QstInd); int ExaLog_GetQstInd (void); -void ExaLog_SetIfCanAnswer (Usr_ICan_t CanBeAnswered); -Usr_ICan_t ExaLog_GetIfCanAnswer (void); +void ExaLog_SetIfCanAnswer (Usr_Can_t CanBeAnswered); +Usr_Can_t ExaLog_GetIfCanAnswer (void); void ExaLog_LogAccess (long LogCod); diff --git a/swad_exam_print.c b/swad_exam_print.c index 46a852d3a..c7d9c7b72 100644 --- a/swad_exam_print.c +++ b/swad_exam_print.c @@ -180,7 +180,7 @@ void ExaPrn_ShowExamPrint (void) /***** Check if I can access to this session *****/ switch (ExaSes_CheckIfICanAnswerThisSession (&Exams.Exam,&Session)) { - case Usr_I_CAN: + case Usr_CAN: /***** Set basic data of exam print *****/ Print.SesCod = Session.SesCod; Print.UsrCod = Gbl.Usrs.Me.UsrDat.UsrCod; @@ -225,7 +225,7 @@ void ExaPrn_ShowExamPrint (void) /***** Show test to be answered *****/ ExaPrn_ShowExamPrintToFillIt (&Exams,&Print); break; - case Usr_I_CAN_NOT: // Session not open or accessible + case Usr_CAN_NOT: // Session not open or accessible default: /***** Show warning *****/ Ale_ShowAlert (Ale_INFO,Txt_You_dont_have_access_to_the_exam); @@ -1002,7 +1002,7 @@ void ExaPrn_ReceivePrintAnswer (void) /***** Check if session if visible and open *****/ switch (ExaSes_CheckIfICanAnswerThisSession (&Exams.Exam,&Session)) { - case Usr_I_CAN: + case Usr_CAN: /***** Set log open to true ****/ ExaLog_SetIfCanAnswer (true); @@ -1024,7 +1024,7 @@ void ExaPrn_ReceivePrintAnswer (void) /***** Show table with questions to answer *****/ ExaPrn_ShowTableWithQstsToFill (&Exams,&Print); break; - case Usr_I_CAN_NOT: // Not accessible to answer + case Usr_CAN_NOT: // Not accessible to answer default: /***** Set log open to false ****/ ExaLog_SetIfCanAnswer (false); diff --git a/swad_exam_result.c b/swad_exam_result.c index f03ae9205..376aef3cc 100644 --- a/swad_exam_result.c +++ b/swad_exam_result.c @@ -69,8 +69,8 @@ extern struct Globals Gbl; struct ExaRes_ICanView { - Usr_ICan_t Result; - Usr_ICan_t Score; + Usr_Can_t Result; + Usr_Can_t Score; }; /*****************************************************************************/ @@ -358,7 +358,7 @@ static void ExaRes_ListAllResultsInSelectedExams (struct Exa_Exams *Exams) if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat, Usr_DONT_GET_PREFS, Usr_DONT_GET_ROLE_IN_CRS)) - if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) { /***** Show sessions results *****/ Gbl.Usrs.Other.UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Other.UsrDat); @@ -424,7 +424,7 @@ static void ExaRes_ListAllResultsInExa (struct Exa_Exams *Exams) if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat, Usr_DONT_GET_PREFS, Usr_DONT_GET_ROLE_IN_CRS)) - if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) { /***** Show sessions results *****/ Gbl.Usrs.Other.UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Other.UsrDat); @@ -495,7 +495,7 @@ static void ExaRes_ListAllResultsInSes (struct Exa_Exams *Exams,long SesCod) if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat, Usr_DONT_GET_PREFS, Usr_DONT_GET_ROLE_IN_CRS)) - if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) { /***** Show sessions results *****/ Gbl.Usrs.Other.UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Other.UsrDat); @@ -830,7 +830,7 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, HTM_TD_End (); /* Get and accumulate questions and score */ - if (ICanView.Score == Usr_I_CAN) + if (ICanView.Score == Usr_CAN) { /* Get questions and user's answers of exam print from database */ ExaPrn_GetPrintQuestionsFromDB (&Print); @@ -852,10 +852,10 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: HTM_Unsigned (Print.NumQsts.All); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -867,13 +867,13 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: if (Print.NumQsts.Valid.Total) HTM_Unsigned (Print.NumQsts.Valid.Total); else HTM_Light0 (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -885,7 +885,7 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: NumQstsInvalid = Print.NumQsts.All - Print.NumQsts.Valid.Total; if (NumQstsInvalid) @@ -893,7 +893,7 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, else HTM_Light0 (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -905,13 +905,13 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: if (Print.NumQsts.Valid.Correct) HTM_Unsigned (Print.NumQsts.Valid.Correct); else HTM_Light0 (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -923,13 +923,13 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: if (Print.NumQsts.Valid.Wrong.Negative) HTM_Unsigned (Print.NumQsts.Valid.Wrong.Negative); else HTM_Light0 (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -940,13 +940,13 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: if (Print.NumQsts.Valid.Wrong.Zero) HTM_Unsigned (Print.NumQsts.Valid.Wrong.Zero); else HTM_Light0 (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -957,13 +957,13 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: if (Print.NumQsts.Valid.Wrong.Positive) HTM_Unsigned (Print.NumQsts.Valid.Wrong.Positive); else HTM_Light0 (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -975,13 +975,13 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: if (Print.NumQsts.Valid.Blank) HTM_Unsigned (Print.NumQsts.Valid.Blank); else HTM_Light0 (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -993,12 +993,12 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: HTM_Double2Decimals (Print.Score.Valid); HTM_Txt ("/"); HTM_Unsigned (Print.NumQsts.Valid.Total); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1010,12 +1010,12 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: HTM_Double2Decimals (Print.NumQsts.Valid.Total ? Print.Score.Valid / (double) Print.NumQsts.Valid.Total : 0.0); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1027,12 +1027,12 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: Grade = TstPrn_ComputeGrade (Print.NumQsts.Valid.Total,Print.Score.Valid,Exam.MaxGrade); TstPrn_ShowGrade (Grade,Exam.MaxGrade); TotalGrade += Grade; break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1043,7 +1043,7 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, HTM_TD_Begin ("class=\"RT LINE_LEFT %s\"",The_GetColorRows ()); switch (ICanView.Result) { - case Usr_I_CAN: + case Usr_CAN: Exams->Exam.ExaCod = Session.ExaCod; Exams->SesCod = Session.SesCod; switch (MeOrOther) @@ -1062,7 +1062,7 @@ static void ExaRes_ShowResults (struct Exa_Exams *Exams, } Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1258,8 +1258,8 @@ void ExaRes_ShowExaResultAfterFinish (void) struct ExaPrn_Print Print; struct ExaRes_ICanView ICanView = { - .Result = Usr_I_CAN, // I have just finish answering, so show result... - .Score = Usr_I_CAN_NOT, // ...but not score + .Result = Usr_CAN, // I have just finish answering, so show result... + .Score = Usr_CAN_NOT, // ...but not score }; unsigned Visibility = 1 << TstVis_VISIBLE_QST_ANS_TXT; // Show only questions and answers text @@ -1385,7 +1385,7 @@ static void ExaRes_ShowExamResult (const struct Exa_Exam *Exam, Usr_DONT_GET_PREFS, Usr_DONT_GET_ROLE_IN_CRS)) Err_WrongUserExit (); - if (Usr_CheckIfICanViewTstExaMchResult (UsrDat) == Usr_I_CAN_NOT) + if (Usr_CheckIfICanViewTstExaMchResult (UsrDat) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Begin table *****/ @@ -1410,7 +1410,7 @@ static void ExaRes_ShowExamResult (const struct Exa_Exam *Exam, ExaRes_ShowExamResultGrade (Exam,Print,ICanView); /* Answers and solutions */ - if (ICanView->Result == Usr_I_CAN) + if (ICanView->Result == Usr_CAN) ExaRes_ShowExamAnswers (UsrDat,Print,Visibility); /***** End table *****/ @@ -1437,21 +1437,21 @@ static void ExaRes_CheckIfICanViewResult (const struct Exa_Exam *Exam, ICanView->Result = (Usr_ItsMe (UsrCod) == Usr_ME && // The result is mine Exam->HiddenOrVisible == HidVis_VISIBLE && // The exam is visible Session->HiddenOrVisible == HidVis_VISIBLE && // The session is visible - Session->ShowUsrResults) ? Usr_I_CAN : // The results of the session are visible to users - Usr_I_CAN_NOT; + Session->ShowUsrResults) ? Usr_CAN : // The results of the session are visible to users + Usr_CAN_NOT; // Whether I belong or not to groups of session is not checked here... // ...because I should be able to see old exams made in old groups to which I belonged switch (ICanView->Result) { - case Usr_I_CAN: + case Usr_CAN: // Depends on 5 visibility icons associated to exam - ICanView->Score = TstVis_IsVisibleTotalScore (Exam->Visibility) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanView->Score = TstVis_IsVisibleTotalScore (Exam->Visibility) ? Usr_CAN : + Usr_CAN_NOT; break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: - ICanView->Score = Usr_I_CAN_NOT; + ICanView->Score = Usr_CAN_NOT; break; } break; @@ -1462,11 +1462,11 @@ static void ExaRes_CheckIfICanViewResult (const struct Exa_Exam *Exam, case Rol_INS_ADM: case Rol_SYS_ADM: ICanView->Result = - ICanView->Score = Usr_I_CAN; + ICanView->Score = Usr_CAN; break; default: ICanView->Result = - ICanView->Score = Usr_I_CAN_NOT; + ICanView->Score = Usr_CAN_NOT; break; } } @@ -1649,7 +1649,7 @@ static void ExaRes_ShowExamResultNumQsts (struct ExaPrn_Print *Print, HTM_TD_Begin ("class=\"LB DAT_%s\"",The_GetSuffix ()); switch (ICanView->Result) { - case Usr_I_CAN: + case Usr_CAN: HTM_TxtF ("%u",Print->NumQsts.All); if (Print->NumQsts.All != Print->NumQsts.Valid.Total) { @@ -1672,7 +1672,7 @@ static void ExaRes_ShowExamResultNumQsts (struct ExaPrn_Print *Print, HTM_Txt (")"); } break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1707,7 +1707,7 @@ static void ExaRes_ShowExamResultNumAnss (struct ExaPrn_Print *Print, HTM_TD_Begin ("class=\"LB DAT_%s\"",The_GetSuffix ()); switch (ICanView->Score) { - case Usr_I_CAN: + case Usr_CAN: HTM_TxtF ("%s(pi=1): %u; " "%s(-1≤pi<0): %u; " "%s(pi=0): %u; " @@ -1719,7 +1719,7 @@ static void ExaRes_ShowExamResultNumAnss (struct ExaPrn_Print *Print, Txt_ANSWERS_wrong ,Print->NumQsts.Valid.Wrong.Positive, Txt_ANSWERS_blank ,Print->NumQsts.Valid.Blank); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1752,7 +1752,7 @@ static void ExaRes_ShowExamResultScore (struct ExaPrn_Print *Print, HTM_TD_Begin ("class=\"LB DAT_%s\"",The_GetSuffix ()); switch (ICanView->Score) { - case Usr_I_CAN: + case Usr_CAN: /* Score counting all questions */ if (Print->NumQsts.All == Print->NumQsts.Valid.Total) HTM_STRONG_Begin (); @@ -1774,7 +1774,7 @@ static void ExaRes_ShowExamResultScore (struct ExaPrn_Print *Print, HTM_STRONG_End (); } break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1808,7 +1808,7 @@ static void ExaRes_ShowExamResultGrade (const struct Exa_Exam *Exam, HTM_TD_Begin ("class=\"LB DAT_%s\"",The_GetSuffix ()); switch (ICanView->Score) { - case Usr_I_CAN: + case Usr_CAN: /* Grade counting all questions */ if (Print->NumQsts.All == Print->NumQsts.Valid.Total) HTM_STRONG_Begin (); @@ -1828,7 +1828,7 @@ static void ExaRes_ShowExamResultGrade (const struct Exa_Exam *Exam, HTM_STRONG_End (); } break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1881,7 +1881,7 @@ static void ExaRes_WriteQstAndAnsExam (struct Usr_Data *UsrDat, { extern const char *Txt_Score; extern const char *Txt_Invalid_question; - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY]; + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY]; static const char *ClassNumQst[Qst_NUM_VALIDITIES] = { [Qst_INVALID_QUESTION] = "BIG_INDEX_RED", @@ -1907,14 +1907,14 @@ static void ExaRes_WriteQstAndAnsExam (struct Usr_Data *UsrDat, switch (Gbl.Usrs.Me.Role.Logged) { case Rol_STD: - ICanView[TstVis_VISIBLE_QST_ANS_TXT ] = TstVis_IsVisibleQstAndAnsTxt (Visibility) ? Usr_I_CAN: - Usr_I_CAN_NOT; - ICanView[TstVis_VISIBLE_FEEDBACK_TXT ] = TstVis_IsVisibleFeedbackTxt (Visibility) ? Usr_I_CAN: - Usr_I_CAN_NOT; - ICanView[TstVis_VISIBLE_CORRECT_ANSWER] = TstVis_IsVisibleCorrectAns (Visibility) ? Usr_I_CAN: - Usr_I_CAN_NOT; - ICanView[TstVis_VISIBLE_EACH_QST_SCORE] = TstVis_IsVisibleEachQstScore (Visibility) ? Usr_I_CAN: - Usr_I_CAN_NOT; + ICanView[TstVis_VISIBLE_QST_ANS_TXT ] = TstVis_IsVisibleQstAndAnsTxt (Visibility) ? Usr_CAN: + Usr_CAN_NOT; + ICanView[TstVis_VISIBLE_FEEDBACK_TXT ] = TstVis_IsVisibleFeedbackTxt (Visibility) ? Usr_CAN: + Usr_CAN_NOT; + ICanView[TstVis_VISIBLE_CORRECT_ANSWER] = TstVis_IsVisibleCorrectAns (Visibility) ? Usr_CAN: + Usr_CAN_NOT; + ICanView[TstVis_VISIBLE_EACH_QST_SCORE] = TstVis_IsVisibleEachQstScore (Visibility) ? Usr_CAN: + Usr_CAN_NOT; break; case Rol_NET: case Rol_TCH: @@ -1925,13 +1925,13 @@ static void ExaRes_WriteQstAndAnsExam (struct Usr_Data *UsrDat, ICanView[TstVis_VISIBLE_QST_ANS_TXT ] = ICanView[TstVis_VISIBLE_FEEDBACK_TXT ] = ICanView[TstVis_VISIBLE_CORRECT_ANSWER] = - ICanView[TstVis_VISIBLE_EACH_QST_SCORE] = Usr_I_CAN; + ICanView[TstVis_VISIBLE_EACH_QST_SCORE] = Usr_CAN; break; default: ICanView[TstVis_VISIBLE_QST_ANS_TXT ] = ICanView[TstVis_VISIBLE_FEEDBACK_TXT ] = ICanView[TstVis_VISIBLE_CORRECT_ANSWER] = - ICanView[TstVis_VISIBLE_EACH_QST_SCORE] = Usr_I_CAN_NOT; + ICanView[TstVis_VISIBLE_EACH_QST_SCORE] = Usr_CAN_NOT; break; } @@ -1950,10 +1950,10 @@ static void ExaRes_WriteQstAndAnsExam (struct Usr_Data *UsrDat, /* Stem */ Qst_WriteQstStem (Question->Stem,ClassTxt[Question->Validity], - ICanView[TstVis_VISIBLE_QST_ANS_TXT] == Usr_I_CAN); + ICanView[TstVis_VISIBLE_QST_ANS_TXT] == Usr_CAN); /* Media */ - if (ICanView[TstVis_VISIBLE_QST_ANS_TXT] == Usr_I_CAN) + if (ICanView[TstVis_VISIBLE_QST_ANS_TXT] == Usr_CAN) Med_ShowMedia (&Question->Media, "Tst_MED_SHOW_CONT", "Tst_MED_SHOW"); @@ -1966,7 +1966,7 @@ static void ExaRes_WriteQstAndAnsExam (struct Usr_Data *UsrDat, ClassFeedback[Question->Validity]); /* Write score retrieved from database */ - if (ICanView[TstVis_VISIBLE_EACH_QST_SCORE] == Usr_I_CAN) + if (ICanView[TstVis_VISIBLE_EACH_QST_SCORE] == Usr_CAN) { HTM_DIV_Begin ("class=\"LM DAT_SMALL_%s\"", The_GetSuffix ()); @@ -1985,7 +1985,7 @@ static void ExaRes_WriteQstAndAnsExam (struct Usr_Data *UsrDat, } /* Question feedback */ - if (ICanView[TstVis_VISIBLE_FEEDBACK_TXT] == Usr_I_CAN) + if (ICanView[TstVis_VISIBLE_FEEDBACK_TXT] == Usr_CAN) Qst_WriteQstFeedback (Question->Feedback, ClassFeedback[Question->Validity]); diff --git a/swad_exam_session.c b/swad_exam_session.c index abf75e11d..1cdcc3d50 100644 --- a/swad_exam_session.c +++ b/swad_exam_session.c @@ -72,10 +72,10 @@ static void ExaSes_ListOneOrMoreSessions (struct Exa_Exams *Exams, Frm_PutForm_t PutFormSession, unsigned NumSessions, MYSQL_RES *mysql_res); -static void ExaSes_ListOneOrMoreSessionsHeading (Usr_ICan_t ICanEditSessions); -static Usr_ICan_t ExaSes_CheckIfICanEditSessions (void); -static Usr_ICan_t ExaSes_CheckIfICanEditThisSession (long UsrCod); -static Usr_ICan_t ExaSes_CheckIfICanChangeVisibilityOfResults (const struct ExaSes_Session *Session); +static void ExaSes_ListOneOrMoreSessionsHeading (Usr_Can_t ICanEditSessions); +static Usr_Can_t ExaSes_CheckIfICanEditSessions (void); +static Usr_Can_t ExaSes_CheckIfICanEditThisSession (long UsrCod); +static Usr_Can_t ExaSes_CheckIfICanChangeVisibilityOfResults (const struct ExaSes_Session *Session); static void ExaSes_ListOneOrMoreSessionsIcons (struct Exa_Exams *Exams, const struct ExaSes_Session *Session, const char *Anchor); @@ -152,7 +152,7 @@ void ExaSes_ListSessions (struct Exa_Exams *Exams, /***** Select whether show only my groups or all groups *****/ if (Gbl.Crs.Grps.NumGrps && - ExaSes_CheckIfICanEditSessions () == Usr_I_CAN) + ExaSes_CheckIfICanEditSessions () == Usr_CAN) { Set_BeginSettingsHead (); Grp_ShowFormToSelWhichGrps (ActSeeOneExa,Exa_PutPars,Exams); @@ -205,7 +205,7 @@ void ExaSes_GetSessionDataByCod (struct ExaSes_Session *Session) static void ExaSes_PutIconsInListOfSessions (void *Exams) { if (Exams) - if (ExaSes_CheckIfICanEditSessions () == Usr_I_CAN) + if (ExaSes_CheckIfICanEditSessions () == Usr_CAN) /***** Put icon to create a new exam session in current exam *****/ ExaSes_PutIconToCreateNewSession ((struct Exa_Exams *) Exams); } @@ -233,7 +233,7 @@ static void ExaSes_ListOneOrMoreSessions (struct Exa_Exams *Exams, unsigned UniqueId; struct ExaSes_Session Session; char *Anchor; - Usr_ICan_t ICanEditSessions = ExaSes_CheckIfICanEditSessions (); + Usr_Can_t ICanEditSessions = ExaSes_CheckIfICanEditSessions (); long SesCodToBeEdited = PutFormSession == Frm_PUT_FORM && Exams->SesCod > 0 ? Exams->SesCod : -1L; @@ -256,7 +256,7 @@ static void ExaSes_ListOneOrMoreSessions (struct Exa_Exams *Exams, /***** Get exam session data from row *****/ ExaSes_GetSessionDataFromRow (mysql_res,&Session); - if (ExaSes_CheckIfICanListThisSessionBasedOnGrps (Session.SesCod) == Usr_I_CAN) + if (ExaSes_CheckIfICanListThisSessionBasedOnGrps (Session.SesCod) == Usr_CAN) { /***** Build anchor string *****/ if (asprintf (&Anchor,"evt_%ld_%ld",Exams->Exam.ExaCod,Session.SesCod) < 0) @@ -329,7 +329,7 @@ static void ExaSes_ListOneOrMoreSessions (struct Exa_Exams *Exams, /************* Put a column for exam session start and end times *************/ /*****************************************************************************/ -static void ExaSes_ListOneOrMoreSessionsHeading (Usr_ICan_t ICanEditSessions) +static void ExaSes_ListOneOrMoreSessionsHeading (Usr_Can_t ICanEditSessions) { extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME]; extern const char *Txt_Session; @@ -339,7 +339,7 @@ static void ExaSes_ListOneOrMoreSessionsHeading (Usr_ICan_t ICanEditSessions) HTM_TR_Begin (NULL); /***** Column for icons *****/ - if (ICanEditSessions == Usr_I_CAN) + if (ICanEditSessions == Usr_CAN) HTM_TH_Empty (1); /***** The rest of columns *****/ @@ -356,13 +356,13 @@ static void ExaSes_ListOneOrMoreSessionsHeading (Usr_ICan_t ICanEditSessions) /********************** Check if I can edit sessions *************************/ /*****************************************************************************/ -static Usr_ICan_t ExaSes_CheckIfICanEditSessions (void) +static Usr_Can_t ExaSes_CheckIfICanEditSessions (void) { - static Usr_ICan_t ICanEditSessions[Rol_NUM_ROLES] = + static Usr_Can_t ICanEditSessions[Rol_NUM_ROLES] = { - [Rol_NET ] = Usr_I_CAN, - [Rol_TCH ] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_NET ] = Usr_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return ICanEditSessions[Gbl.Usrs.Me.Role.Logged]; @@ -372,18 +372,18 @@ static Usr_ICan_t ExaSes_CheckIfICanEditSessions (void) /************ Check if I can edit (remove/resume) an exam session ************/ /*****************************************************************************/ -static Usr_ICan_t ExaSes_CheckIfICanEditThisSession (long UsrCod) +static Usr_Can_t ExaSes_CheckIfICanEditThisSession (long UsrCod) { switch (Gbl.Usrs.Me.Role.Logged) { case Rol_NET: - return (UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_I_CAN : // Only if I am the creator - Usr_I_CAN_NOT; + return (UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_CAN : // Only if I am the creator + Usr_CAN_NOT; case Rol_TCH: case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -391,13 +391,13 @@ static Usr_ICan_t ExaSes_CheckIfICanEditThisSession (long UsrCod) /********** Check if visibility of session results can be changed ************/ /*****************************************************************************/ -static Usr_ICan_t ExaSes_CheckIfICanChangeVisibilityOfResults (const struct ExaSes_Session *Session) +static Usr_Can_t ExaSes_CheckIfICanChangeVisibilityOfResults (const struct ExaSes_Session *Session) { if (Session->ShowUsrResults || // Results are currently visible Session->TimeUTC[Dat_END_TIME] < Dat_GetStartExecutionTimeUTC ()) // End of time is in the past return ExaSes_CheckIfICanEditThisSession (Session->UsrCod); - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } /*****************************************************************************/ @@ -420,7 +420,7 @@ static void ExaSes_ListOneOrMoreSessionsIcons (struct Exa_Exams *Exams, /***** Begin cell *****/ HTM_TD_Begin ("rowspan=\"2\" class=\"BT %s\"",The_GetColorRows ()); - if (ExaSes_CheckIfICanEditThisSession (Session->UsrCod) == Usr_I_CAN) + if (ExaSes_CheckIfICanEditThisSession (Session->UsrCod) == Usr_CAN) { /***** Icon to remove the exam session *****/ Ico_PutContextualIconToRemove (ActReqRemExaSes,NULL, @@ -499,7 +499,7 @@ static void ExaSes_ListOneOrMoreSessionsTitleGrps (struct Exa_Exams *Exams, HTM_ARTICLE_Begin (Anchor); switch (ExaSes_CheckIfICanAnswerThisSession (&Exams->Exam,Session)) { - case Usr_I_CAN: + case Usr_CAN: Frm_BeginForm (ActSeeExaPrn); Exa_PutPars (Exams); ParCod_PutPar (ParCod_Ses,Session->SesCod); @@ -512,7 +512,7 @@ static void ExaSes_ListOneOrMoreSessionsTitleGrps (struct Exa_Exams *Exams, HTM_BUTTON_End (); Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: HTM_SPAN_Begin ("class=\"%s_%s\"", HidVis_TitleClass[Session->HiddenOrVisible], @@ -643,7 +643,7 @@ static void ExaSes_ListOneOrMoreSessionsResultTch (struct Exa_Exams *Exams, Exams->SesCod = Session->SesCod; /***** Show exam session results *****/ - if (ExaSes_CheckIfICanEditThisSession (Session->UsrCod) == Usr_I_CAN) + if (ExaSes_CheckIfICanEditThisSession (Session->UsrCod) == Usr_CAN) Lay_PutContextualLinkOnlyIcon (ActSeeUsrExaResSes,ExaRes_RESULTS_BOX_ID, ExaSes_PutParsEdit,Exams, "trophy.svg",Ico_BLACK); @@ -651,7 +651,7 @@ static void ExaSes_ListOneOrMoreSessionsResultTch (struct Exa_Exams *Exams, /***** Check if visibility of session results can be changed *****/ switch (ExaSes_CheckIfICanChangeVisibilityOfResults (Session)) { - case Usr_I_CAN: + case Usr_CAN: /***** Put form to change visibility of session results *****/ if (Session->ShowUsrResults) Lay_PutContextualLinkOnlyIcon (ActChgVisExaRes,NULL, @@ -662,7 +662,7 @@ static void ExaSes_ListOneOrMoreSessionsResultTch (struct Exa_Exams *Exams, ExaSes_PutParsEdit,Exams, "eye-slash.svg",Ico_RED); break; - case Usr_I_CAN_NOT: // Don't put form + case Usr_CAN_NOT: // Don't put form default: /***** Put icon showing the current visibility of session results *****/ if (Session->ShowUsrResults) @@ -691,7 +691,7 @@ void ExaSes_ToggleVisResultsSesUsr (void) ExaSes_GetAndCheckPars (&Exams,&Session); /***** Check if visibility of session results can be changed *****/ - if (ExaSes_CheckIfICanChangeVisibilityOfResults (&Session) == Usr_I_CAN_NOT) + if (ExaSes_CheckIfICanChangeVisibilityOfResults (&Session) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Toggle visibility of exam session results *****/ @@ -809,7 +809,7 @@ void ExaSes_RemoveSession (void) ExaSes_GetAndCheckPars (&Exams,&Session); /***** Check if I can remove this exam session *****/ - if (ExaSes_CheckIfICanEditThisSession (Session.UsrCod) == Usr_I_CAN_NOT) + if (ExaSes_CheckIfICanEditThisSession (Session.UsrCod) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Remove questions of exams prints, and exam prints, in this session *****/ @@ -863,7 +863,7 @@ static void ExaSes_HideUnhideSession (HidVis_HiddenOrVisible_t HiddenOrVisible) ExaSes_GetAndCheckPars (&Exams,&Session); /***** Check if I can remove this exam session *****/ - if (ExaSes_CheckIfICanEditThisSession (Session.UsrCod) == Usr_I_CAN_NOT) + if (ExaSes_CheckIfICanEditThisSession (Session.UsrCod) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Hide session *****/ @@ -1208,7 +1208,7 @@ static void ExaSes_CreateGrpsAssociatedToExamSession (long SesCod, /******** Check if I belong to any of the groups of an exam session **********/ /*****************************************************************************/ -Usr_ICan_t ExaSes_CheckIfICanAnswerThisSession (const struct Exa_Exam *Exam, +Usr_Can_t ExaSes_CheckIfICanAnswerThisSession (const struct Exa_Exam *Exam, const struct ExaSes_Session *Session) { /***** 1. Sessions in hidden exams are not accesible @@ -1216,14 +1216,14 @@ Usr_ICan_t ExaSes_CheckIfICanAnswerThisSession (const struct Exa_Exam *Exam, if (Exam->HiddenOrVisible == HidVis_HIDDEN || Session->HiddenOrVisible == HidVis_HIDDEN || Session->ClosedOrOpen == CloOpe_CLOSED) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** Exam is visible, session is visible and open ==> ==> I can answer this session if I can list it based on groups *****/ return ExaSes_CheckIfICanListThisSessionBasedOnGrps (Session->SesCod); } -Usr_ICan_t ExaSes_CheckIfICanListThisSessionBasedOnGrps (long SesCod) +Usr_Can_t ExaSes_CheckIfICanListThisSessionBasedOnGrps (long SesCod) { switch (Gbl.Usrs.Me.Role.Logged) { @@ -1234,8 +1234,8 @@ Usr_ICan_t ExaSes_CheckIfICanListThisSessionBasedOnGrps (long SesCod) case Rol_NET: case Rol_TCH: case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } diff --git a/swad_exam_session.h b/swad_exam_session.h index ecd2e1d89..4e6e62e96 100644 --- a/swad_exam_session.h +++ b/swad_exam_session.h @@ -69,8 +69,8 @@ void ExaSes_GetAndCheckPars (struct Exa_Exams *Exams, void ExaSes_ReqCreatOrEditSes (void); void ExaSes_ReceiveSession (void); -Usr_ICan_t ExaSes_CheckIfICanAnswerThisSession (const struct Exa_Exam *Exam, +Usr_Can_t ExaSes_CheckIfICanAnswerThisSession (const struct Exa_Exam *Exam, const struct ExaSes_Session *Session); -Usr_ICan_t ExaSes_CheckIfICanListThisSessionBasedOnGrps (long SesCod); +Usr_Can_t ExaSes_CheckIfICanListThisSessionBasedOnGrps (long SesCod); #endif diff --git a/swad_exam_set.c b/swad_exam_set.c index a478b8913..b56aadcc1 100644 --- a/swad_exam_set.c +++ b/swad_exam_set.c @@ -91,13 +91,13 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams, unsigned MaxSetInd, unsigned NumSets, MYSQL_RES *mysql_res, - Usr_ICan_t ICanEditSets); + Usr_Can_t ICanEditSets); static void ExaSet_PutTableHeadingForSets (void); static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams, unsigned NumQsts, MYSQL_RES *mysql_res, - Usr_ICan_t ICanEditQuestions); + Usr_Can_t ICanEditQuestions); static void ExaSet_ListQuestionForEdition (struct Qst_Question *Question, unsigned QstInd,const char *Anchor); @@ -106,7 +106,7 @@ static void ExaSet_FreeListsSelectedQuestions (struct Exa_Exams *Exams); static void ExaSet_CopyQstFromBankToExamSet (const struct ExaSet_Set *Set,long QstCod); -static Usr_ICan_t ExaSet_CheckIfICanEditExamSets (const struct Exa_Exam *Exam); +static Usr_Can_t ExaSet_CheckIfICanEditExamSets (const struct Exa_Exam *Exam); static void ExaSet_RemoveMediaFromStemOfQst (long QstCod,long SetCod); static void ExaSet_RemoveMediaFromAllAnsOfQst (long QstCod,long SetCod); @@ -253,7 +253,7 @@ void ExaSet_ReceiveSet (void) Exa_GetExamDataByCod (&Exams.Exam); /***** Check if exam is editable *****/ - if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_I_CAN_NOT) + if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** If I can edit exams ==> receive set from form *****/ @@ -320,7 +320,7 @@ void ExaSet_ChangeSetTitle (void) char NewTitle[ExaSet_MAX_BYTES_TITLE + 1]; /***** Check if I can edit exams *****/ - if (Exa_CheckIfICanEditExams () == Usr_I_CAN_NOT) + if (Exa_CheckIfICanEditExams () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Reset exams context *****/ @@ -332,7 +332,7 @@ void ExaSet_ChangeSetTitle (void) ExaSet_GetAndCheckPars (&Exams,&Set); /***** Check if exam is editable *****/ - if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_I_CAN_NOT) + if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Receive new title from form *****/ @@ -363,7 +363,7 @@ void ExaSet_ChangeNumQstsToExam (void) unsigned NumQstsToPrint; /***** Check if I can edit exams *****/ - if (Exa_CheckIfICanEditExams () == Usr_I_CAN_NOT) + if (Exa_CheckIfICanEditExams () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Reset exams context *****/ @@ -375,7 +375,7 @@ void ExaSet_ChangeNumQstsToExam (void) ExaSet_GetAndCheckPars (&Exams,&Set); /***** Check if exam is editable *****/ - if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_I_CAN_NOT) + if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get number of questions in set to appear in exam print *****/ @@ -482,7 +482,7 @@ void ExaSet_ListExamSets (struct Exa_Exams *Exams) MYSQL_RES *mysql_res; unsigned MaxSetInd; unsigned NumSets; - Usr_ICan_t ICanEditSets = ExaSet_CheckIfICanEditExamSets (&Exams->Exam); + Usr_Can_t ICanEditSets = ExaSet_CheckIfICanEditExamSets (&Exams->Exam); /***** Get maximum set index *****/ MaxSetInd = Exa_DB_GetMaxSetIndexInExam (Exams->Exam.ExaCod); @@ -518,13 +518,13 @@ static void ExaSet_ListSetQuestions (struct Exa_Exams *Exams, extern const char *Txt_Questions; MYSQL_RES *mysql_res; unsigned NumQsts; - Usr_ICan_t ICanEditQuestions = ExaSet_CheckIfICanEditExamSets (&Exams->Exam); + Usr_Can_t ICanEditQuestions = ExaSet_CheckIfICanEditExamSets (&Exams->Exam); /***** Begin box *****/ Box_BoxBegin (Txt_Questions, - ICanEditQuestions == Usr_I_CAN ? ExaSet_PutIconToAddNewQuestions : + ICanEditQuestions == Usr_CAN ? ExaSet_PutIconToAddNewQuestions : NULL, - ICanEditQuestions == Usr_I_CAN ? Exams : + ICanEditQuestions == Usr_CAN ? Exams : NULL, Hlp_ASSESSMENT_Exams_questions,Box_NOT_CLOSABLE); @@ -548,7 +548,7 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams, unsigned MaxSetInd, unsigned NumSets, MYSQL_RES *mysql_res, - Usr_ICan_t ICanEditSets) + Usr_Can_t ICanEditSets) { extern const char *Txt_Movement_not_allowed; unsigned NumSet; @@ -590,18 +590,18 @@ static void ExaSet_ListOneOrMoreSetsForEdition (struct Exa_Exams *Exams, /* Put icon to remove the set */ switch (ICanEditSets) { - case Usr_I_CAN: + case Usr_CAN: Ico_PutContextualIconToRemove (ActReqRemExaSet,NULL, ExaSet_PutParsOneSet,Exams); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconRemovalNotAllowed (); break; } /* Put icon to move up the question */ - if (ICanEditSets == Usr_I_CAN && Set.SetInd > 1) + if (ICanEditSets == Usr_CAN && Set.SetInd > 1) Lay_PutContextualLinkOnlyIcon (ActUp_ExaSet,Anchor, ExaSet_PutParsOneSet,Exams, "arrow-up.svg",Ico_BLACK); @@ -793,7 +793,7 @@ void ExaSet_GetSetDataFromRow (MYSQL_RES *mysql_res,struct ExaSet_Set *Set) static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams, unsigned NumQsts, MYSQL_RES *mysql_res, - Usr_ICan_t ICanEditQuestions) + Usr_Can_t ICanEditQuestions) { extern const char *Txt_Questions; extern const char *Txt_No_INDEX; @@ -849,11 +849,11 @@ static void ExaSet_ListOneOrMoreQuestionsForEdition (struct Exa_Exams *Exams, /* Put icon to remove the question */ switch (ICanEditQuestions) { - case Usr_I_CAN: + case Usr_CAN: Ico_PutContextualIconToRemove (ActReqRemSetQst,NULL, ExaSet_PutParsOneQst,Exams); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconRemovalNotAllowed (); break; @@ -1264,7 +1264,7 @@ void ExaSet_ReqRemSet (void) ExaSet_GetAndCheckPars (&Exams,&Set); /***** Check if exam is editable *****/ - if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_I_CAN_NOT) + if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Show question and button to remove question *****/ @@ -1296,7 +1296,7 @@ void ExaSet_RemoveSet (void) ExaSet_GetAndCheckPars (&Exams,&Set); /***** Check if exam is editable *****/ - if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_I_CAN_NOT) + if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Remove the set from all tables *****/ @@ -1337,7 +1337,7 @@ void ExaSet_MoveUpSet (void) ExaSet_GetAndCheckPars (&Exams,&Set); /***** Check if exam is editable *****/ - if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_I_CAN_NOT) + if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get set index *****/ @@ -1383,7 +1383,7 @@ void ExaSet_MoveDownSet (void) ExaSet_GetAndCheckPars (&Exams,&Set); /***** Check if exam is editable *****/ - if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_I_CAN_NOT) + if (ExaSet_CheckIfICanEditExamSets (&Exams.Exam) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get set index *****/ @@ -1415,22 +1415,22 @@ void ExaSet_MoveDownSet (void) /*****************************************************************************/ // Before calling this function, number of sessions must be calculated -static Usr_ICan_t ExaSet_CheckIfICanEditExamSets (const struct Exa_Exam *Exam) +static Usr_Can_t ExaSet_CheckIfICanEditExamSets (const struct Exa_Exam *Exam) { switch (Exa_CheckIfICanEditExams ()) { - case Usr_I_CAN: + case Usr_CAN: /***** Questions are editable only if exam has no sessions *****/ - return (Exam->NumSess == 0) ? Usr_I_CAN : // Exams with sessions should not be edited - Usr_I_CAN_NOT; + return (Exam->NumSess == 0) ? Usr_CAN : // Exams with sessions should not be edited + Usr_CAN_NOT; break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: - return Usr_I_CAN_NOT; // Sets of questions are not editable + return Usr_CAN_NOT; // Sets of questions are not editable break; } - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } /*****************************************************************************/ diff --git a/swad_follow.c b/swad_follow.c index 7609ade10..c38b7869b 100644 --- a/swad_follow.c +++ b/swad_follow.c @@ -572,13 +572,13 @@ static void Fol_ShowFollowedOrFollower (struct Usr_Data *UsrDat) [PhoSha_SHAPE_OVAL ] = "PHOTOO60x80", [PhoSha_SHAPE_RECTANGLE] = "PHOTOR60x80", }; - Usr_ICan_t ICanView = Pri_CheckIfICanView (UsrDat->BaPrfVisibility,UsrDat); + Usr_Can_t ICanView = Pri_CheckIfICanView (UsrDat->BaPrfVisibility,UsrDat); HTM_DIV_Begin ("class=\"FOLLOW_USR\""); /***** Show user's photo *****/ HTM_DIV_Begin ("class=\"FOLLOW_PHOTO\""); - if (ICanView == Usr_I_CAN) + if (ICanView == Usr_CAN) Pho_ShowUsrPhotoIfAllowed (UsrDat, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM); HTM_DIV_End (); @@ -586,7 +586,7 @@ static void Fol_ShowFollowedOrFollower (struct Usr_Data *UsrDat) /***** Show user's name and icon to follow/unfollow *****/ HTM_DIV_Begin ("class=\"FOLLOW_TXT\""); - if (ICanView == Usr_I_CAN) + if (ICanView == Usr_CAN) { /* Put form to go to public profile */ Frm_BeginForm (ActSeeOthPubPrf); @@ -612,7 +612,7 @@ static void Fol_ShowFollowedOrFollower (struct Usr_Data *UsrDat) UsrDat->UsrCod)) // I follow user /* Form to unfollow */ Fol_PutIconToUnfollow (UsrDat->EnUsrCod); - else if (ICanView == Usr_I_CAN) // I do not follow this user and I can follow + else if (ICanView == Usr_CAN) // I do not follow this user and I can follow /* Form to follow */ Fol_PutIconToFollow (UsrDat->EnUsrCod); } @@ -636,13 +636,13 @@ static void Fol_WriteRowUsrToFollowOnRightColumn (struct Usr_Data *UsrDat) [PhoSha_SHAPE_OVAL ] = "PHOTOO21x28", [PhoSha_SHAPE_RECTANGLE] = "PHOTOR21x28", }; - Usr_ICan_t ICanView = Pri_CheckIfICanView (UsrDat->BaPrfVisibility,UsrDat); + Usr_Can_t ICanView = Pri_CheckIfICanView (UsrDat->BaPrfVisibility,UsrDat); /***** Show user's photo *****/ HTM_TR_Begin (NULL); HTM_TD_Begin ("class=\"CON_PHOTO %s\"",The_GetColorRows ()); - if (ICanView == Usr_I_CAN) + if (ICanView == Usr_CAN) Pho_ShowUsrPhotoIfAllowed (UsrDat, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM); HTM_TD_End (); @@ -650,7 +650,7 @@ static void Fol_WriteRowUsrToFollowOnRightColumn (struct Usr_Data *UsrDat) /***** User's name *****/ HTM_TD_Begin ("class=\"CON_NAME_FOLLOW %s\"", The_GetColorRows ()); - if (ICanView == Usr_I_CAN) + if (ICanView == Usr_CAN) { /* Put form to go to public profile */ Frm_BeginForm (ActSeeOthPubPrf); @@ -679,7 +679,7 @@ static void Fol_WriteRowUsrToFollowOnRightColumn (struct Usr_Data *UsrDat) UsrDat->UsrCod)) // I follow user /* Form to unfollow */ Fol_PutIconToUnfollow (UsrDat->EnUsrCod); - else if (ICanView == Usr_I_CAN) // I do not follow this user and I can follow + else if (ICanView == Usr_CAN) // I do not follow this user and I can follow /* Form to follow */ Fol_PutIconToFollow (UsrDat->EnUsrCod); } diff --git a/swad_forum.c b/swad_forum.c index fa6f923a9..e28b69b43 100644 --- a/swad_forum.c +++ b/swad_forum.c @@ -322,7 +322,7 @@ static void For_PutParsNewPost (void *Forums); static void For_ShowAForumPost (struct For_Forums *Forums, unsigned PstNum, bool LastPst,char LastSubject[Cns_MAX_BYTES_SUBJECT + 1], - bool NewPst,Usr_ICan_t ICanModerateForum); + bool NewPst,Usr_Can_t ICanModerateForum); static void For_GetPstData (long PstCod,long *UsrCod,time_t *CreatTimeUTC, char Subject[Cns_MAX_BYTES_SUBJECT + 1], char Content[Cns_MAX_BYTES_LONG_TEXT + 1], @@ -379,7 +379,7 @@ static void For_WriteFormForumPst (struct For_Forums *Forums, static void For_PutParsRemThread (void *Forums); -static Usr_ICan_t For_CheckIfICanMoveThreads (void); +static Usr_Can_t For_CheckIfICanMoveThreads (void); static void For_InsertThrInClipboard (long ThrCod); static void For_ShowStatOfAForumType (For_ForumType_t ForumType, @@ -711,7 +711,7 @@ void For_ShowPostsOfAThread (struct For_Forums *Forums, time_t CreatTimeUTC; // Creation time of post struct Pag_Pagination PaginationPsts; bool NewPst = false; - Usr_ICan_t ICanModerateForum = Usr_I_CAN_NOT; + Usr_Can_t ICanModerateForum = Usr_CAN_NOT; /***** Get data of the thread *****/ Thread.ThrCod = @@ -720,7 +720,7 @@ void For_ShowPostsOfAThread (struct For_Forums *Forums, For_GetThreadData (&Thread); /***** Get if there is a thread ready to be moved *****/ - if (For_CheckIfICanMoveThreads () == Usr_I_CAN) + if (For_CheckIfICanMoveThreads () == Usr_CAN) Forums->Thread.ToMove = For_DB_GetThrInMyClipboard (); /***** Get thread read time for the current user *****/ @@ -751,31 +751,31 @@ void For_ShowPostsOfAThread (struct For_Forums *Forums, case For_FORUM_GLOBAL_TCHS: case For_FORUM__SWAD__USRS: case For_FORUM__SWAD__TCHS: - ICanModerateForum = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanModerateForum = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_CAN : + Usr_CAN_NOT; break; case For_FORUM_INSTIT_USRS: case For_FORUM_INSTIT_TCHS: - ICanModerateForum = (Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanModerateForum = (Gbl.Usrs.Me.Role.Logged >= Rol_INS_ADM) ? Usr_CAN : + Usr_CAN_NOT; break; case For_FORUM_CENTER_USRS: case For_FORUM_CENTER_TCHS: - ICanModerateForum = (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanModerateForum = (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ? Usr_CAN : + Usr_CAN_NOT; break; case For_FORUM_DEGREE_USRS: case For_FORUM_DEGREE_TCHS: case For_FORUM_COURSE_TCHS: - ICanModerateForum = (Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanModerateForum = (Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM) ? Usr_CAN : + Usr_CAN_NOT; break; case For_FORUM_COURSE_USRS: - ICanModerateForum = (Gbl.Usrs.Me.Role.Logged >= Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanModerateForum = (Gbl.Usrs.Me.Role.Logged >= Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; break; default: - ICanModerateForum = Usr_I_CAN_NOT; + ICanModerateForum = Usr_CAN_NOT; break; } @@ -876,7 +876,7 @@ static void For_PutIconsOneThread (void *Forums) /***** Put icon to get resource link *****/ if (((struct For_Forums *) Forums)->Forum.Type == For_FORUM_COURSE_USRS && - Rsc_CheckIfICanGetLink () == Usr_I_CAN) + Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkForCrsUsr,NULL, For_PutParsNewPost,Forums); } @@ -901,7 +901,7 @@ static void For_PutParsNewPost (void *Forums) static void For_ShowAForumPost (struct For_Forums *Forums, unsigned PstNum, bool LastPst,char LastSubject[Cns_MAX_BYTES_SUBJECT + 1], - bool NewPst,Usr_ICan_t ICanModerateForum) + bool NewPst,Usr_Can_t ICanModerateForum) { extern const char *Txt_MSG_New; extern const char *Txt_MSG_Open; @@ -1006,7 +1006,7 @@ static void For_ShowAForumPost (struct For_Forums *Forums, switch (ICanModerateForum) { - case Usr_I_CAN: + case Usr_CAN: NextAction = DisabledOrEnabled == Cns_ENABLED ? For_ActionsDisPstFor[Forums->Forum.Type] : For_ActionsEnbPstFor[Forums->Forum.Type]; Frm_BeginFormAnchor (NextAction,For_FORUM_POSTS_SECTION_ID); @@ -1014,7 +1014,7 @@ static void For_ShowAForumPost (struct For_Forums *Forums, Ico_PutIconLink (Icon[DisabledOrEnabled],Color[DisabledOrEnabled],NextAction); Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: if (asprintf (&Title,*TxtAllowedBanned[DisabledOrEnabled],PstNum) < 0) Err_NotEnoughMemoryExit (); @@ -1235,12 +1235,12 @@ void For_ShowForumList (struct For_Forums *Forums) unsigned NumDegs; unsigned NumCrs; unsigned NumCrss; - Usr_ICan_t ICanSeeInsForum; - Usr_ICan_t ICanSeeCtrForum; - Usr_ICan_t ICanSeeDegForum; + Usr_Can_t ICanSeeInsForum; + Usr_Can_t ICanSeeCtrForum; + Usr_Can_t ICanSeeDegForum; /***** Get if there is a thread ready to be moved *****/ - if (For_CheckIfICanMoveThreads () == Usr_I_CAN) + if (For_CheckIfICanMoveThreads () == Usr_CAN) Forums->Thread.ToMove = For_DB_GetThrInMyClipboard (); /***** Fill the list with the institutions I belong to *****/ @@ -1264,49 +1264,55 @@ void For_ShowForumList (struct For_Forums *Forums) if (Gbl.Hierarchy.Node[Hie_INS].HieCod > 0) { if (Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM) - ICanSeeInsForum = Usr_I_CAN; + ICanSeeInsForum = Usr_CAN; else - ICanSeeInsForum = Hie_CheckIfIBelongTo (Hie_INS,Gbl.Hierarchy.Node[Hie_INS].HieCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanSeeInsForum = (Hie_CheckIfIBelongTo (Hie_INS, + Gbl.Hierarchy.Node[Hie_INS].HieCod) + == Usr_BELONG) ? Usr_CAN : + Usr_CAN_NOT; } else - ICanSeeInsForum = Usr_I_CAN_NOT; + ICanSeeInsForum = Usr_CAN_NOT; /***** Links to forums about the platform *****/ For_WriteLinksToPlatformForums (Forums,true,IsLastItemInLevel); - if (ICanSeeInsForum == Usr_I_CAN) + if (ICanSeeInsForum == Usr_CAN) { if (Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM) - ICanSeeCtrForum = Usr_I_CAN; + ICanSeeCtrForum = Usr_CAN; else - ICanSeeCtrForum = Hie_CheckIfIBelongTo (Hie_CTR,Gbl.Hierarchy.Node[Hie_CTR].HieCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanSeeCtrForum = (Hie_CheckIfIBelongTo (Hie_CTR, + Gbl.Hierarchy.Node[Hie_CTR].HieCod) + == Usr_BELONG) ? Usr_CAN : + Usr_CAN_NOT; /***** Links to forums of current institution *****/ if (For_WriteLinksToInsForums (Forums,Gbl.Hierarchy.Node[Hie_INS].HieCod, true, IsLastItemInLevel) > 0) - if (ICanSeeCtrForum == Usr_I_CAN) + if (ICanSeeCtrForum == Usr_CAN) { if (Gbl.Usrs.Me.Role.Logged >= Rol_DEG_ADM) - ICanSeeDegForum = Usr_I_CAN; + ICanSeeDegForum = Usr_CAN; else - ICanSeeDegForum = Hie_CheckIfIBelongTo (Hie_DEG,Gbl.Hierarchy.Node[Hie_DEG].HieCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanSeeDegForum = (Hie_CheckIfIBelongTo (Hie_DEG, + Gbl.Hierarchy.Node[Hie_DEG].HieCod) + == Usr_BELONG) ? Usr_CAN : + Usr_CAN_NOT; /***** Links to forums of current center *****/ if (For_WriteLinksToCtrForums (Forums, Gbl.Hierarchy.Node[Hie_CTR].HieCod, true, IsLastItemInLevel) > 0) - if (ICanSeeDegForum == Usr_I_CAN) + if (ICanSeeDegForum == Usr_CAN) /***** Links to forums of current degree *****/ if (For_WriteLinksToDegForums (Forums, Gbl.Hierarchy.Node[Hie_DEG].HieCod, true, IsLastItemInLevel) > 0) - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] || + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG || Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) /***** Links to forums of current degree *****/ For_WriteLinksToCrsForums (Forums, @@ -1465,15 +1471,15 @@ static void For_WriteLinksToGblForums (const struct For_Forums *Forums, Lay_LastItem_t IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]) { Lay_Highlight_t Highlight; - Usr_ICan_t ICanSeeTeacherForum; + Usr_Can_t ICanSeeTeacherForum; struct For_Forum Forum; /***** Can I see teachers's forums? *****/ Rol_GetRolesInAllCrss (&Gbl.Usrs.Me.UsrDat); ICanSeeTeacherForum = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || (Gbl.Usrs.Me.UsrDat.Roles.InCrss & ((1 << Rol_NET) | - (1 << Rol_TCH)))) ? Usr_I_CAN : - Usr_I_CAN_NOT; + (1 << Rol_TCH)))) ? Usr_CAN : + Usr_CAN_NOT; /***** Link to forum global *****/ Forum.Type = For_FORUM_GLOBAL_USRS; @@ -1485,7 +1491,7 @@ static void For_WriteLinksToGblForums (const struct For_Forums *Forums, /***** Link to forum of teachers global *****/ Rol_GetRolesInAllCrss (&Gbl.Usrs.Me.UsrDat); - if (ICanSeeTeacherForum == Usr_I_CAN) + if (ICanSeeTeacherForum == Usr_CAN) { Forum.Type = For_FORUM_GLOBAL_TCHS; Forum.HieCod = -1L; @@ -1505,15 +1511,15 @@ static void For_WriteLinksToPlatformForums (const struct For_Forums *Forums, Lay_LastItem_t IsLastItemInLevel[1 + For_FORUM_MAX_LEVELS]) { Lay_Highlight_t Highlight; - Usr_ICan_t ICanSeeTeacherForum; + Usr_Can_t ICanSeeTeacherForum; struct For_Forum Forum; /***** Can I see teachers's forums? *****/ Rol_GetRolesInAllCrss (&Gbl.Usrs.Me.UsrDat); ICanSeeTeacherForum = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || (Gbl.Usrs.Me.UsrDat.Roles.InCrss & ((1 << Rol_NET) | - (1 << Rol_TCH)))) ? Usr_I_CAN : - Usr_I_CAN_NOT; + (1 << Rol_TCH)))) ? Usr_CAN : + Usr_CAN_NOT; /***** Link to forum of users about the platform *****/ Forum.Type = For_FORUM__SWAD__USRS; @@ -1521,12 +1527,12 @@ static void For_WriteLinksToPlatformForums (const struct For_Forums *Forums, Highlight = (Forums->Forum.Type == For_FORUM__SWAD__USRS) ? Lay_HIGHLIGHT : Lay_NO_HIGHLIGHT; IsLastItemInLevel[1] = (IsLastForum && - ICanSeeTeacherForum == Usr_I_CAN_NOT) ? Lay_LAST_ITEM : + ICanSeeTeacherForum == Usr_CAN_NOT) ? Lay_LAST_ITEM : Lay_NO_LAST_ITEM; For_WriteLinkToForum (Forums,&Forum,Highlight,1,IsLastItemInLevel); /***** Link to forum of teachers about the platform *****/ - if (ICanSeeTeacherForum == Usr_I_CAN) + if (ICanSeeTeacherForum == Usr_CAN) { Forum.Type = For_FORUM__SWAD__TCHS; Forum.HieCod = -1L; @@ -1549,7 +1555,7 @@ static long For_WriteLinksToInsForums (const struct For_Forums *Forums, { Lay_Highlight_t Highlight; Rol_Role_t MaxRoleInIns; - Usr_ICan_t ICanSeeTeacherForum; + Usr_Can_t ICanSeeTeacherForum; struct For_Forum Forum; if (InsCod > 0) @@ -1557,8 +1563,8 @@ static long For_WriteLinksToInsForums (const struct For_Forums *Forums, MaxRoleInIns = Rol_GetMyMaxRoleIn (Hie_INS,InsCod); ICanSeeTeacherForum = ((Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || MaxRoleInIns == Rol_NET || - MaxRoleInIns == Rol_TCH)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + MaxRoleInIns == Rol_TCH)) ? Usr_CAN : + Usr_CAN_NOT; /***** Link to the forum of users from this institution *****/ Forum.Type = For_FORUM_INSTIT_USRS; @@ -1567,12 +1573,12 @@ static long For_WriteLinksToInsForums (const struct For_Forums *Forums, Forums->Forum.HieCod == InsCod) ? Lay_HIGHLIGHT : Lay_NO_HIGHLIGHT; IsLastItemInLevel[2] = (IsLastIns && - ICanSeeTeacherForum == Usr_I_CAN_NOT) ? Lay_LAST_ITEM : + ICanSeeTeacherForum == Usr_CAN_NOT) ? Lay_LAST_ITEM : Lay_NO_LAST_ITEM; For_WriteLinkToForum (Forums,&Forum,Highlight,2,IsLastItemInLevel); /***** Link to forum of teachers from this institution *****/ - if (ICanSeeTeacherForum == Usr_I_CAN) + if (ICanSeeTeacherForum == Usr_CAN) { Forum.Type = For_FORUM_INSTIT_TCHS; Forum.HieCod = InsCod; @@ -1598,7 +1604,7 @@ static long For_WriteLinksToCtrForums (const struct For_Forums *Forums, { Lay_Highlight_t Highlight; Rol_Role_t MaxRoleInCtr; - Usr_ICan_t ICanSeeTeacherForum; + Usr_Can_t ICanSeeTeacherForum; struct For_Forum Forum; if (CtrCod > 0) @@ -1606,8 +1612,8 @@ static long For_WriteLinksToCtrForums (const struct For_Forums *Forums, MaxRoleInCtr = Rol_GetMyMaxRoleIn (Hie_CTR,CtrCod); ICanSeeTeacherForum = ((Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || MaxRoleInCtr == Rol_NET || - MaxRoleInCtr == Rol_TCH)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + MaxRoleInCtr == Rol_TCH)) ? Usr_CAN : + Usr_CAN_NOT; /***** Link to the forum of users from this center *****/ Forum.Type = For_FORUM_CENTER_USRS; @@ -1616,12 +1622,12 @@ static long For_WriteLinksToCtrForums (const struct For_Forums *Forums, Forums->Forum.HieCod == CtrCod) ? Lay_HIGHLIGHT : Lay_NO_HIGHLIGHT; IsLastItemInLevel[3] = (IsLastCtr && - ICanSeeTeacherForum == Usr_I_CAN_NOT) ? Lay_LAST_ITEM : + ICanSeeTeacherForum == Usr_CAN_NOT) ? Lay_LAST_ITEM : Lay_NO_LAST_ITEM; For_WriteLinkToForum (Forums,&Forum,Highlight,3,IsLastItemInLevel); /***** Link to forum of teachers from this center *****/ - if (ICanSeeTeacherForum == Usr_I_CAN) + if (ICanSeeTeacherForum == Usr_CAN) { Forum.Type = For_FORUM_CENTER_TCHS; Forum.HieCod = CtrCod; @@ -1647,7 +1653,7 @@ static long For_WriteLinksToDegForums (const struct For_Forums *Forums, { Lay_Highlight_t Highlight; Rol_Role_t MaxRoleInDeg; - Usr_ICan_t ICanSeeTeacherForum; + Usr_Can_t ICanSeeTeacherForum; struct For_Forum Forum; if (DegCod > 0) @@ -1655,8 +1661,8 @@ static long For_WriteLinksToDegForums (const struct For_Forums *Forums, MaxRoleInDeg = Rol_GetMyMaxRoleIn (Hie_DEG,DegCod); ICanSeeTeacherForum = ((Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || MaxRoleInDeg == Rol_NET || - MaxRoleInDeg == Rol_TCH)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + MaxRoleInDeg == Rol_TCH)) ? Usr_CAN : + Usr_CAN_NOT; /***** Link to the forum of users from this degree *****/ Forum.Type = For_FORUM_DEGREE_USRS; @@ -1665,12 +1671,12 @@ static long For_WriteLinksToDegForums (const struct For_Forums *Forums, Forums->Forum.HieCod == DegCod) ? Lay_HIGHLIGHT : Lay_NO_HIGHLIGHT; IsLastItemInLevel[4] = (IsLastDeg && - ICanSeeTeacherForum == Usr_I_CAN_NOT) ? Lay_LAST_ITEM : + ICanSeeTeacherForum == Usr_CAN_NOT) ? Lay_LAST_ITEM : Lay_NO_LAST_ITEM; For_WriteLinkToForum (Forums,&Forum,Highlight,4,IsLastItemInLevel); /***** Link to forum of teachers from this degree *****/ - if (ICanSeeTeacherForum == Usr_I_CAN) + if (ICanSeeTeacherForum == Usr_CAN) { Forum.Type = For_FORUM_DEGREE_TCHS; Forum.HieCod = DegCod; @@ -1696,7 +1702,7 @@ static long For_WriteLinksToCrsForums (const struct For_Forums *Forums, { Lay_Highlight_t Highlight; Rol_Role_t MyRoleInCrs; - Usr_ICan_t ICanSeeTeacherForum; + Usr_Can_t ICanSeeTeacherForum; struct For_Forum Forum; if (CrsCod > 0) @@ -1704,8 +1710,8 @@ static long For_WriteLinksToCrsForums (const struct For_Forums *Forums, MyRoleInCrs = Rol_GetMyRoleInCrs (CrsCod); ICanSeeTeacherForum = ((Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || MyRoleInCrs == Rol_NET || - MyRoleInCrs == Rol_TCH)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + MyRoleInCrs == Rol_TCH)) ? Usr_CAN : + Usr_CAN_NOT; /***** Link to the forum of users from this course *****/ Forum.Type = For_FORUM_COURSE_USRS; @@ -1713,12 +1719,12 @@ static long For_WriteLinksToCrsForums (const struct For_Forums *Forums, Highlight = (Forums->Forum.Type == For_FORUM_COURSE_USRS && Forums->Forum.HieCod == CrsCod) ? Lay_HIGHLIGHT : Lay_NO_HIGHLIGHT; - IsLastItemInLevel[5] = (IsLastCrs && ICanSeeTeacherForum == Usr_I_CAN_NOT) ? Lay_LAST_ITEM : + IsLastItemInLevel[5] = (IsLastCrs && ICanSeeTeacherForum == Usr_CAN_NOT) ? Lay_LAST_ITEM : Lay_NO_LAST_ITEM; For_WriteLinkToForum (Forums,&Forum,Highlight,5,IsLastItemInLevel); /***** Link to forum of teachers from this course *****/ - if (ICanSeeTeacherForum == Usr_I_CAN) + if (ICanSeeTeacherForum == Usr_CAN) { Forum.Type = For_FORUM_COURSE_TCHS; Forum.HieCod = CrsCod; @@ -2202,7 +2208,7 @@ static void For_PutIconsThreads (void *Forums) /***** Put icon to get resource link *****/ if (((struct For_Forums *) Forums)->Forum.Type == For_FORUM_COURSE_USRS && - Rsc_CheckIfICanGetLink () == Usr_I_CAN) + Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkForCrsUsr,NULL, For_PutParsNewPost,Forums); } @@ -2252,10 +2258,10 @@ static void For_ListForumThrs (struct For_Forums *Forums, long ThreadInMyClipboard = -1L; unsigned Column; const char *BgColor; - Usr_ICan_t ICanMoveThreads = For_CheckIfICanMoveThreads (); + Usr_Can_t ICanMoveThreads = For_CheckIfICanMoveThreads (); /***** Get if there is a thread ready to be moved *****/ - if (ICanMoveThreads == Usr_I_CAN) + if (ICanMoveThreads == Usr_CAN) ThreadInMyClipboard = For_DB_GetThrInMyClipboard (); /***** Initialize structure with user's data *****/ @@ -2308,7 +2314,7 @@ static void For_ListForumThrs (struct For_Forums *Forums, } /***** Put button to cut the thread for moving it to another forum *****/ - if (ICanMoveThreads == Usr_I_CAN) + if (ICanMoveThreads == Usr_CAN) { HTM_BR (); Frm_BeginFormAnchor (For_ActionsCutThrFor[Forums->Forum.Type], @@ -2694,87 +2700,87 @@ static void For_SetForumType (struct For_Forums *Forums) static void For_RestrictAccess (const struct For_Forums *Forums) { Rol_Role_t MaxRole; - Usr_ICan_t ICanSeeForum; + Usr_Can_t ICanSeeForum; /***** Restrict access *****/ switch (Forums->Forum.Type) { case For_FORUM_GLOBAL_USRS: case For_FORUM__SWAD__USRS: - ICanSeeForum = Usr_I_CAN; + ICanSeeForum = Usr_CAN; break; case For_FORUM_GLOBAL_TCHS: case For_FORUM__SWAD__TCHS: Rol_GetRolesInAllCrss (&Gbl.Usrs.Me.UsrDat); ICanSeeForum = (Gbl.Usrs.Me.UsrDat.Roles.InCrss & ((1 << Rol_NET) | - (1 << Rol_TCH))) ? Usr_I_CAN : - Usr_I_CAN_NOT; + (1 << Rol_TCH))) ? Usr_CAN : + Usr_CAN_NOT; break; case For_FORUM_INSTIT_USRS: MaxRole = Rol_GetMyMaxRoleIn (Hie_INS,Forums->Forum.HieCod); ICanSeeForum = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || MaxRole == Rol_STD || MaxRole == Rol_NET || - MaxRole == Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + MaxRole == Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; break; case For_FORUM_INSTIT_TCHS: MaxRole = Rol_GetMyMaxRoleIn (Hie_INS,Forums->Forum.HieCod); ICanSeeForum = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || MaxRole == Rol_NET || - MaxRole == Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + MaxRole == Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; break; case For_FORUM_CENTER_USRS: MaxRole = Rol_GetMyMaxRoleIn (Hie_CTR,Forums->Forum.HieCod); ICanSeeForum = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || MaxRole >= Rol_STD || MaxRole == Rol_NET || - MaxRole == Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + MaxRole == Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; break; case For_FORUM_CENTER_TCHS: MaxRole = Rol_GetMyMaxRoleIn (Hie_CTR,Forums->Forum.HieCod); ICanSeeForum = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || MaxRole == Rol_NET || - MaxRole == Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + MaxRole == Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; break; case For_FORUM_DEGREE_USRS: MaxRole = Rol_GetMyMaxRoleIn (Hie_DEG,Forums->Forum.HieCod); ICanSeeForum = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || MaxRole >= Rol_STD || MaxRole == Rol_NET || - MaxRole == Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + MaxRole == Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; break; case For_FORUM_DEGREE_TCHS: MaxRole = Rol_GetMyMaxRoleIn (Hie_DEG,Forums->Forum.HieCod); ICanSeeForum = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || MaxRole == Rol_NET || - MaxRole == Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + MaxRole == Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; break; case For_FORUM_COURSE_USRS: MaxRole = Rol_GetMyRoleInCrs (Forums->Forum.HieCod); ICanSeeForum = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || MaxRole >= Rol_STD || MaxRole == Rol_NET || - MaxRole == Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + MaxRole == Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; break; case For_FORUM_COURSE_TCHS: MaxRole = Rol_GetMyRoleInCrs (Forums->Forum.HieCod); ICanSeeForum = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || MaxRole == Rol_NET || - MaxRole == Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + MaxRole == Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; break; default: - ICanSeeForum = Usr_I_CAN_NOT; + ICanSeeForum = Usr_CAN_NOT; break; } - if (ICanSeeForum == Usr_I_CAN_NOT) + if (ICanSeeForum == Usr_CAN_NOT) Err_NoPermissionExit (); } @@ -3267,10 +3273,10 @@ void For_PasteThread (void) /*********************** Check if I can move threads *************************/ /*****************************************************************************/ -static Usr_ICan_t For_CheckIfICanMoveThreads (void) +static Usr_Can_t For_CheckIfICanMoveThreads (void) { - return (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_I_CAN : // If I have permission to move threads... - Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_CAN : // If I have permission to move threads... + Usr_CAN_NOT; } /*****************************************************************************/ diff --git a/swad_game.c b/swad_game.c index 9bf3341f2..b6d181026 100644 --- a/swad_game.c +++ b/swad_game.c @@ -113,8 +113,8 @@ extern struct Globals Gbl; static void Gam_ListAllGamesHeading (const struct Gam_Games *Games); -static Usr_ICan_t Gam_CheckIfICanEditGames (void); -static Usr_ICan_t Gam_CheckIfICanListGameQuestions (void); +static Usr_Can_t Gam_CheckIfICanEditGames (void); +static Usr_Can_t Gam_CheckIfICanListGameQuestions (void); static void Gam_PutIconsListingGames (void *Games); static void Gam_PutIconToCreateNewGame (struct Gam_Games *Games); static void Gam_PutParsToCreateNewGame (void *Games); @@ -153,7 +153,7 @@ static void Gam_ListGameQuestions (struct Gam_Games *Games); static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games, unsigned NumQsts, MYSQL_RES *mysql_res, - Usr_ICan_t ICanEditQuestions); + Usr_Can_t ICanEditQuestions); static void Gam_PutIconToAddNewQuestions (void *Games); @@ -163,7 +163,7 @@ static void Gam_FreeListsSelectedQuestions (struct Gam_Games *Games); static void Gam_ExchangeQuestions (long GamCod, unsigned QstIndTop,unsigned QstIndBottom); -static Usr_ICan_t Gam_CheckIfICanEditGame (const struct Gam_Game *Game); +static Usr_Can_t Gam_CheckIfICanEditGame (const struct Gam_Game *Game); /*****************************************************************************/ /*************************** Reset games context *****************************/ @@ -346,12 +346,12 @@ static void Gam_ListAllGamesHeading (const struct Gam_Games *Games) /************************ Check if I can edit games **************************/ /*****************************************************************************/ -static Usr_ICan_t Gam_CheckIfICanEditGames (void) +static Usr_Can_t Gam_CheckIfICanEditGames (void) { - static Usr_ICan_t ICanEditGames[Rol_NUM_ROLES] = + static Usr_Can_t ICanEditGames[Rol_NUM_ROLES] = { - [Rol_TCH ] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return ICanEditGames[Gbl.Usrs.Me.Role.Logged]; @@ -361,13 +361,13 @@ static Usr_ICan_t Gam_CheckIfICanEditGames (void) /**************** Check if I can list questions in games *********************/ /*****************************************************************************/ -static Usr_ICan_t Gam_CheckIfICanListGameQuestions (void) +static Usr_Can_t Gam_CheckIfICanListGameQuestions (void) { - static Usr_ICan_t ICanListGameQuestions[Rol_NUM_ROLES] = + static Usr_Can_t ICanListGameQuestions[Rol_NUM_ROLES] = { - [Rol_NET ] = Usr_I_CAN, - [Rol_TCH ] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_NET ] = Usr_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return ICanListGameQuestions[Gbl.Usrs.Me.Role.Logged]; @@ -390,7 +390,7 @@ static void Gam_PutIconsListingGames (void *Games) if (Games) { /***** Put icon to create a new game *****/ - if (Gam_CheckIfICanEditGames () == Usr_I_CAN) + if (Gam_CheckIfICanEditGames () == Usr_CAN) Gam_PutIconToCreateNewGame ((struct Gam_Games *) Games); /***** Put icon to view matches results *****/ @@ -399,7 +399,7 @@ static void Gam_PutIconsListingGames (void *Games) NULL,NULL); /***** Link to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkGam,NULL,Gam_PutPars,Games); /***** Put icon to show a figure *****/ @@ -730,7 +730,7 @@ static void Gam_PutIconsToRemEditOneGame (struct Gam_Games *Games, [Rol_SYS_ADM] = ActSeeUsrMchResGam, }; - if (Gam_CheckIfICanEditGames () == Usr_I_CAN) + if (Gam_CheckIfICanEditGames () == Usr_CAN) { /***** Icon to remove game *****/ Ico_PutContextualIconToRemove (ActReqRemGam,NULL, @@ -745,7 +745,7 @@ static void Gam_PutIconsToRemEditOneGame (struct Gam_Games *Games, Ico_PutContextualIconToEdit (ActEdiOneGam,NULL,Gam_PutPars,Games); } - if (Gam_CheckIfICanListGameQuestions () == Usr_I_CAN) + if (Gam_CheckIfICanListGameQuestions () == Usr_CAN) /***** Icon to view game listing its questions *****/ Ico_PutContextualIconToView (ActLstOneGam,NULL,Gam_PutPars,Games); @@ -755,7 +755,7 @@ static void Gam_PutIconsToRemEditOneGame (struct Gam_Games *Games, Gam_PutPars,Games); /***** Link to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkGam,NULL,Gam_PutPars,Games); } @@ -1052,7 +1052,7 @@ void Gam_AskRemGame (void) /***** Get data of the game from database *****/ Gam_GetGameDataByCod (&Games.Game); - if (Gam_CheckIfICanEditGames () == Usr_I_CAN_NOT) + if (Gam_CheckIfICanEditGames () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Show question and button to remove game *****/ @@ -1085,7 +1085,7 @@ void Gam_RemoveGame (void) /***** Get data of the game from database *****/ Gam_GetGameDataByCod (&Games.Game); - if (Gam_CheckIfICanEditGames () == Usr_I_CAN_NOT) + if (Gam_CheckIfICanEditGames () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Remove game from all tables *****/ @@ -1161,7 +1161,7 @@ static void Gam_HideUnhideGame (HidVis_HiddenOrVisible_t HiddenOrVisible) /***** Get data of the game from database *****/ Gam_GetGameDataByCod (&Games.Game); - if (Gam_CheckIfICanEditGames () == Usr_I_CAN_NOT) + if (Gam_CheckIfICanEditGames () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Unhide game *****/ @@ -1187,7 +1187,7 @@ void Gam_ListGame (void) Gam_ResetGame (&Games.Game); /***** Check if I can list game questions *****/ - if (Gam_CheckIfICanListGameQuestions () == Usr_I_CAN_NOT) + if (Gam_CheckIfICanListGameQuestions () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get parameters *****/ @@ -1221,7 +1221,7 @@ void Gam_ReqCreatOrEditGame (void) Gam_ResetGame (&Games.Game); /***** Check if I can edit games *****/ - if (Gam_CheckIfICanEditGames () == Usr_I_CAN_NOT) + if (Gam_CheckIfICanEditGames () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get parameters *****/ @@ -1437,7 +1437,7 @@ void Gam_ReceiveGame (void) Gam_ResetGame (&Games.Game); /***** Check if I can edit games *****/ - if (Gam_CheckIfICanEditGames () == Usr_I_CAN_NOT) + if (Gam_CheckIfICanEditGames () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get parameters *****/ @@ -1566,7 +1566,7 @@ void Gam_ReqSelectQstsToAddToGame (void) Gam_GetGameDataByCod (&Games.Game); /***** Check if game has matches *****/ - if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_I_CAN_NOT) + if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Show form to create a new question in this game *****/ @@ -1598,7 +1598,7 @@ void Gam_ListQstsToAddToGame (void) Gam_GetGameDataByCod (&Games.Game); /***** Check if game has matches *****/ - if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_I_CAN_NOT) + if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** List several test questions for selection *****/ @@ -1638,16 +1638,16 @@ static void Gam_ListGameQuestions (struct Gam_Games *Games) extern const char *Txt_Questions; MYSQL_RES *mysql_res; unsigned NumQsts; - Usr_ICan_t ICanEditQuestions = Gam_CheckIfICanEditGame (&Games->Game); - static void (*FunctionToDrawContextualIcons[Usr_NUM_I_CAN]) (void *Args) = + Usr_Can_t ICanEditQuestions = Gam_CheckIfICanEditGame (&Games->Game); + static void (*FunctionToDrawContextualIcons[Usr_NUM_CAN]) (void *Args) = { - [Usr_I_CAN_NOT] = NULL, - [Usr_I_CAN ] = Gam_PutIconToAddNewQuestions, + [Usr_CAN_NOT] = NULL, + [Usr_CAN ] = Gam_PutIconToAddNewQuestions, }; - void *Args[Usr_NUM_I_CAN] = + void *Args[Usr_NUM_CAN] = { - [Usr_I_CAN_NOT] = NULL, - [Usr_I_CAN ] = Games, + [Usr_CAN_NOT] = NULL, + [Usr_CAN ] = Games, }; /***** Get data of questions from database *****/ @@ -1678,7 +1678,7 @@ static void Gam_ListGameQuestions (struct Gam_Games *Games) static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games, unsigned NumQsts, MYSQL_RES *mysql_res, - Usr_ICan_t ICanEditQuestions) + Usr_Can_t ICanEditQuestions) { extern const char *Txt_Questions; extern const char *Txt_No_INDEX; @@ -1749,18 +1749,18 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games, /* Put icon to remove the question */ switch (ICanEditQuestions) { - case Usr_I_CAN: + case Usr_CAN: Ico_PutContextualIconToRemove (ActReqRemGamQst,NULL, Gam_PutParsOneQst,Games); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconRemovalNotAllowed (); break; } /* Put icon to move up the question */ - if (ICanEditQuestions == Usr_I_CAN && QstInd > 1) + if (ICanEditQuestions == Usr_CAN && QstInd > 1) Lay_PutContextualLinkOnlyIcon (ActUp_GamQst,Anchor, Gam_PutParsOneQst,Games, "arrow-up.svg",Ico_BLACK); @@ -1769,7 +1769,7 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games, Txt_Movement_not_allowed); /* Put icon to move down the question */ - if (ICanEditQuestions == Usr_I_CAN && QstInd < MaxQstInd) + if (ICanEditQuestions == Usr_CAN && QstInd < MaxQstInd) Lay_PutContextualLinkOnlyIcon (ActDwnGamQst,Anchor, Gam_PutParsOneQst,Games, "arrow-down.svg",Ico_BLACK); @@ -1778,7 +1778,7 @@ static void Gam_ListOneOrMoreQuestionsForEdition (struct Gam_Games *Games, Txt_Movement_not_allowed); /* Put icon to edit the question */ - if (ICanEditQuestions == Usr_I_CAN) + if (ICanEditQuestions == Usr_CAN) Ico_PutContextualIconToEdit (ActEdiOneTstQst,NULL, Qst_PutParQstCod,&Question.QstCod); @@ -1839,7 +1839,7 @@ void Gam_AddQstsToGame (void) Gam_GetGameDataByCod (&Games.Game); /***** Check if game has matches *****/ - if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_I_CAN_NOT) + if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get selected questions *****/ @@ -1947,7 +1947,7 @@ void Gam_ReqRemQstFromGame (void) Gam_GetGameDataByCod (&Games.Game); /***** Check if game has matches *****/ - if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_I_CAN_NOT) + if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get question index *****/ @@ -1989,7 +1989,7 @@ void Gam_RemoveQstFromGame (void) Gam_GetGameDataByCod (&Games.Game); /***** Check if game has matches *****/ - if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_I_CAN_NOT) + if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get question index *****/ @@ -2038,7 +2038,7 @@ void Gam_MoveUpQst (void) Gam_GetGameDataByCod (&Games.Game); /***** Check if game has matches *****/ - if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_I_CAN_NOT) + if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get question index *****/ @@ -2088,7 +2088,7 @@ void Gam_MoveDownQst (void) Gam_GetGameDataByCod (&Games.Game); /***** Check if game has matches *****/ - if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_I_CAN_NOT) + if (Gam_CheckIfICanEditGame (&Games.Game) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get question index *****/ @@ -2167,14 +2167,14 @@ static void Gam_ExchangeQuestions (long GamCod, /*****************************************************************************/ // Before calling this function, number of matches must be calculated -static Usr_ICan_t Gam_CheckIfICanEditGame (const struct Gam_Game *Game) +static Usr_Can_t Gam_CheckIfICanEditGame (const struct Gam_Game *Game) { - if (Gam_CheckIfICanEditGames () == Usr_I_CAN) + if (Gam_CheckIfICanEditGames () == Usr_CAN) /***** Questions are editable only if game has no matches *****/ if (Game->NumMchs == 0) - return Usr_I_CAN; + return Usr_CAN; - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } /*****************************************************************************/ diff --git a/swad_global.h b/swad_global.h index 8d4036b71..b3b189ac1 100644 --- a/swad_global.h +++ b/swad_global.h @@ -135,7 +135,7 @@ struct Globals unsigned Num; // Number of courses/degrees/centers/institutions/countries bool Filled; // List is already filled? } Hierarchy[Hie_NUM_LEVELS]; // My hierarchy - bool IBelongToCurrent[Hie_NUM_LEVELS]; + Usr_Belong_t IBelongToCurrent[Hie_NUM_LEVELS]; Set_ShowUsrsType_t ListType; // My preference about user's list type unsigned NumFollowers; // Number of users who follow me unsigned NumFollowing; // Number of users I follow diff --git a/swad_group.c b/swad_group.c index a1033e81a..bac06a4b4 100644 --- a/swad_group.c +++ b/swad_group.c @@ -76,7 +76,7 @@ extern struct Globals Gbl; /***************************** Private prototypes ****************************/ /*****************************************************************************/ -static Usr_ICan_t Grp_CheckIfICanChangeGrps (void); +static Usr_Can_t Grp_CheckIfICanChangeGrps (void); static void Grp_ReqEditGroupsInternal (Ale_AlertType_t AlertTypeGroupTypes,const char *AlertTextGroupTypes, Ale_AlertType_t AlertTypeGroups,const char *AlertTextGroups); @@ -107,7 +107,7 @@ static void Grp_WriteHeadingGroups (void); static void Grp_PutIconToEditGroups (__attribute__((unused)) void *Args); static void Grp_ShowWarningToStdsToChangeGrps (void); -static Usr_ICan_t Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, +static Usr_Can_t Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, unsigned *NumGrpsThisTypeIBelong); static void Grp_ListGrpsToAddOrRemUsrs (struct GroupType *GrpTyp,long UsrCod); static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp); @@ -135,13 +135,13 @@ static void Grp_PutParGrpCod (void *GrpCod); /************************ Check if I can change groups ***********************/ /*****************************************************************************/ -static Usr_ICan_t Grp_CheckIfICanChangeGrps (void) +static Usr_Can_t Grp_CheckIfICanChangeGrps (void) { - static Usr_ICan_t Grp_ICanChangeGrps[Rol_NUM_ROLES] = + static Usr_Can_t Grp_ICanChangeGrps[Rol_NUM_ROLES] = { - [Rol_STD ] = Usr_I_CAN, - [Rol_TCH ] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_STD ] = Usr_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return Grp_ICanChangeGrps[Gbl.Usrs.Me.Role.Logged]; @@ -348,11 +348,11 @@ void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction, extern const char *Txt_Groups; extern const char *Txt_Update_users; unsigned NumGrpTyp; - Usr_ICan_t ICanEdit; - static void (*FunctionToDrawContextualIcons[Usr_NUM_I_CAN]) (void *Args) = + Usr_Can_t ICanEdit; + static void (*FunctionToDrawContextualIcons[Usr_NUM_CAN]) (void *Args) = { - [Usr_I_CAN_NOT] = NULL, - [Usr_I_CAN ] = Grp_PutIconToEditGroups, + [Usr_CAN_NOT] = NULL, + [Usr_CAN ] = Grp_PutIconToEditGroups, }; /***** Trivial check: if no groups ==> nothing to do *****/ @@ -362,8 +362,8 @@ void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction, /***** Begin box *****/ ICanEdit = (!Frm_CheckIfInside () && (Gbl.Usrs.Me.Role.Logged == Rol_TCH || - Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_CAN : + Usr_CAN_NOT; Box_BoxBegin (Txt_Groups, FunctionToDrawContextualIcons[ICanEdit],NULL, Hlp_USERS_Groups,Box_CLOSABLE); @@ -410,7 +410,7 @@ void Grp_ShowFormToSelectSeveralGroups (Act_Action_t NextAction, static void Grp_PutCheckboxAllGrps (void) { extern const char *Txt_All_groups; - Usr_ICan_t ICanSelUnselGroup; + Usr_Can_t ICanSelUnselGroup; switch (Gbl.Usrs.Me.Role.Logged) { @@ -419,10 +419,10 @@ static void Grp_PutCheckboxAllGrps (void) case Rol_CTR_ADM: case Rol_INS_ADM: case Rol_SYS_ADM: - ICanSelUnselGroup = Usr_I_CAN; + ICanSelUnselGroup = Usr_CAN; break; default: - ICanSelUnselGroup = Usr_I_CAN_NOT; + ICanSelUnselGroup = Usr_CAN_NOT; break; } @@ -430,7 +430,7 @@ static void Grp_PutCheckboxAllGrps (void) HTM_LABEL_Begin ("class=\"FORM_IN_%s\"",The_GetSuffix ()); HTM_INPUT_CHECKBOX ("AllGroups",HTM_DONT_SUBMIT_ON_CHANGE, "value=\"Y\"%s", - ICanSelUnselGroup == Usr_I_CAN ? (Gbl.Crs.Grps.AllGrps ? " checked=\"checked\"" + ICanSelUnselGroup == Usr_CAN ? (Gbl.Crs.Grps.AllGrps ? " checked=\"checked\"" " onclick=\"togglecheckChildren(this,'GrpCods')\"" : " onclick=\"togglecheckChildren(this,'GrpCods')\"") : " disabled=\"disabled\""); @@ -633,7 +633,7 @@ void Grp_ChangeMyGrps (Cns_QuietOrVerbose_t QuietOrVerbose) bool ChangesMade; /***** Can I change my groups? *****/ - if (Grp_CheckIfICanChangeGrps () == Usr_I_CAN_NOT) + if (Grp_CheckIfICanChangeGrps () == Usr_CAN_NOT) return; /***** Get list of groups types and groups in this course *****/ @@ -692,7 +692,7 @@ void Grp_ChangeOtherUsrGrps (void) bool SelectionIsValid; /***** Can I change another user's groups? *****/ - if (Grp_CheckIfICanChangeGrps () == Usr_I_CAN_NOT) + if (Grp_CheckIfICanChangeGrps () == Usr_CAN_NOT) return; /***** Get list of groups types and groups in current course *****/ @@ -1723,15 +1723,15 @@ void Grp_ShowLstGrpsToChgMyGrps (void) unsigned NumGrpsIBelong = 0; Frm_PutForm_t PutFormToChangeGrps = Frm_CheckIfInside () ? Frm_DONT_PUT_FORM : // Inside another form (record card)? Frm_PUT_FORM; - Usr_ICan_t ICanEdit = (!Frm_CheckIfInside () && + Usr_Can_t ICanEdit = (!Frm_CheckIfInside () && (Gbl.Usrs.Me.Role.Logged == Rol_TCH || - Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_I_CAN : - Usr_I_CAN_NOT; - Usr_ICan_t ICanChangeMyGrps = Usr_I_CAN_NOT; - static void (*FunctionToDrawContextualIcons[Usr_NUM_I_CAN]) (void *Args) = + Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_CAN : + Usr_CAN_NOT; + Usr_Can_t ICanChangeMyGrps = Usr_CAN_NOT; + static void (*FunctionToDrawContextualIcons[Usr_NUM_CAN]) (void *Args) = { - [Usr_I_CAN_NOT] = NULL, - [Usr_I_CAN ] = Grp_PutIconToEditGroups, + [Usr_CAN_NOT] = NULL, + [Usr_CAN ] = Grp_PutIconToEditGroups, }; if (Gbl.Crs.Grps.NumGrps) // This course has groups @@ -1764,8 +1764,8 @@ void Grp_ShowLstGrpsToChgMyGrps (void) if (Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp].NumGrps) // If there are groups of this type { if (Grp_ListGrpsForChangeMySelection (&Gbl.Crs.Grps.GrpTypes.LstGrpTypes[NumGrpTyp], - &NumGrpsThisTypeIBelong) == Usr_I_CAN) - ICanChangeMyGrps = Usr_I_CAN; + &NumGrpsThisTypeIBelong) == Usr_CAN) + ICanChangeMyGrps = Usr_CAN; NumGrpsIBelong += NumGrpsThisTypeIBelong; } HTM_TABLE_End (); @@ -1773,7 +1773,7 @@ void Grp_ShowLstGrpsToChgMyGrps (void) /***** End form *****/ if (PutFormToChangeGrps) { - if (ICanChangeMyGrps == Usr_I_CAN) + if (ICanChangeMyGrps == Usr_CAN) Btn_PutConfirmButton (NumGrpsIBelong ? Txt_Change_my_groups : Txt_Enrol_in_groups); Frm_EndForm (); @@ -1842,7 +1842,7 @@ static void Grp_ShowWarningToStdsToChangeGrps (void) /*****************************************************************************/ // Returns true if I can change my selection -static Usr_ICan_t Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, +static Usr_Can_t Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, unsigned *NumGrpsThisTypeIBelong) { struct ListCodGrps LstGrpsIBelong; @@ -1850,8 +1850,8 @@ static Usr_ICan_t Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, struct Group *Grp; bool IBelongToThisGroup; bool IBelongToAClosedGroup; - Usr_ICan_t ICanChangeMySelectionForThisGrpTyp; - Usr_ICan_t ICanChangeMySelectionForThisGrp; + Usr_Can_t ICanChangeMySelectionForThisGrpTyp; + Usr_Can_t ICanChangeMySelectionForThisGrp; char StrGrpCod[32]; /***** Write heading *****/ @@ -1868,9 +1868,9 @@ static Usr_ICan_t Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, case Rol_STD: if (GrpTyp->MultipleEnrolment) // Enrolment is multiple { - for (NumGrpThisType = 0, ICanChangeMySelectionForThisGrpTyp = Usr_I_CAN_NOT; + for (NumGrpThisType = 0, ICanChangeMySelectionForThisGrpTyp = Usr_CAN_NOT; NumGrpThisType < GrpTyp->NumGrps && - ICanChangeMySelectionForThisGrpTyp == Usr_I_CAN_NOT; + ICanChangeMySelectionForThisGrpTyp == Usr_CAN_NOT; NumGrpThisType++) { Grp = &(GrpTyp->LstGrps[NumGrpThisType]); @@ -1878,10 +1878,10 @@ static Usr_ICan_t Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, { IBelongToThisGroup = Grp_CheckIfGrpIsInList (Grp->GrpCod,&LstGrpsIBelong); if (IBelongToThisGroup) // I belong to this group - ICanChangeMySelectionForThisGrpTyp = Usr_I_CAN; // I can unregister from group + ICanChangeMySelectionForThisGrpTyp = Usr_CAN; // I can unregister from group else // I don't belong if (Grp->NumUsrs[Rol_STD] < Grp->MaxStudents) // Group is not full - ICanChangeMySelectionForThisGrpTyp = Usr_I_CAN; // I can register into group + ICanChangeMySelectionForThisGrpTyp = Usr_CAN; // I can register into group } } } @@ -1902,12 +1902,12 @@ static Usr_ICan_t Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, } if (IBelongToAClosedGroup) // I belong to a closed group - ICanChangeMySelectionForThisGrpTyp = Usr_I_CAN_NOT; // I can not unregister + ICanChangeMySelectionForThisGrpTyp = Usr_CAN_NOT; // I can not unregister else // I don't belong to a closed group /* Step 2: Check if I can register in at least one group to which I don't belong */ - for (NumGrpThisType = 0, ICanChangeMySelectionForThisGrpTyp = Usr_I_CAN_NOT; + for (NumGrpThisType = 0, ICanChangeMySelectionForThisGrpTyp = Usr_CAN_NOT; NumGrpThisType < GrpTyp->NumGrps && - ICanChangeMySelectionForThisGrpTyp == Usr_I_CAN_NOT; + ICanChangeMySelectionForThisGrpTyp == Usr_CAN_NOT; NumGrpThisType++) { Grp = &(GrpTyp->LstGrps[NumGrpThisType]); @@ -1916,17 +1916,17 @@ static Usr_ICan_t Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, { IBelongToThisGroup = Grp_CheckIfGrpIsInList (Grp->GrpCod,&LstGrpsIBelong); if (!IBelongToThisGroup) // I don't belong to this group - ICanChangeMySelectionForThisGrpTyp = Usr_I_CAN; // I can register into this group + ICanChangeMySelectionForThisGrpTyp = Usr_CAN; // I can register into this group } } } break; case Rol_TCH: case Rol_SYS_ADM: - ICanChangeMySelectionForThisGrpTyp = Usr_I_CAN; // I can not register/unregister + ICanChangeMySelectionForThisGrpTyp = Usr_CAN; // I can not register/unregister break; default: - ICanChangeMySelectionForThisGrpTyp = Usr_I_CAN_NOT; // I can not register/unregister + ICanChangeMySelectionForThisGrpTyp = Usr_CAN_NOT; // I can not register/unregister break; } @@ -1941,25 +1941,25 @@ static Usr_ICan_t Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, /* Selection disabled? */ switch (ICanChangeMySelectionForThisGrpTyp) // I can change my selection for this group type { - case Usr_I_CAN: - ICanChangeMySelectionForThisGrp = Usr_I_CAN; + case Usr_CAN: + ICanChangeMySelectionForThisGrp = Usr_CAN; if (Gbl.Usrs.Me.Role.Logged == Rol_STD) switch (Grp->ClosedOrOpen) { case CloOpe_OPEN: // If group is open if (!IBelongToThisGroup && // I don't belong to group Grp->NumUsrs[Rol_STD] >= Grp->MaxStudents) // Group is full - ICanChangeMySelectionForThisGrp = Usr_I_CAN_NOT; + ICanChangeMySelectionForThisGrp = Usr_CAN_NOT; break; case CloOpe_CLOSED: // If group is closed default: - ICanChangeMySelectionForThisGrp = Usr_I_CAN_NOT; + ICanChangeMySelectionForThisGrp = Usr_CAN_NOT; break; } break; - case Usr_I_CAN_NOT: // I can not change my selection for this group type + case Usr_CAN_NOT: // I can not change my selection for this group type default: - ICanChangeMySelectionForThisGrp = Usr_I_CAN_NOT; + ICanChangeMySelectionForThisGrp = Usr_CAN_NOT; break; } @@ -1980,7 +1980,7 @@ static Usr_ICan_t Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, "id=\"Grp%ld\" value=\"%ld\"%s%s", Grp->GrpCod,Grp->GrpCod, IBelongToThisGroup ? " checked=\"checked\"" : "", // Group selected? - ICanChangeMySelectionForThisGrp == Usr_I_CAN ? "" : + ICanChangeMySelectionForThisGrp == Usr_CAN ? "" : IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted) " disabled=\"disabled\""); // I can not register else // If the enrolment is not mandatory, I can select no groups @@ -1989,7 +1989,7 @@ static Usr_ICan_t Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, " onclick=\"selectUnselectRadio(this,this.form.GrpCod%ld,%u)\"", Grp->GrpCod,Grp->GrpCod, IBelongToThisGroup ? " checked=\"checked\"" : "", // Group selected? - ICanChangeMySelectionForThisGrp == Usr_I_CAN ? "" : + ICanChangeMySelectionForThisGrp == Usr_CAN ? "" : IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted) " disabled=\"disabled\"", // I can not register GrpTyp->GrpTypCod,GrpTyp->NumGrps); @@ -2000,7 +2000,7 @@ static Usr_ICan_t Grp_ListGrpsForChangeMySelection (struct GroupType *GrpTyp, "id=\"Grp%ld\" value=\"%ld\"%s%s", Grp->GrpCod,Grp->GrpCod, IBelongToThisGroup ? " checked=\"checked\"" : "", - ICanChangeMySelectionForThisGrp == Usr_I_CAN ? "" : + ICanChangeMySelectionForThisGrp == Usr_CAN ? "" : IBelongToThisGroup ? " readonly" : // I can not unregister (disabled does not work because the value is not submitted) " disabled=\"disabled\""); // I can not register @@ -2126,7 +2126,7 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp) unsigned NumGrpSel; struct ListCodGrps LstGrpsIBelong; bool IBelongToThisGroup; - Usr_ICan_t ICanSelUnselGroup; + Usr_Can_t ICanSelUnselGroup; bool Checked; struct Group *Grp; Rol_Role_t Role; @@ -2151,24 +2151,24 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp) /* Check if I can select / unselect this group */ if (IBelongToThisGroup) - ICanSelUnselGroup = Usr_I_CAN; + ICanSelUnselGroup = Usr_CAN; else switch (Gbl.Usrs.Me.Role.Logged) { case Rol_STD: case Rol_NET: - ICanSelUnselGroup = IBelongToThisGroup ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanSelUnselGroup = IBelongToThisGroup ? Usr_CAN : + Usr_CAN_NOT; break; case Rol_TCH: case Rol_DEG_ADM: case Rol_CTR_ADM: case Rol_INS_ADM: case Rol_SYS_ADM: - ICanSelUnselGroup = Usr_I_CAN; + ICanSelUnselGroup = Usr_CAN; break; default: - ICanSelUnselGroup = Usr_I_CAN_NOT; + ICanSelUnselGroup = Usr_CAN_NOT; break; } @@ -2195,7 +2195,7 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp) Grp->GrpCod,Grp->GrpCod, Checked ? " checked=\"checked\"" : "", - ICanSelUnselGroup == Usr_I_CAN ? " onclick=\"checkParent(this,'AllGroups')\"" : + ICanSelUnselGroup == Usr_CAN ? " onclick=\"checkParent(this,'AllGroups')\"" : " disabled=\"disabled\""); HTM_TD_End (); @@ -2211,11 +2211,11 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp) /***** Write rows to select the students who don't belong to any group *****/ /* To get the students who don't belong to a type of group, use group code -(GrpTyp->GrpTypCod) */ /* Write checkbox to select the group */ - ICanSelUnselGroup = (Gbl.Usrs.Me.Role.Logged >= Rol_STD) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanSelUnselGroup = (Gbl.Usrs.Me.Role.Logged >= Rol_STD) ? Usr_CAN : + Usr_CAN_NOT; switch (ICanSelUnselGroup) { - case Usr_I_CAN: + case Usr_CAN: if (Gbl.Crs.Grps.AllGrps) Checked = true; else @@ -2228,7 +2228,7 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp) break; } break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Checked = false; break; @@ -2241,7 +2241,7 @@ static void Grp_ListGrpsForMultipleSelection (struct GroupType *GrpTyp) "id=\"Grp%ld\" value=\"%ld\"%s" " onclick=\"checkParent(this,'AllGroups')\"", -GrpTyp->GrpTypCod,-GrpTyp->GrpTypCod, - ICanSelUnselGroup == Usr_I_CAN ? (Checked ? " checked=\"checked\"" : + ICanSelUnselGroup == Usr_CAN ? (Checked ? " checked=\"checked\"" : "") : " disabled=\"disabled\""); HTM_TD_End (); @@ -3087,7 +3087,7 @@ bool Grp_CheckIfUsrSharesAnyOfMyGrpsInCurrentCrs (const struct Usr_Data *UsrDat) return false; /***** 4. Fast check: Do I belong to the current course? *****/ - if (!Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_DONT_BELONG) return false; /***** 5. Fast check: It's me? *****/ @@ -4376,8 +4376,8 @@ Grp_WhichGroups_t Grp_GetParWhichGroups (void) If I belong to this course ==> see only my groups If I don't belong to this course ==> see all groups */ - WhichGroupsDefault = Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] ? Grp_MY_GROUPS : - Grp_ALL_GROUPS; + WhichGroupsDefault = (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG) ? Grp_MY_GROUPS : + Grp_ALL_GROUPS; break; case ActSeeMyTT: // Show my timetable case ActPrnMyTT: // Print my timetable diff --git a/swad_help.c b/swad_help.c index a4ede764a..21d19cdcb 100644 --- a/swad_help.c +++ b/swad_help.c @@ -130,34 +130,36 @@ void Hlp_ShowHelpWhatWouldYouLikeToDo (void) { if (Gbl.Hierarchy.Level == Hie_CRS) // Course selected { - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) // I belong to this course - { - if (Gbl.Action.Act != ActLogIn && - Gbl.Action.Act != ActLogInNew && - Gbl.Action.Act != ActLogInLan) // I am not just logged - if (ActionsRemoveMe[Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs] != ActUnk) - { - /***** Request my removing from this course *****/ - if (asprintf (&Description,Txt_Remove_me_from_THE_COURSE_X, - Gbl.Hierarchy.Node[Hie_CRS].ShrtName) < 0) - Err_NotEnoughMemoryExit (); - Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description, - ActionsRemoveMe[Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs], - Btn_REMOVE_BUTTON,Txt_Remove_me); - free (Description); - } - } - else // I do not belong to this course - { - /***** Request my registration in this course *****/ - if (asprintf (&Description,Txt_Register_me_in_X, - Gbl.Hierarchy.Node[Hie_CRS].ShrtName) < 0) - Err_NotEnoughMemoryExit (); - Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description, - ActReqSignUp, - Btn_CREATE_BUTTON,Txt_Sign_up); - free (Description); - } + switch (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + { + case Usr_BELONG: // I belong to this course + if (Gbl.Action.Act != ActLogIn && + Gbl.Action.Act != ActLogInNew && + Gbl.Action.Act != ActLogInLan) // I am not just logged + if (ActionsRemoveMe[Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs] != ActUnk) + { + /***** Request my removing from this course *****/ + if (asprintf (&Description,Txt_Remove_me_from_THE_COURSE_X, + Gbl.Hierarchy.Node[Hie_CRS].ShrtName) < 0) + Err_NotEnoughMemoryExit (); + Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description, + ActionsRemoveMe[Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs], + Btn_REMOVE_BUTTON,Txt_Remove_me); + free (Description); + } + break; + case Usr_DONT_BELONG: // I do not belong to this course + default: + /***** Request my registration in this course *****/ + if (asprintf (&Description,Txt_Register_me_in_X, + Gbl.Hierarchy.Node[Hie_CRS].ShrtName) < 0) + Err_NotEnoughMemoryExit (); + Hlp_ShowRowHelpWhatWouldYouLikeToDo (Description, + ActReqSignUp, + Btn_CREATE_BUTTON,Txt_Sign_up); + free (Description); + break; + } } if (Gbl.Usrs.Me.Hierarchy[Hie_CRS].Num) // I am enroled in some courses diff --git a/swad_hierarchy.c b/swad_hierarchy.c index c38f667ca..3d1e5a60b 100644 --- a/swad_hierarchy.c +++ b/swad_hierarchy.c @@ -605,8 +605,7 @@ void Hie_ResetHierarchy (void) Gbl.Hierarchy.Node[Level].ShrtName[0] = Gbl.Hierarchy.Node[Level].FullName[0] = '\0'; Gbl.Hierarchy.Node[Level].WWW[0] = '\0'; - - Gbl.Usrs.Me.IBelongToCurrent[Level] = false; + Gbl.Usrs.Me.IBelongToCurrent[Level] = Usr_DONT_BELONG; } Gbl.Hierarchy.Node[Hie_CTR].Specific.PlcCod = -1L; Gbl.Hierarchy.Node[Hie_DEG].Specific.TypCod = -1L; @@ -707,23 +706,23 @@ void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan) /****************** Check if I can edit hierarchy elements *******************/ /*****************************************************************************/ -Usr_ICan_t Hie_CheckIfICanEdit (void) +Usr_Can_t Hie_CheckIfICanEdit (void) { // Some admins can edit all hierarchy elements. // Any user can edit the elements he/she has created... // ...as long as they are in pending status. - static Usr_ICan_t ICanEdit[Rol_NUM_ROLES] = + static Usr_Can_t ICanEdit[Rol_NUM_ROLES] = { /* Users who can edit */ - [Rol_GST ] = Usr_I_CAN, - [Rol_USR ] = Usr_I_CAN, - [Rol_STD ] = Usr_I_CAN, - [Rol_NET ] = Usr_I_CAN, - [Rol_TCH ] = Usr_I_CAN, - [Rol_DEG_ADM] = Usr_I_CAN, - [Rol_CTR_ADM] = Usr_I_CAN, - [Rol_INS_ADM] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_GST ] = Usr_CAN, + [Rol_USR ] = Usr_CAN, + [Rol_STD ] = Usr_CAN, + [Rol_NET ] = Usr_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_DEG_ADM] = Usr_CAN, + [Rol_CTR_ADM] = Usr_CAN, + [Rol_INS_ADM] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return ICanEdit[Gbl.Usrs.Me.Role.Logged]; @@ -746,7 +745,7 @@ void Hie_WriteStatusCell (Hie_Status_t Status, HTM_TD_End (); } -void Hie_WriteStatusCellEditable (Usr_ICan_t ICanEdit,Hie_Status_t Status, +void Hie_WriteStatusCellEditable (Usr_Can_t ICanEdit,Hie_Status_t Status, Act_Action_t NextAction,long HieCod, const char *Txt[Hie_NUM_STATUS_TXT]) { @@ -755,7 +754,7 @@ void Hie_WriteStatusCellEditable (Usr_ICan_t ICanEdit,Hie_Status_t Status, /***** Begin cell *****/ HTM_TD_Begin ("class=\"LM DAT_%s\"",The_GetSuffix ()); - if (ICanEdit == Usr_I_CAN && StatusTxt == Hie_STATUS_PENDING) + if (ICanEdit == Usr_CAN && StatusTxt == Hie_STATUS_PENDING) { /* Begin form */ Frm_BeginForm (NextAction); @@ -906,7 +905,7 @@ void Hie_ResetMyHierarchy (void) Gbl.Usrs.Me.Hierarchy[Level].Nodes = NULL; Gbl.Usrs.Me.Hierarchy[Level].Num = 0; Gbl.Usrs.Me.Hierarchy[Level].Filled = false; - Gbl.Usrs.Me.IBelongToCurrent[Level] = false; + Gbl.Usrs.Me.IBelongToCurrent[Level] = Usr_DONT_BELONG; } } @@ -1008,7 +1007,7 @@ void Hie_GetMyHierarchy (Hie_Level_t Level) /****** Check if I belong to a course/degree/center/institution/country ******/ /*****************************************************************************/ -bool Hie_CheckIfIBelongTo (Hie_Level_t Level,long HieCod) +Usr_Belong_t Hie_CheckIfIBelongTo (Hie_Level_t Level,long HieCod) { unsigned NumMyNode; @@ -1020,8 +1019,8 @@ bool Hie_CheckIfIBelongTo (Hie_Level_t Level,long HieCod) NumMyNode < Gbl.Usrs.Me.Hierarchy[Level].Num; NumMyNode++) if (Gbl.Usrs.Me.Hierarchy[Level].Nodes[NumMyNode].HieCod == HieCod) - return true; - return false; + return Usr_BELONG; + return Usr_DONT_BELONG; } /*****************************************************************************/ diff --git a/swad_hierarchy.h b/swad_hierarchy.h index a16b2077e..75ed4a338 100644 --- a/swad_hierarchy.h +++ b/swad_hierarchy.h @@ -49,12 +49,12 @@ void Hie_ResetHierarchy (void); void Hie_GetAndWriteInsCtrDegAdminBy (long UsrCod,unsigned ColSpan); -Usr_ICan_t Hie_CheckIfICanEdit (void); +Usr_Can_t Hie_CheckIfICanEdit (void); void Hie_WriteStatusCell (Hie_Status_t Status, const char *Class,const char *BgColor, const char *Txt[Hie_NUM_STATUS_TXT]); -void Hie_WriteStatusCellEditable (Usr_ICan_t ICanEdit,Hie_Status_t Status, +void Hie_WriteStatusCellEditable (Usr_Can_t ICanEdit,Hie_Status_t Status, Act_Action_t NextAction,long HieCod, const char *Txt[Hie_NUM_STATUS_TXT]); Hie_Status_t Hie_GetParStatus (void); @@ -67,7 +67,7 @@ void Hie_FreeList (Hie_Level_t Level); void Hie_ResetMyHierarchy (void); void Hie_FreeMyHierarchy (void); void Hie_GetMyHierarchy (Hie_Level_t Level); -bool Hie_CheckIfIBelongTo (Hie_Level_t Level,long HieCod); +Usr_Belong_t Hie_CheckIfIBelongTo (Hie_Level_t Level,long HieCod); void Hie_FlushCacheUsrBelongsTo (Hie_Level_t Level); bool Hie_CheckIfUsrBelongsTo (Hie_Level_t Level,long UsrCod,long HieCod, diff --git a/swad_holiday.c b/swad_holiday.c index 1222c0816..7dac49455 100644 --- a/swad_holiday.c +++ b/swad_holiday.c @@ -60,7 +60,7 @@ static struct Hld_Holiday *Hld_EditingHld = NULL; // Static variable to keep the /***************************** Private prototypes ****************************/ /*****************************************************************************/ -static Usr_ICan_t Hld_CheckIfICanEditHlds (void); +static Usr_Can_t Hld_CheckIfICanEditHlds (void); static Hld_Order_t Hld_GetParHldOrder (void); static void Hld_PutIconsSeeHolidays (__attribute__((unused)) void *Args); @@ -88,13 +88,13 @@ static void Hld_EditingHolidayDestructor (void); /************************ Check if I can edit holidays ***********************/ /*****************************************************************************/ -static Usr_ICan_t Hld_CheckIfICanEditHlds (void) +static Usr_Can_t Hld_CheckIfICanEditHlds (void) { - static Usr_ICan_t Hld_ICanEditHlds[Rol_NUM_ROLES] = + static Usr_Can_t Hld_ICanEditHlds[Rol_NUM_ROLES] = { /* Users who can edit */ - [Rol_INS_ADM] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_INS_ADM] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return Hld_ICanEditHlds[Gbl.Usrs.Me.Role.Logged]; @@ -241,7 +241,7 @@ static Hld_Order_t Hld_GetParHldOrder (void) static void Hld_PutIconsSeeHolidays (__attribute__((unused)) void *Args) { /***** Edit holidays *****/ - if (Hld_CheckIfICanEditHlds () == Usr_I_CAN) + if (Hld_CheckIfICanEditHlds () == Usr_CAN) Ico_PutContextualIconToEdit (ActEdiHld,NULL,NULL,NULL); /***** View calendar *****/ diff --git a/swad_info.c b/swad_info.c index c98a4be90..74f29ab06 100644 --- a/swad_info.c +++ b/swad_info.c @@ -176,19 +176,19 @@ void Inf_ShowInfo (void) struct Syl_Syllabus Syllabus; struct Inf_FromDB FromDB; bool Disabled; - Usr_ICan_t ICanEdit = (Gbl.Usrs.Me.Role.Logged == Rol_TCH || - Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Usr_Can_t ICanEdit = (Gbl.Usrs.Me.Role.Logged == Rol_TCH || + Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_CAN : + Usr_CAN_NOT; bool ShowWarningNoInfo = false; - static void (*FunctionToDrawContextualIcons[Usr_NUM_I_CAN]) (void *Args) = + static void (*FunctionToDrawContextualIcons[Usr_NUM_CAN]) (void *Args) = { - [Usr_I_CAN_NOT] = NULL, - [Usr_I_CAN ] = Inf_PutIconToEditInfo, + [Usr_CAN_NOT] = NULL, + [Usr_CAN ] = Inf_PutIconToEditInfo, }; - static void *Args[Usr_NUM_I_CAN] = + static void *Args[Usr_NUM_CAN] = { - [Usr_I_CAN_NOT] = NULL, - [Usr_I_CAN ] = &Gbl.Crs.Info.Type, + [Usr_CAN_NOT] = NULL, + [Usr_CAN ] = &Gbl.Crs.Info.Type, }; static const char **Help[Inf_NUM_TYPES] = { diff --git a/swad_institution.c b/swad_institution.c index d83997872..d9e6957c5 100644 --- a/swad_institution.c +++ b/swad_institution.c @@ -89,7 +89,7 @@ static void Ins_GetInstitDataFromRow (MYSQL_RES *mysql_res, bool GetNumUsrsWhoClaimToBelongToIns); static void Ins_ListInstitutionsForEdition (void); -static Usr_ICan_t Ins_CheckIfICanEdit (struct Hie_Node *Ins); +static Usr_Can_t Ins_CheckIfICanEdit (struct Hie_Node *Ins); static void Ins_UpdateInsNameDB (long InsCod,const char *FldName,const char *NewName); @@ -331,7 +331,7 @@ static void Ins_ListInstitutions (void) static void Ins_PutIconsListingInstitutions (__attribute__((unused)) void *Args) { /***** Put icon to edit institutions *****/ - if (Hie_CheckIfICanEdit () == Usr_I_CAN) + if (Hie_CheckIfICanEdit () == Usr_CAN) Ins_PutIconToEditInstitutions (); /***** Put icon to show a figure *****/ @@ -882,7 +882,7 @@ static void Ins_ListInstitutionsForEdition (void) struct Hie_Node *Ins; char WWW[Cns_MAX_BYTES_WWW + 1]; struct Usr_Data UsrDat; - Usr_ICan_t ICanEdit; + Usr_Can_t ICanEdit; unsigned NumCtrs; unsigned NumUsrsIns; unsigned NumUsrsInCrssOfIns; @@ -918,7 +918,7 @@ static void Ins_ListInstitutionsForEdition (void) /* Put icon to remove institution */ HTM_TD_Begin ("class=\"BT\""); - if (ICanEdit == Usr_I_CAN_NOT || + if (ICanEdit == Usr_CAN_NOT || NumCtrs || // Institution has centers NumUsrsIns || // Institution has users NumUsrsInCrssOfIns) // Institution has users @@ -945,14 +945,14 @@ static void Ins_ListInstitutionsForEdition (void) Nam_ExistingShortAndFullNames (ActionRename, ParCod_OthHie,Ins->HieCod, Names, - ICanEdit == Usr_I_CAN ? Frm_PUT_FORM : + ICanEdit == Usr_CAN ? Frm_PUT_FORM : Frm_DONT_PUT_FORM); /* Institution WWW */ HTM_TD_Begin ("class=\"LT DAT_%s\"",The_GetSuffix ()); switch (ICanEdit) { - case Usr_I_CAN: + case Usr_CAN: Frm_BeginForm (ActChgInsWWW); ParCod_PutPar (ParCod_OthHie,Ins->HieCod); HTM_INPUT_URL ("WWW",Ins->WWW,HTM_SUBMIT_ON_CHANGE, @@ -961,7 +961,7 @@ static void Ins_ListInstitutionsForEdition (void) The_GetSuffix ()); Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Str_Copy (WWW,Ins->WWW,sizeof (WWW) - 1); HTM_DIV_Begin ("class=\"EXTERNAL_WWW_SHRT\""); @@ -997,8 +997,8 @@ static void Ins_ListInstitutionsForEdition (void) HTM_TD_End (); /* Institution status */ - Hie_WriteStatusCellEditable (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM ? Usr_I_CAN : - Usr_I_CAN_NOT, + Hie_WriteStatusCellEditable (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM ? Usr_CAN : + Usr_CAN_NOT, Ins->Status,ActChgInsSta,Ins->HieCod, Txt_INSTITUTION_STATUS); @@ -1016,12 +1016,12 @@ static void Ins_ListInstitutionsForEdition (void) /************ Check if I can edit, remove, etc. an institution ***************/ /*****************************************************************************/ -static Usr_ICan_t Ins_CheckIfICanEdit (struct Hie_Node *Ins) +static Usr_Can_t Ins_CheckIfICanEdit (struct Hie_Node *Ins) { return (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || // I am a superuser ((Ins->Status & Hie_STATUS_BIT_PENDING) != 0 && // Institution is not yet activated - Gbl.Usrs.Me.UsrDat.UsrCod == Ins->RequesterUsrCod)) ? Usr_I_CAN : // I am the requester - Usr_I_CAN_NOT; + Gbl.Usrs.Me.UsrDat.UsrCod == Ins->RequesterUsrCod)) ? Usr_CAN : // I am the requester + Usr_CAN_NOT; } /*****************************************************************************/ @@ -1045,7 +1045,7 @@ void Ins_RemoveInstitution (void) Hie_GetDataByCod[Hie_INS] (Ins_EditingIns); /***** Check if I can edit this institution *****/ - if (Ins_CheckIfICanEdit (Ins_EditingIns) == Usr_I_CAN_NOT) + if (Ins_CheckIfICanEdit (Ins_EditingIns) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Check if this institution has centers or users *****/ diff --git a/swad_link.c b/swad_link.c index 0ff3498cb..50444e713 100644 --- a/swad_link.c +++ b/swad_link.c @@ -71,7 +71,7 @@ static struct Lnk_Link *Lnk_EditingLnk = NULL; // Static variable to keep the li /***************************** Private prototypes ****************************/ /*****************************************************************************/ -static Usr_ICan_t Lnk_CheckIfICanEditLinks (void); +static Usr_Can_t Lnk_CheckIfICanEditLinks (void); static void Lnk_PutIconsListingLinks (__attribute__((unused)) void *Args); static void Lnk_PutIconToEditLinks (void); @@ -100,12 +100,12 @@ static void Lnk_EditingLinkDestructor (void); /************************* Check if I can edit links *************************/ /*****************************************************************************/ -static Usr_ICan_t Lnk_CheckIfICanEditLinks (void) +static Usr_Can_t Lnk_CheckIfICanEditLinks (void) { - static Usr_ICan_t Lnk_ICanEditLinks[Rol_NUM_ROLES] = + static Usr_Can_t Lnk_ICanEditLinks[Rol_NUM_ROLES] = { /* Users who can edit */ - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return Lnk_ICanEditLinks[Gbl.Usrs.Me.Role.Logged]; @@ -149,7 +149,7 @@ void Lnk_SeeLinks (void) static void Lnk_PutIconsListingLinks (__attribute__((unused)) void *Args) { /***** Put icon to edit links *****/ - if (Lnk_CheckIfICanEditLinks () == Usr_I_CAN) + if (Lnk_CheckIfICanEditLinks () == Usr_CAN) Lnk_PutIconToEditLinks (); /***** Put icon to view banners *****/ diff --git a/swad_mail.c b/swad_mail.c index 3a864c8dd..cf4a5ec42 100644 --- a/swad_mail.c +++ b/swad_mail.c @@ -1298,14 +1298,14 @@ void Mai_RemoveOtherUsrEmail (void) if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Usr_CheckIfICanEditOtherUsr (&Gbl.Usrs.Other.UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Remove user's email *****/ Mai_RemoveEmail (&Gbl.Usrs.Other.UsrDat); /***** Show form again *****/ Acc_ShowFormChgOtherUsrAccount (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -1325,7 +1325,7 @@ static void Mai_RemoveEmail (struct Usr_Data *UsrDat) switch (Usr_CheckIfICanEditOtherUsr (UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Get new email from form *****/ Par_GetParText ("Email",Email,Cns_MAX_BYTES_EMAIL_ADDRESS); @@ -1340,7 +1340,7 @@ static void Mai_RemoveEmail (struct Usr_Data *UsrDat) /***** Update list of emails *****/ Mai_GetEmailFromUsrCod (UsrDat); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -1370,7 +1370,7 @@ void Mai_ChangeOtherUsrEmail (void) if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Usr_CheckIfICanEditOtherUsr (&Gbl.Usrs.Other.UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Change user's ID *****/ Mai_ChangeUsrEmail (&Gbl.Usrs.Other.UsrDat, Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod)); @@ -1378,7 +1378,7 @@ void Mai_ChangeOtherUsrEmail (void) /***** Show form again *****/ Acc_ShowFormChgOtherUsrAccount (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -1401,7 +1401,7 @@ static void Mai_ChangeUsrEmail (struct Usr_Data *UsrDat,Usr_MeOrOther_t MeOrOthe switch (Usr_CheckIfICanEditOtherUsr (UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Get new email from form *****/ Par_GetParText ("NewEmail",NewEmail,Cns_MAX_BYTES_EMAIL_ADDRESS); @@ -1441,7 +1441,7 @@ static void Mai_ChangeUsrEmail (struct Usr_Data *UsrDat,Usr_MeOrOther_t MeOrOthe Txt_The_email_address_entered_X_is_not_valid, NewEmail); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_CreateAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -1678,11 +1678,11 @@ void Mai_WriteFootNoteEMail (FILE *FileMail,Lan_Language_t Language) /**************** Check if I can see another user's email ********************/ /*****************************************************************************/ -Usr_ICan_t Mai_ICanSeeOtherUsrEmail (const struct Usr_Data *UsrDat) +Usr_Can_t Mai_ICanSeeOtherUsrEmail (const struct Usr_Data *UsrDat) { /***** I can see my email *****/ if (Usr_ItsMe (UsrDat->UsrCod) == Usr_ME) - return Usr_I_CAN; + return Usr_CAN; /***** Check if I have permission to see another user's email *****/ switch (Gbl.Usrs.Me.Role.Logged) @@ -1692,40 +1692,40 @@ Usr_ICan_t Mai_ICanSeeOtherUsrEmail (const struct Usr_Data *UsrDat) I can see the email of confirmed teachers */ return ((UsrDat->Roles.InCurrentCrs == Rol_NET || // A non-editing teacher UsrDat->Roles.InCurrentCrs == Rol_TCH) && // or a teacher - UsrDat->Accepted) ? Usr_I_CAN : // who accepted registration - Usr_I_CAN_NOT; + UsrDat->Accepted) ? Usr_CAN : // who accepted registration + Usr_CAN_NOT; case Rol_NET: case Rol_TCH: /* If I am a teacher in the current course, I can see the email of confirmed students and teachers */ return (Enr_CheckIfUsrBelongsToCurrentCrs (UsrDat) && // A user belonging to the current course - UsrDat->Accepted) ? Usr_I_CAN : // who accepted registration - Usr_I_CAN_NOT; + UsrDat->Accepted) ? Usr_CAN : // who accepted registration + Usr_CAN_NOT; case Rol_DEG_ADM: /* If I am an administrator of current degree, I only can see the user's email of users from current degree */ return Hie_CheckIfUsrBelongsTo (Hie_DEG,UsrDat->UsrCod, Gbl.Hierarchy.Node[Hie_DEG].HieCod, - true) ? Usr_I_CAN : // count only accepted courses - Usr_I_CAN_NOT; + true) ? Usr_CAN : // count only accepted courses + Usr_CAN_NOT; case Rol_CTR_ADM: /* If I am an administrator of current center, I only can see the user's email of users from current center */ return Hie_CheckIfUsrBelongsTo (Hie_CTR,UsrDat->UsrCod, Gbl.Hierarchy.Node[Hie_CTR].HieCod, - true) ? Usr_I_CAN : // count only accepted courses - Usr_I_CAN_NOT; + true) ? Usr_CAN : // count only accepted courses + Usr_CAN_NOT; case Rol_INS_ADM: /* If I am an administrator of current institution, I only can see the user's email of users from current institution */ return Hie_CheckIfUsrBelongsTo (Hie_INS,UsrDat->UsrCod, Gbl.Hierarchy.Node[Hie_INS].HieCod, - true) ? Usr_I_CAN : // count only accepted courses - Usr_I_CAN_NOT; + true) ? Usr_CAN : // count only accepted courses + Usr_CAN_NOT; case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } diff --git a/swad_mail.h b/swad_mail.h index c1079aeb3..fb7495acc 100644 --- a/swad_mail.h +++ b/swad_mail.h @@ -100,7 +100,7 @@ void Mai_WriteWelcomeNoteEMail (FILE *FileMail,const struct Usr_Data *UsrDat, Lan_Language_t ToUsrLanguage); void Mai_WriteFootNoteEMail (FILE *FileMail,Lan_Language_t Language); -Usr_ICan_t Mai_ICanSeeOtherUsrEmail (const struct Usr_Data *UsrDat); +Usr_Can_t Mai_ICanSeeOtherUsrEmail (const struct Usr_Data *UsrDat); int Mai_SendMailMsg (const char FileNameMail[PATH_MAX + 1], const char *Subject, diff --git a/swad_main.c b/swad_main.c index bfb57ed3a..f3f9e27cc 100644 --- a/swad_main.c +++ b/swad_main.c @@ -147,7 +147,7 @@ int main (void) Fir_CheckFirewallAndExitIfTooManyRequests (); /***** Check if the user have permission to execute the action *****/ - if (Act_CheckIfICanExecuteAction (Gbl.Action.Act) == Usr_I_CAN_NOT) + if (Act_CheckIfICanExecuteAction (Gbl.Action.Act) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Update most frequently used actions *****/ diff --git a/swad_match.c b/swad_match.c index e807c9cde..8c93d21be 100644 --- a/swad_match.c +++ b/swad_match.c @@ -103,10 +103,10 @@ static void Mch_ListOneOrMoreMatches (struct Gam_Games *Games, Frm_PutForm_t PutFormMatch, unsigned NumMatches, MYSQL_RES *mysql_res); -static void Mch_ListOneOrMoreMatchesHeading (Usr_ICan_t ICanEditMatches); -static Usr_ICan_t Mch_CheckIfICanEditMatches (void); -static Usr_ICan_t Mch_CheckIfICanEditThisMatch (const struct Mch_Match *Match); -static Usr_ICan_t Mch_CheckIfICanChangeVisibilityOfResults (const struct Mch_Match *Match); +static void Mch_ListOneOrMoreMatchesHeading (Usr_Can_t ICanEditMatches); +static Usr_Can_t Mch_CheckIfICanEditMatches (void); +static Usr_Can_t Mch_CheckIfICanEditThisMatch (const struct Mch_Match *Match); +static Usr_Can_t Mch_CheckIfICanChangeVisibilityOfResults (const struct Mch_Match *Match); static void Mch_ListOneOrMoreMatchesIcons (struct Gam_Games *Games, const struct Mch_Match *Match, const char *Anchor); @@ -284,7 +284,7 @@ void Mch_ListMatches (struct Gam_Games *Games, Hlp_ASSESSMENT_Games_matches,Box_NOT_CLOSABLE); /***** Select whether show only my groups or all groups *****/ - if (Gbl.Crs.Grps.NumGrps && Mch_CheckIfICanEditMatches () == Usr_I_CAN) + if (Gbl.Crs.Grps.NumGrps && Mch_CheckIfICanEditMatches () == Usr_CAN) { Set_BeginSettingsHead (); Grp_ShowFormToSelWhichGrps (ActSeeOneGam,Gam_PutPars,Games); @@ -329,7 +329,7 @@ void Mch_GetMatchDataByCod (struct Mch_Match *Match) static void Mch_PutIconsInListOfMatches (void *Games) { if (Games) - if (Mch_CheckIfICanEditMatches () == Usr_I_CAN) + if (Mch_CheckIfICanEditMatches () == Usr_CAN) /***** Put icon to create a new match in current game *****/ Mch_PutIconToCreateNewMatch ((struct Gam_Games *) Games); } @@ -357,7 +357,7 @@ static void Mch_ListOneOrMoreMatches (struct Gam_Games *Games, unsigned UniqueId; struct Mch_Match Match; char *Anchor; - Usr_ICan_t ICanEditMatches = Mch_CheckIfICanEditMatches (); + Usr_Can_t ICanEditMatches = Mch_CheckIfICanEditMatches (); long MchCodToBeEdited = PutFormMatch == Frm_PUT_FORM && Games->MchCod > 0 ? Games->MchCod : -1L; @@ -380,7 +380,7 @@ static void Mch_ListOneOrMoreMatches (struct Gam_Games *Games, /***** Get match data from row *****/ Mch_GetMatchDataFromRow (mysql_res,&Match); - if (Mch_CheckIfICanPlayThisMatchBasedOnGrps (&Match) == Usr_I_CAN) + if (Mch_CheckIfICanPlayThisMatchBasedOnGrps (&Match) == Usr_CAN) { /***** Build anchor string *****/ if (asprintf (&Anchor,"mch_%ld",Match.MchCod) < 0) @@ -390,7 +390,7 @@ static void Mch_ListOneOrMoreMatches (struct Gam_Games *Games, HTM_TR_Begin (NULL); /* Icons */ - if (ICanEditMatches == Usr_I_CAN) + if (ICanEditMatches == Usr_CAN) Mch_ListOneOrMoreMatchesIcons (Games,&Match,Anchor); /* Start/end date/time */ @@ -416,11 +416,11 @@ static void Mch_ListOneOrMoreMatches (struct Gam_Games *Games, HTM_TR_End (); /***** Third row for this match used for edition ****/ - if (ICanEditMatches == Usr_I_CAN && + if (ICanEditMatches == Usr_CAN && PutFormMatch == Frm_PUT_FORM && // Editing... Match.MchCod == MchCodToBeEdited) // ...this match /***** Check if I can edit this match *****/ - if (Mch_CheckIfICanEditThisMatch (&Match) == Usr_I_CAN) + if (Mch_CheckIfICanEditThisMatch (&Match) == Usr_CAN) { HTM_TR_Begin (NULL); HTM_TD_Begin ("colspan=\"7\" class=\"LT %s\"", @@ -436,7 +436,7 @@ static void Mch_ListOneOrMoreMatches (struct Gam_Games *Games, } /***** Put button to play a new match in this game *****/ - if (ICanEditMatches == Usr_I_CAN && + if (ICanEditMatches == Usr_CAN && PutFormMatch == Frm_PUT_FORM && MchCodToBeEdited <= 0) { @@ -461,7 +461,7 @@ static void Mch_ListOneOrMoreMatches (struct Gam_Games *Games, /***************** Put a column for match start and end times ****************/ /*****************************************************************************/ -static void Mch_ListOneOrMoreMatchesHeading (Usr_ICan_t ICanEditMatches) +static void Mch_ListOneOrMoreMatchesHeading (Usr_Can_t ICanEditMatches) { extern const char *Txt_START_END_TIME[Dat_NUM_START_END_TIME]; extern const char *Txt_Match; @@ -473,7 +473,7 @@ static void Mch_ListOneOrMoreMatchesHeading (Usr_ICan_t ICanEditMatches) HTM_TR_Begin (NULL); /***** Column for icons *****/ - if (ICanEditMatches == Usr_I_CAN) + if (ICanEditMatches == Usr_CAN) HTM_TH_Empty (1); /***** The rest of columns *****/ @@ -494,13 +494,13 @@ static void Mch_ListOneOrMoreMatchesHeading (Usr_ICan_t ICanEditMatches) /*********************** Check if I can edit matches *************************/ /*****************************************************************************/ -static Usr_ICan_t Mch_CheckIfICanEditMatches (void) +static Usr_Can_t Mch_CheckIfICanEditMatches (void) { - static Usr_ICan_t ICanEditMatches[Rol_NUM_ROLES] = + static Usr_Can_t ICanEditMatches[Rol_NUM_ROLES] = { - [Rol_NET ] = Usr_I_CAN, - [Rol_TCH ] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_NET ] = Usr_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return ICanEditMatches[Gbl.Usrs.Me.Role.Logged]; @@ -510,21 +510,21 @@ static Usr_ICan_t Mch_CheckIfICanEditMatches (void) /***************** Check if I can edit (remove/resume) a match ***************/ /*****************************************************************************/ -static Usr_ICan_t Mch_CheckIfICanEditThisMatch (const struct Mch_Match *Match) +static Usr_Can_t Mch_CheckIfICanEditThisMatch (const struct Mch_Match *Match) { if (Match->MchCod <= 0) - return Usr_I_CAN; + return Usr_CAN; switch (Gbl.Usrs.Me.Role.Logged) { case Rol_NET: - return (Match->UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_I_CAN : // Only if I am the creator - Usr_I_CAN_NOT; + return (Match->UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_CAN : // Only if I am the creator + Usr_CAN_NOT; case Rol_TCH: case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -532,13 +532,13 @@ static Usr_ICan_t Mch_CheckIfICanEditThisMatch (const struct Mch_Match *Match) /*********** Check if visibility of match results can be changed *************/ /*****************************************************************************/ -static Usr_ICan_t Mch_CheckIfICanChangeVisibilityOfResults (const struct Mch_Match *Match) +static Usr_Can_t Mch_CheckIfICanChangeVisibilityOfResults (const struct Mch_Match *Match) { if (Match->Status.ShowUsrResults || // Results are currently visible Match->Status.Showing == Mch_END) // Match has finished return Mch_CheckIfICanEditThisMatch (Match); - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } /*****************************************************************************/ @@ -553,7 +553,7 @@ static void Mch_ListOneOrMoreMatchesIcons (struct Gam_Games *Games, switch (Mch_CheckIfICanEditThisMatch (Match)) { - case Usr_I_CAN: + case Usr_CAN: Games->MchCod = Match->MchCod; /***** Put icon to remove the match *****/ @@ -562,7 +562,7 @@ static void Mch_ListOneOrMoreMatchesIcons (struct Gam_Games *Games, /***** Put icon to edit the match *****/ Ico_PutContextualIconToEdit (ActReqChgMch,Anchor,Mch_PutParsEdit,Games); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconRemovalNotAllowed (); break; @@ -833,7 +833,7 @@ static void Mch_ListOneOrMoreMatchesResultTch (struct Gam_Games *Games, Games->MchCod = Match->MchCod; /***** Show match results *****/ - if (Mch_CheckIfICanEditThisMatch (Match) == Usr_I_CAN) + if (Mch_CheckIfICanEditThisMatch (Match) == Usr_CAN) Lay_PutContextualLinkOnlyIcon (ActSeeUsrMchResMch,MchRes_RESULTS_BOX_ID, Mch_PutParsEdit,Games, "trophy.svg",Ico_BLACK); @@ -841,7 +841,7 @@ static void Mch_ListOneOrMoreMatchesResultTch (struct Gam_Games *Games, /***** Check if visibility of session results can be changed *****/ switch (Mch_CheckIfICanChangeVisibilityOfResults (Match)) { - case Usr_I_CAN: + case Usr_CAN: /* I can edit visibility */ if (Match->Status.ShowUsrResults) Lay_PutContextualLinkOnlyIcon (ActChgVisResMchUsr,NULL, @@ -852,7 +852,7 @@ static void Mch_ListOneOrMoreMatchesResultTch (struct Gam_Games *Games, Mch_PutParsEdit,Games, "eye-slash.svg",Ico_RED); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: /* I can not edit visibility */ if (Match->Status.ShowUsrResults) @@ -881,7 +881,7 @@ void Mch_ToggleVisResultsMchUsr (void) Mch_GetAndCheckPars (&Games,&Match); /***** Check if visibility of match results can be changed *****/ - if (Mch_CheckIfICanChangeVisibilityOfResults (&Match) == Usr_I_CAN_NOT) + if (Mch_CheckIfICanChangeVisibilityOfResults (&Match) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Toggle visibility of match results *****/ @@ -1029,7 +1029,7 @@ void Mch_RemoveMatch (void) Mch_GetAndCheckPars (&Games,&Match); /***** Check if I can remove this match *****/ - if (Mch_CheckIfICanEditThisMatch (&Match) == Usr_I_CAN_NOT) + if (Mch_CheckIfICanEditThisMatch (&Match) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Remove the match from all database tables *****/ @@ -1125,7 +1125,7 @@ void Mch_ReqCreatOrEditMatch (void) Mch_GetAndCheckPars (&Games,&Match); /***** Check if I can edit this match *****/ - if (Mch_CheckIfICanEditThisMatch (&Match) == Usr_I_CAN_NOT) + if (Mch_CheckIfICanEditThisMatch (&Match) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Show game *****/ @@ -1333,7 +1333,7 @@ void Mch_ChangeMatch (void) Mch_GetAndCheckPars (&Games,&Match); /***** Check if I can update this match *****/ - if (Mch_CheckIfICanEditThisMatch (&Match) == Usr_I_CAN_NOT) + if (Mch_CheckIfICanEditThisMatch (&Match) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get match title and groups *****/ @@ -1391,7 +1391,7 @@ void Mch_ResumeMatch (void) Mch_GetMatchDataByCod (&Match); /***** Check if I have permission to resume match *****/ - if (Mch_CheckIfICanEditThisMatch (&Match) == Usr_I_CAN_NOT) + if (Mch_CheckIfICanEditThisMatch (&Match) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Update match status in database *****/ @@ -1988,7 +1988,7 @@ static void Mch_ShowMatchStatusForStd (struct Mch_Match *Match,Mch_Update_t Upda struct Mch_UsrAnswer UsrAnswer; /***** Can I play this match? *****/ - if (Mch_CheckIfICanPlayThisMatchBasedOnGrps (Match) == Usr_I_CAN_NOT) + if (Mch_CheckIfICanPlayThisMatchBasedOnGrps (Match) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get student's answer to this question @@ -2009,7 +2009,7 @@ static void Mch_ShowMatchStatusForStd (struct Mch_Match *Match,Mch_Update_t Upda /************ Check if I belong to any of the groups of a match **************/ /*****************************************************************************/ -Usr_ICan_t Mch_CheckIfICanPlayThisMatchBasedOnGrps (const struct Mch_Match *Match) +Usr_Can_t Mch_CheckIfICanPlayThisMatchBasedOnGrps (const struct Mch_Match *Match) { switch (Gbl.Usrs.Me.Role.Logged) { @@ -2019,13 +2019,13 @@ Usr_ICan_t Mch_CheckIfICanPlayThisMatchBasedOnGrps (const struct Mch_Match *Matc return Mch_DB_CheckIfICanPlayThisMatchBasedOnGrps (Match->MchCod); case Rol_NET: /***** Only if I am the creator *****/ - return (Match->UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Match->UsrCod == Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_CAN : + Usr_CAN_NOT; case Rol_TCH: case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } diff --git a/swad_match.h b/swad_match.h index 744e96a6f..49d45e71c 100644 --- a/swad_match.h +++ b/swad_match.h @@ -126,7 +126,7 @@ void Mch_ToggleVisResultsMchQst (void); void Mch_BackMatch (void); void Mch_ForwardMatch (void); -Usr_ICan_t Mch_CheckIfICanPlayThisMatchBasedOnGrps (const struct Mch_Match *Match); +Usr_Can_t Mch_CheckIfICanPlayThisMatchBasedOnGrps (const struct Mch_Match *Match); bool Mch_RegisterMeAsPlayerInMatch (struct Mch_Match *Match); diff --git a/swad_match_database.c b/swad_match_database.c index 92ceac5e9..07aa10ffc 100644 --- a/swad_match_database.c +++ b/swad_match_database.c @@ -569,7 +569,7 @@ unsigned Mch_DB_GetGrpNamesAssociatedToMatch (MYSQL_RES **mysql_res,long MchCod) /************ Check if I belong to any of the groups of a match **************/ /*****************************************************************************/ -Usr_ICan_t Mch_DB_CheckIfICanPlayThisMatchBasedOnGrps (long MchCod) +Usr_Can_t Mch_DB_CheckIfICanPlayThisMatchBasedOnGrps (long MchCod) { return DB_QueryEXISTS ("can not check if I can play a match", @@ -588,8 +588,8 @@ Usr_ICan_t Mch_DB_CheckIfICanPlayThisMatchBasedOnGrps (long MchCod) " WHERE grp_users.UsrCod=%ld" " AND grp_users.GrpCod=mch_groups.GrpCod)))", MchCod, - Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ diff --git a/swad_match_database.h b/swad_match_database.h index 9a6312b91..571a6aeae 100644 --- a/swad_match_database.h +++ b/swad_match_database.h @@ -66,7 +66,7 @@ void Mch_DB_AssociateGroupToMatch (long MchCod,long GrpCod); unsigned Mch_DB_GetGrpCodsAssociatedToMatch (MYSQL_RES **mysql_res,long MchCod); unsigned Mch_DB_GetGrpNamesAssociatedToMatch (MYSQL_RES **mysql_res,long MchCod); -Usr_ICan_t Mch_DB_CheckIfICanPlayThisMatchBasedOnGrps (long MchCod); +Usr_Can_t Mch_DB_CheckIfICanPlayThisMatchBasedOnGrps (long MchCod); void Mch_DB_RemoveGroup (long GrpCod); void Mch_DB_RemoveGroupsOfType (long GrpTypCod); diff --git a/swad_match_result.c b/swad_match_result.c index f9a18700e..b87eeeaaa 100644 --- a/swad_match_result.c +++ b/swad_match_result.c @@ -63,8 +63,8 @@ extern struct Globals Gbl; struct MchRes_ICanView { - Usr_ICan_t Result; - Usr_ICan_t Score; + Usr_Can_t Result; + Usr_Can_t Score; }; /*****************************************************************************/ @@ -304,7 +304,7 @@ static void MchRes_ListAllMchResultsInSelectedGames (struct Gam_Games *Games) if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat, Usr_DONT_GET_PREFS, Usr_GET_ROLE_IN_CRS)) - if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) { /***** Show matches results *****/ Gbl.Usrs.Other.UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Other.UsrDat); @@ -395,7 +395,7 @@ static void MchRes_ListAllMchResultsInGam (struct Gam_Games *Games) if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat, Usr_DONT_GET_PREFS, Usr_GET_ROLE_IN_CRS)) - if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) { /***** Show matches results *****/ Gbl.Usrs.Other.UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Other.UsrDat); @@ -467,7 +467,7 @@ static void MchRes_ListAllMchResultsInMch (struct Gam_Games *Games,long MchCod) if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat, Usr_DONT_GET_PREFS, Usr_GET_ROLE_IN_CRS)) - if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) { /***** Show matches results *****/ Gbl.Usrs.Other.UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Other.UsrDat); @@ -776,7 +776,7 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, HTM_TD_End (); /* Accumulate questions and score */ - if (ICanView.Score == Usr_I_CAN) + if (ICanView.Score == Usr_CAN) { NumTotalQsts.All += Print.NumQsts.All; NumTotalQsts.NotBlank += Print.NumQsts.NotBlank; @@ -788,10 +788,10 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: HTM_Unsigned (Print.NumQsts.All); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -803,13 +803,13 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: if (Print.NumQsts.NotBlank) HTM_Unsigned (Print.NumQsts.NotBlank); else HTM_Light0 (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -822,13 +822,13 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, NumQstsBlank = Print.NumQsts.All - Print.NumQsts.NotBlank; switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: if (NumQstsBlank) HTM_Unsigned (NumQstsBlank); else HTM_Light0 (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -840,12 +840,12 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: HTM_Double2Decimals (Print.Score); HTM_Txt ("/"); HTM_Unsigned (Print.NumQsts.All); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -857,12 +857,12 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: HTM_Double2Decimals (Print.NumQsts.All ? Print.Score / (double) Print.NumQsts.All : 0.0); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -874,13 +874,13 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: Grade = TstPrn_ComputeGrade (Print.NumQsts.All,Print.Score, Games->Game.MaxGrade); TstPrn_ShowGrade (Grade,Games->Game.MaxGrade); TotalGrade += Grade; break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -892,7 +892,7 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, The_GetColorRows ()); switch (ICanView.Result) { - case Usr_I_CAN: + case Usr_CAN: Games->Game.GamCod = Match.GamCod; Games->MchCod = Match.MchCod; switch (MeOrOther) @@ -911,7 +911,7 @@ static void MchRes_ShowMchResults (struct Gam_Games *Games, } Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1108,7 +1108,7 @@ void MchRes_ShowOneMchResult (void) /***** Check if I can view this match result and score *****/ MchRes_CheckIfICanViewMatchResult (&Games.Game,&Match,UsrDat->UsrCod,&ICanView); - if (ICanView.Result == Usr_I_CAN_NOT) + if (ICanView.Result == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get questions and user's answers of the match result from database *****/ @@ -1128,7 +1128,7 @@ void MchRes_ShowOneMchResult (void) Usr_DONT_GET_PREFS, Usr_GET_ROLE_IN_CRS)) Err_WrongUserExit (); - if (Usr_CheckIfICanViewTstExaMchResult (UsrDat) == Usr_I_CAN_NOT) + if (Usr_CheckIfICanViewTstExaMchResult (UsrDat) == Usr_CAN_NOT) Err_NoPermissionExit (); /* Get if user has accepted enrolment */ @@ -1227,14 +1227,14 @@ void MchRes_ShowOneMchResult (void) The_GetSuffix ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: HTM_STRONG_Begin (); HTM_Double2Decimals (Print.Score); HTM_Txt ("/"); HTM_Unsigned (Print.NumQsts.All); HTM_STRONG_End (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1255,13 +1255,13 @@ void MchRes_ShowOneMchResult (void) The_GetSuffix ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: HTM_STRONG_Begin (); TstPrn_ComputeAndShowGrade (Print.NumQsts.All,Print.Score, Games.Game.MaxGrade); HTM_STRONG_End (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1315,21 +1315,21 @@ static void MchRes_CheckIfICanViewMatchResult (const struct Gam_Game *Game, // Depends on visibility of game and result (eye icons) ICanView->Result = (Game->HiddenOrVisible == HidVis_VISIBLE && // The game is visible Match->Status.ShowUsrResults && // The results of the match are visible to users - Usr_ItsMe (UsrCod) == Usr_ME) ? Usr_I_CAN : // The result is mine - Usr_I_CAN_NOT; + Usr_ItsMe (UsrCod) == Usr_ME) ? Usr_CAN : // The result is mine + Usr_CAN_NOT; // Whether I belong or not to groups of match is not checked here... // ...because I should be able to see old matches made in old groups to which I belonged switch (ICanView->Result) { - case Usr_I_CAN: + case Usr_CAN: // Depends on 5 visibility icons associated to game - ICanView->Score = TstVis_IsVisibleTotalScore (Game->Visibility) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanView->Score = TstVis_IsVisibleTotalScore (Game->Visibility) ? Usr_CAN : + Usr_CAN_NOT; break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: - ICanView->Score = Usr_I_CAN_NOT; + ICanView->Score = Usr_CAN_NOT; break; } break; @@ -1340,11 +1340,11 @@ static void MchRes_CheckIfICanViewMatchResult (const struct Gam_Game *Game, case Rol_INS_ADM: case Rol_SYS_ADM: ICanView->Result = - ICanView->Score = Usr_I_CAN; + ICanView->Score = Usr_CAN; break; default: ICanView->Result = - ICanView->Score = Usr_I_CAN_NOT; + ICanView->Score = Usr_CAN_NOT; break; } } diff --git a/swad_menu.c b/swad_menu.c index 1181d0e7d..8d2ce5c23 100644 --- a/swad_menu.c +++ b/swad_menu.c @@ -227,7 +227,7 @@ Act_Action_t Mnu_GetFirstActionAvailableInCurrentTab (void) { if ((Action = Mnu_Menu[Gbl.Action.Tab][NumOptInMenu].Action) == 0) return ActUnk; - if (Act_CheckIfICanExecuteAction (Action) == Usr_I_CAN) + if (Act_CheckIfICanExecuteAction (Action) == Usr_CAN) return Action; } return ActUnk; @@ -264,7 +264,7 @@ void Mnu_WriteMenuThisTab (void) Action = Mnu_Menu[Gbl.Action.Tab][NumOptInMenu].Action; if (Action == 0) // At the end of each tab, actions are initialized to 0, so 0 marks the end of the menu break; - if (Act_CheckIfICanExecuteAction (Action) == Usr_I_CAN) + if (Act_CheckIfICanExecuteAction (Action) == Usr_CAN) { IsTheSelectedAction = (Action == Act_GetSuperAction (Gbl.Action.Act)); diff --git a/swad_message.c b/swad_message.c index cd86a9f41..170be8bc3 100644 --- a/swad_message.c +++ b/swad_message.c @@ -249,7 +249,7 @@ static void Msg_PutFormMsgUsrs (Act_Action_t NextAction, Messages->ShowOnlyOneRecipient = false; GetUsrsInCrs = !Messages->ShowOnlyOneRecipient && // Show list of potential recipients - (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] || // If there is a course selected and I belong to it + (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG || // If there is a course selected and I belong to it Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM); if (GetUsrsInCrs) { @@ -524,7 +524,7 @@ static void Msg_WriteFormUsrsIDsOrNicksOtherRecipients (void) char Nickname[Nck_MAX_BYTES_NICK_WITHOUT_ARROBA + 1]; unsigned ColSpan; bool StdsAndTchsWritten = Gbl.Hierarchy.Level == Hie_CRS && // Course selected - (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] || // I belong to it + (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG || // I belong to it Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM); /***** How many columns? *****/ diff --git a/swad_nickname.c b/swad_nickname.c index c7eadf1c6..11cc261b8 100644 --- a/swad_nickname.c +++ b/swad_nickname.c @@ -425,7 +425,7 @@ void Nck_RemoveOtherUsrNick (void) if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Usr_CheckIfICanEditOtherUsr (&Gbl.Usrs.Other.UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Get nickname from form *****/ Par_GetParText ("Nick",NickWithoutArr, Nck_MAX_BYTES_NICK_WITHOUT_ARROBA); @@ -441,7 +441,7 @@ void Nck_RemoveOtherUsrNick (void) /***** Show user's account again *****/ Acc_ShowFormChgOtherUsrAccount (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -473,14 +473,14 @@ void Nck_ChangeOtherUsrNick (void) if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Usr_CheckIfICanEditOtherUsr (&Gbl.Usrs.Other.UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Update user's nickname *****/ Nck_ChangeUsrNick (&Gbl.Usrs.Other.UsrDat); /***** Show user's account again *****/ Acc_ShowFormChgOtherUsrAccount (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; diff --git a/swad_notice.c b/swad_notice.c index 224a6e0b1..56031efc1 100644 --- a/swad_notice.c +++ b/swad_notice.c @@ -78,7 +78,7 @@ static unsigned Not_MaxCharsURLOnScreen[Not_NUM_TYPES_LISTING] = static void Not_PutLinkToRSSFile (void); -static Usr_ICan_t Not_CheckIfICanEditNotices (void); +static Usr_Can_t Not_CheckIfICanEditNotices (void); static void Not_PutIconsListNotices (__attribute__((unused)) void *Args); static void Not_PutIconToAddNewNotice (void); static void Not_GetDataAndShowNotice (long NotCod); @@ -401,11 +401,11 @@ static void Not_PutLinkToRSSFile (void) /*********************** Check if I can edit notices *************************/ /*****************************************************************************/ -static Usr_ICan_t Not_CheckIfICanEditNotices (void) +static Usr_Can_t Not_CheckIfICanEditNotices (void) { return (Gbl.Usrs.Me.Role.Logged == Rol_TCH || - Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ @@ -415,7 +415,7 @@ static Usr_ICan_t Not_CheckIfICanEditNotices (void) static void Not_PutIconsListNotices (__attribute__((unused)) void *Args) { /***** Put icon to add a new notice *****/ - if (Not_CheckIfICanEditNotices () == Usr_I_CAN) + if (Not_CheckIfICanEditNotices () == Usr_CAN) Not_PutIconToAddNewNotice (); /***** Put icon to show a figure *****/ @@ -552,7 +552,7 @@ static void Not_DrawANotice (Not_Listing_t TypeNoticesListing, /***** Write the date in the top part of the yellow note *****/ /* Write symbol to indicate if notice is obsolete or active */ if (TypeNoticesListing == Not_LIST_FULL_NOTICES) - if (Not_CheckIfICanEditNotices () == Usr_I_CAN) + if (Not_CheckIfICanEditNotices () == Usr_CAN) { /***** Icon to remove announcement *****/ Ico_PutContextualIconToRemove (ActReqRemNot,NULL, diff --git a/swad_password.c b/swad_password.c index c591b496d..a39b6386b 100644 --- a/swad_password.c +++ b/swad_password.c @@ -178,11 +178,11 @@ void Pwd_UpdateOtherUsrPwd (void) if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Usr_CheckIfICanEditOtherUsr (&Gbl.Usrs.Other.UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Check and update password *****/ Pwd_CheckAndUpdateNewPwd (&Gbl.Usrs.Other.UsrDat); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; diff --git a/swad_photo.c b/swad_photo.c index 4f8c678e9..e90d52531 100644 --- a/swad_photo.c +++ b/swad_photo.c @@ -141,11 +141,11 @@ static void Pho_ComputePhotoSize (const struct Pho_DegPhotos *DegPhotos, /************** Check if I can change the photo of another user **************/ /*****************************************************************************/ -Usr_ICan_t Pho_ICanChangeOtherUsrPhoto (struct Usr_Data *UsrDat) +Usr_Can_t Pho_ICanChangeOtherUsrPhoto (struct Usr_Data *UsrDat) { /***** I can change my photo *****/ if (Usr_ItsMe (UsrDat->UsrCod) == Usr_ME) - return Usr_I_CAN; + return Usr_CAN; /***** Check if I have permission to change user's photo *****/ switch (Gbl.Usrs.Me.Role.Logged) @@ -153,19 +153,19 @@ Usr_ICan_t Pho_ICanChangeOtherUsrPhoto (struct Usr_Data *UsrDat) case Rol_TCH: /* A teacher can change the photo of confirmed students */ if (UsrDat->Roles.InCurrentCrs != Rol_STD) // Not a student - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /* It's a student in this course, check if he/she has accepted registration */ - return (UsrDat->Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (UsrDat)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (UsrDat->Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (UsrDat)) ? Usr_CAN : + Usr_CAN_NOT; case Rol_DEG_ADM: case Rol_CTR_ADM: case Rol_INS_ADM: case Rol_SYS_ADM: return Usr_CheckIfICanEditOtherUsr (UsrDat); default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -198,7 +198,7 @@ void Pho_PutIconToChangeUsrPhoto (struct Usr_Data *UsrDat) "camera.svg",Ico_BLACK); break; case Usr_OTHER: - if (Pho_ICanChangeOtherUsrPhoto (UsrDat) == Usr_I_CAN) + if (Pho_ICanChangeOtherUsrPhoto (UsrDat) == Usr_CAN) Lay_PutContextualLinkOnlyIcon (NextAction[UsrDat->Roles.InCurrentCrs],NULL, Rec_PutParUsrCodEncrypted,NULL, "camera.svg",Ico_BLACK); @@ -353,7 +353,7 @@ void Pho_SendPhotoUsr (void) } /***** Check if I have permission to change user's photo *****/ - if (Pho_ICanChangeOtherUsrPhoto (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN_NOT) + if (Pho_ICanChangeOtherUsrPhoto (&Gbl.Usrs.Other.UsrDat) == Usr_CAN_NOT) { Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); return; @@ -520,7 +520,7 @@ void Pho_ReqRemUsrPhoto (void) Usr_DONT_GET_ROLE_IN_CRS)) switch (Pho_ICanChangeOtherUsrPhoto (&Gbl.Usrs.Other.UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: /***** Show current photo and help message *****/ if (Pho_BuildLinkToPhoto (&Gbl.Usrs.Other.UsrDat,PhotoURL)) { @@ -541,7 +541,7 @@ void Pho_ReqRemUsrPhoto (void) else Ale_ShowAlert (Ale_INFO,Txt_The_photo_no_longer_exists); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -992,7 +992,7 @@ bool Pho_ShowingUsrPhotoIsAllowed (struct Usr_Data *UsrDat, char PhotoURL[Cns_MAX_BYTES_WWW + 1]) { /***** Photo is shown if I can see it, and it exists *****/ - return (Pri_CheckIfICanView (UsrDat->PhotoVisibility,UsrDat) == Usr_I_CAN) ? Pho_BuildLinkToPhoto (UsrDat,PhotoURL) : + return (Pri_CheckIfICanView (UsrDat->PhotoVisibility,UsrDat) == Usr_CAN) ? Pho_BuildLinkToPhoto (UsrDat,PhotoURL) : false; } diff --git a/swad_photo.h b/swad_photo.h index 79e7594d8..a3d353c91 100644 --- a/swad_photo.h +++ b/swad_photo.h @@ -95,7 +95,7 @@ struct Pho_DegPhotos /***************************** Public prototypes *****************************/ /*****************************************************************************/ -Usr_ICan_t Pho_ICanChangeOtherUsrPhoto (struct Usr_Data *UsrDat); +Usr_Can_t Pho_ICanChangeOtherUsrPhoto (struct Usr_Data *UsrDat); void Pho_PutIconToChangeUsrPhoto (struct Usr_Data *UsrDat); void Pho_ReqMyPhoto (void); void Pho_SendPhotoUsr (void); diff --git a/swad_place.c b/swad_place.c index 13fa8fd57..805ae494b 100644 --- a/swad_place.c +++ b/swad_place.c @@ -61,7 +61,7 @@ static struct Plc_Place *Plc_EditingPlc = NULL; // Static variable to keep the p /***************************** Private prototypes ****************************/ /*****************************************************************************/ -static Usr_ICan_t Plc_CheckIfICanEditPlaces (void); +static Usr_Can_t Plc_CheckIfICanEditPlaces (void); static Plc_Order_t Plc_GetParPlcOrder (void); static void Plc_PutIconsListingPlaces (__attribute__((unused)) void *Args); @@ -86,13 +86,13 @@ static void Plc_EditingPlaceDestructor (void); /************************* Check if I can edit places ************************/ /*****************************************************************************/ -static Usr_ICan_t Plc_CheckIfICanEditPlaces (void) +static Usr_Can_t Plc_CheckIfICanEditPlaces (void) { - static Usr_ICan_t Plc_ICanEditPlaces[Rol_NUM_ROLES] = + static Usr_Can_t Plc_ICanEditPlaces[Rol_NUM_ROLES] = { /* Users who can edit */ - [Rol_INS_ADM] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_INS_ADM] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return Plc_ICanEditPlaces[Gbl.Usrs.Me.Role.Logged]; @@ -238,7 +238,7 @@ static Plc_Order_t Plc_GetParPlcOrder (void) static void Plc_PutIconsListingPlaces (__attribute__((unused)) void *Args) { /***** Put icon to edit places *****/ - if (Plc_CheckIfICanEditPlaces () == Usr_I_CAN) + if (Plc_CheckIfICanEditPlaces () == Usr_CAN) Plc_PutIconToEditPlaces (); } diff --git a/swad_privacy.c b/swad_privacy.c index d9fbd31aa..9a970e955 100644 --- a/swad_privacy.c +++ b/swad_privacy.c @@ -249,40 +249,40 @@ Pri_Visibility_t Pri_GetParVisibility (const char *ParName, /*********** Check if user's photo or public profile can be shown ************/ /*****************************************************************************/ -Usr_ICan_t Pri_CheckIfICanView (Pri_Visibility_t Visibility, +Usr_Can_t Pri_CheckIfICanView (Pri_Visibility_t Visibility, struct Usr_Data *UsrDat) { /***** I always can see my things *****/ if (Usr_ItsMe (UsrDat->UsrCod) == Usr_ME) - return Usr_I_CAN; + return Usr_CAN; /***** System admins always can see others' profiles *****/ if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) - return Usr_I_CAN; + return Usr_CAN; /***** Check if I can see the other's photo *****/ switch (Visibility) { case Pri_VISIBILITY_UNKNOWN: - return Usr_I_CAN_NOT; // It's not me + return Usr_CAN_NOT; // It's not me case Pri_VISIBILITY_USER: // Only visible // by me and my teachers if I am a student // or me and my students if I am a teacher // Do both users share the same course but whit different role? - return Enr_DB_CheckIfUsrSharesAnyOfMyCrsWithDifferentRole (UsrDat->UsrCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Enr_DB_CheckIfUsrSharesAnyOfMyCrsWithDifferentRole (UsrDat->UsrCod) ? Usr_CAN : + Usr_CAN_NOT; case Pri_VISIBILITY_COURSE: // Visible by users sharing courses with me // Do both users share the same course? - return Enr_CheckIfUsrSharesAnyOfMyCrs (UsrDat) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Enr_CheckIfUsrSharesAnyOfMyCrs (UsrDat) ? Usr_CAN : + Usr_CAN_NOT; case Pri_VISIBILITY_SYSTEM: // Visible by any user logged in platform - return Gbl.Usrs.Me.Logged ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Gbl.Usrs.Me.Logged ? Usr_CAN : + Usr_CAN_NOT; case Pri_VISIBILITY_WORLD: // Public, visible by everyone, even unlogged visitors - return Usr_I_CAN; + return Usr_CAN; } - return Usr_I_CAN_NOT; // Never reached. To avoid warning + return Usr_CAN_NOT; // Never reached. To avoid warning } /*****************************************************************************/ diff --git a/swad_privacy.h b/swad_privacy.h index 9432ede05..1fed7afe5 100644 --- a/swad_privacy.h +++ b/swad_privacy.h @@ -65,7 +65,7 @@ Pri_Visibility_t Pri_GetVisibilityFromStr (const char *Str); Pri_Visibility_t Pri_GetParVisibility (const char *ParName, unsigned MaskAllowedVisibility); -Usr_ICan_t Pri_CheckIfICanView (Pri_Visibility_t Visibility,struct Usr_Data *UsrDat); +Usr_Can_t Pri_CheckIfICanView (Pri_Visibility_t Visibility,struct Usr_Data *UsrDat); //-------------------------------- Figures ------------------------------------ void Pri_GetAndShowNumUsrsPerPrivacy (void); diff --git a/swad_profile.c b/swad_profile.c index fbd6f8cf1..38f56779a 100644 --- a/swad_profile.c +++ b/swad_profile.c @@ -289,7 +289,7 @@ bool Prf_ShowUsrProfile (struct Usr_Data *UsrDat) Usr_MeOrOther_t MeOrOther = Usr_ItsMe (UsrDat->UsrCod); /***** Check if I can see the public profile *****/ - if (Pri_CheckIfICanView (UsrDat->BaPrfVisibility,UsrDat) == Usr_I_CAN) + if (Pri_CheckIfICanView (UsrDat->BaPrfVisibility,UsrDat) == Usr_CAN) { if (Gbl.Usrs.Me.Logged) { @@ -314,7 +314,7 @@ bool Prf_ShowUsrProfile (struct Usr_Data *UsrDat) Rec_ShowSharedUsrRecord (Rec_SHA_RECORD_PUBLIC,UsrDat,NULL); /***** Extended profile *****/ - if (Pri_CheckIfICanView (UsrDat->ExPrfVisibility,UsrDat) == Usr_I_CAN) + if (Pri_CheckIfICanView (UsrDat->ExPrfVisibility,UsrDat) == Usr_CAN) { /***** Show details of user's profile *****/ Prf_ShowDetailsUserProfile (UsrDat); @@ -1337,7 +1337,7 @@ static void Prf_ShowUsrInRanking (struct Usr_Data *UsrDat,unsigned Rank, [PhoSha_SHAPE_OVAL ] = "PHOTOO30x40", [PhoSha_SHAPE_RECTANGLE] = "PHOTOR30x40", }; - Usr_ICan_t ICanView = Pri_CheckIfICanView (UsrDat->BaPrfVisibility,UsrDat); + Usr_Can_t ICanView = Pri_CheckIfICanView (UsrDat->BaPrfVisibility,UsrDat); HTM_TD_Begin ("class=\"RM %s_%s %s\"", Class[MeOrOther], @@ -1348,7 +1348,7 @@ static void Prf_ShowUsrInRanking (struct Usr_Data *UsrDat,unsigned Rank, /***** Check if I can see the public profile *****/ HTM_TD_Begin ("class=\"RANK_PHOTO %s\"",The_GetColorRows ()); - if (ICanView == Usr_I_CAN) + if (ICanView == Usr_CAN) /***** User's photo *****/ Pho_ShowUsrPhotoIfAllowed (UsrDat, ClassPhoto[Gbl.Prefs.PhotoShape],Pho_ZOOM); @@ -1359,7 +1359,7 @@ static void Prf_ShowUsrInRanking (struct Usr_Data *UsrDat,unsigned Rank, Class[MeOrOther], The_GetSuffix (), The_GetColorRows ()); - if (ICanView == Usr_I_CAN) + if (ICanView == Usr_CAN) { Frm_BeginForm (ActSeeOthPubPrf); Usr_PutParUsrCodEncrypted (UsrDat->EnUsrCod); diff --git a/swad_program.c b/swad_program.c index 060b410e9..e48409016 100644 --- a/swad_program.c +++ b/swad_program.c @@ -323,11 +323,11 @@ void Prg_ShowAllItems (Prg_ListingType_t ListingType, /******************* Check if I can create program items *********************/ /*****************************************************************************/ -Usr_ICan_t Prg_CheckIfICanEditProgram (void) +Usr_Can_t Prg_CheckIfICanEditProgram (void) { return (Gbl.Usrs.Me.Role.Logged == Rol_TCH || - Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ @@ -337,7 +337,7 @@ Usr_ICan_t Prg_CheckIfICanEditProgram (void) static void Prg_PutIconsListItems (__attribute__((unused)) void *Args) { /***** Put icon to edit program *****/ - if (Prg_CheckIfICanEditProgram () == Usr_I_CAN) + if (Prg_CheckIfICanEditProgram () == Usr_CAN) Prg_PutIconToEditProgram (); /***** Put icon to show a figure *****/ @@ -353,7 +353,7 @@ static void Prg_PutIconsEditItems (__attribute__((unused)) void *Args) /***** Put icon to view program *****/ Prg_PutIconToViewProgram (); - if (Prg_CheckIfICanEditProgram () == Usr_I_CAN) + if (Prg_CheckIfICanEditProgram () == Usr_CAN) { /***** Put icon to create a new program item *****/ Prg_PutIconToCreateNewItem (); @@ -438,7 +438,7 @@ static void Prg_WriteRowItem (Prg_ListingType_t ListingType, [ConExp_CONTRACTED] = "", // Not expanded [ConExp_EXPANDED ] = " rowspan=\"2\"", // Expanded }; - HidVis_HiddenOrVisible_t HiddenOrVisible = HidVis_HIDDEN; // Initialized to avoid warning + HidVis_HiddenOrVisible_t HiddenOrVisible; char *Id; unsigned ColSpan; unsigned NumCol; @@ -450,12 +450,13 @@ static void Prg_WriteRowItem (Prg_ListingType_t ListingType, Prg_SetHiddenLevel (Item->Hierarchy.Level,Item->Hierarchy.HiddenOrVisible); switch (Item->Hierarchy.HiddenOrVisible) { - case HidVis_HIDDEN: // this item is marked as hidden - HiddenOrVisible = HidVis_HIDDEN; - break; case HidVis_VISIBLE: // this item is not marked as hidden HiddenOrVisible = Prg_CheckIfAnyHigherLevelIsHidden (Item->Hierarchy.Level); break; + case HidVis_HIDDEN: // this item is marked as hidden + default: + HiddenOrVisible = HidVis_HIDDEN; + break; } if (ViewingOrEditingProgram[ListingType] == Vie_EDIT || diff --git a/swad_program.h b/swad_program.h index a950bf331..2209df7a3 100644 --- a/swad_program.h +++ b/swad_program.h @@ -121,7 +121,7 @@ void Prg_EditCourseProgram (void); void Prg_ShowAllItems (Prg_ListingType_t ListingType, long SelectedItmCod,long SelectedRscCod); -Usr_ICan_t Prg_CheckIfICanEditProgram (void); +Usr_Can_t Prg_CheckIfICanEditProgram (void); void Prg_PutParItmCod (void *ItmCod); void Prg_GetPars (struct Prg_Item *Item); diff --git a/swad_program_resource.c b/swad_program_resource.c index e326738b2..8c5dfcf71 100644 --- a/swad_program_resource.c +++ b/swad_program_resource.c @@ -305,7 +305,7 @@ static void PrgRsc_PutIconsViewResources (void *ItmCod) /***** Put icon to create a new item resource *****/ if (ItmCod) if (*(long *) ItmCod > 0) - if (Prg_CheckIfICanEditProgram () == Usr_I_CAN) + if (Prg_CheckIfICanEditProgram () == Usr_CAN) Ico_PutContextualIconToView (ActFrmSeePrgRsc,PrgRsc_RESOURCE_SECTION_ID, Prg_PutParItmCod,ItmCod); } @@ -315,7 +315,7 @@ static void PrgRsc_PutIconsEditResources (void *ItmCod) /***** Put icon to create a new item resource *****/ if (ItmCod) if (*(long *) ItmCod > 0) - if (Prg_CheckIfICanEditProgram () == Usr_I_CAN) + if (Prg_CheckIfICanEditProgram () == Usr_CAN) Ico_PutContextualIconToEdit (ActFrmEdiPrgRsc,PrgRsc_RESOURCE_SECTION_ID, Prg_PutParItmCod,ItmCod); } @@ -895,7 +895,7 @@ static void PrgRsc_ShowClipboard (void) static void PrgRsc_PutIconsClipboard (__attribute__((unused)) void *Args) { /***** Put icon to remove resource clipboard in program *****/ - if (Prg_CheckIfICanEditProgram () == Usr_I_CAN) + if (Prg_CheckIfICanEditProgram () == Usr_CAN) if (Rsc_DB_GetNumResourcesInClipboard ()) // Only if there are resources Ico_PutContextualIconToRemove (ActRemRscCli_InPrg,NULL, NULL,NULL); diff --git a/swad_project.c b/swad_project.c index 060ac0b2e..f8dd29aee 100644 --- a/swad_project.c +++ b/swad_project.c @@ -189,7 +189,7 @@ static void Prj_ShowFormToFilterByWarning (const struct Prj_Projects *Projects); static void Prj_ShowFormToFilterByReview (const struct Prj_Projects *Projects); static void Prj_ShowFormToFilterByDpt (const struct Prj_Projects *Projects); -static Usr_ICan_t Prj_CheckIfICanViewProjectFiles (long PrjCod); +static Usr_Can_t Prj_CheckIfICanViewProjectFiles (long PrjCod); static void Prj_PutParAssign (unsigned Assign); static void Prj_PutParHidden (unsigned Hidden); @@ -205,7 +205,7 @@ static Usr_Who_t Prj_GetParWho (void); static void Prj_ShowProjectsHead (struct Prj_Projects *Projects); static void Prj_ShowTableAllProjectsHead (void); -static Usr_ICan_t Prj_CheckIfICanCreateProjects (const struct Prj_Projects *Projects); +static Usr_Can_t Prj_CheckIfICanCreateProjects (const struct Prj_Projects *Projects); static void Prj_PutIconToCreateNewPrj (struct Prj_Projects *Projects); static void Prj_PutIconToShowAllData (struct Prj_Projects *Projects); @@ -226,7 +226,7 @@ static void Prj_ShowReviewStatus (struct Prj_Projects *Projects, const struct Prj_Faults *Faults, const char *Anchor); static void Prj_PutSelectorReviewStatus (struct Prj_Projects *Projects); -static Usr_ICan_t Prj_CheckIfICanReviewProjects (void); +static Usr_Can_t Prj_CheckIfICanReviewProjects (void); static void Prj_ShowAssigned (const struct Prj_Projects *Projects, const char *ClassLabel, const char *ClassData, @@ -288,7 +288,7 @@ static Prj_Order_t Prj_GetParPrjOrder (void); static void Prj_PutIconsToRemEditOnePrj (struct Prj_Projects *Projects, const char *Anchor); -static Usr_ICan_t Prj_CheckIfICanEditProject (const struct Prj_Project *Prj); +static Usr_Can_t Prj_CheckIfICanEditProject (const struct Prj_Project *Prj); static void Prj_GetListProjects (struct Prj_Projects *Projects); @@ -317,8 +317,8 @@ static Prj_ReviewStatus_t Prj_GetParReviewStatus (void); static void Prj_ShowRubrics (struct Prj_Projects *Projects); static void Prj_ShowRubricsOfType (struct Prj_Projects *Projects, PrjCfg_RubricType_t RubricType); -static Usr_ICan_t Prj_CheckIfICanViewRubric (long PrjCod,PrjCfg_RubricType_t WhichRubric); -static Usr_ICan_t Prj_CheckIfICanFillRubric (long PrjCod,PrjCfg_RubricType_t WhichRubric); +static Usr_Can_t Prj_CheckIfICanViewRubric (long PrjCod,PrjCfg_RubricType_t WhichRubric); +static Usr_Can_t Prj_CheckIfICanFillRubric (long PrjCod,PrjCfg_RubricType_t WhichRubric); /*****************************************************************************/ /******* Set/get project code (used to pass parameter to file browser) *******/ @@ -864,19 +864,19 @@ static void Prj_ShowFormToFilterByDpt (const struct Prj_Projects *Projects) /******************** Can I view files of a given project? *******************/ /*****************************************************************************/ -static Usr_ICan_t Prj_CheckIfICanViewProjectFiles (long PrjCod) +static Usr_Can_t Prj_CheckIfICanViewProjectFiles (long PrjCod) { switch (Gbl.Usrs.Me.Role.Logged) { case Rol_STD: case Rol_NET: - return (Prj_GetMyRolesInProject (PrjCod) != 0) ? Usr_I_CAN : // Am I a member? - Usr_I_CAN_NOT; + return (Prj_GetMyRolesInProject (PrjCod) != 0) ? Usr_CAN : // Am I a member? + Usr_CAN_NOT; case Rol_TCH: // Editing teachers in a course can access to all files case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -884,19 +884,19 @@ static Usr_ICan_t Prj_CheckIfICanViewProjectFiles (long PrjCod) /******** Check if I have permission to view project documents zone **********/ /*****************************************************************************/ -Usr_ICan_t Prj_CheckIfICanViewProjectDocuments (long PrjCod) +Usr_Can_t Prj_CheckIfICanViewProjectDocuments (long PrjCod) { switch (Gbl.Usrs.Me.Role.Logged) { case Rol_STD: case Rol_NET: - return (Prj_GetMyRolesInProject (PrjCod) != 0) ? Usr_I_CAN : // Am I a member? - Usr_I_CAN_NOT; + return (Prj_GetMyRolesInProject (PrjCod) != 0) ? Usr_CAN : // Am I a member? + Usr_CAN_NOT; case Rol_TCH: // Editing teachers in a course can access to all files case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -904,20 +904,20 @@ Usr_ICan_t Prj_CheckIfICanViewProjectDocuments (long PrjCod) /******** Check if I have permission to view project assessment zone *********/ /*****************************************************************************/ -Usr_ICan_t Prj_CheckIfICanViewProjectAssessment (long PrjCod) +Usr_Can_t Prj_CheckIfICanViewProjectAssessment (long PrjCod) { switch (Gbl.Usrs.Me.Role.Logged) { case Rol_STD: case Rol_NET: return ((Prj_GetMyRolesInProject (PrjCod) & (1 << Prj_ROLE_TUT | // Tutor... - 1 << Prj_ROLE_EVL)) != 0) ? Usr_I_CAN : // ...or evaluator - Usr_I_CAN_NOT; + 1 << Prj_ROLE_EVL)) != 0) ? Usr_CAN : // ...or evaluator + Usr_CAN_NOT; case Rol_TCH: // Editing teachers in a course can access to all files case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -1229,18 +1229,18 @@ static void Prj_ShowTableAllProjectsHead (void) /********************** Check if I can create projects ***********************/ /*****************************************************************************/ -static Usr_ICan_t Prj_CheckIfICanCreateProjects (const struct Prj_Projects *Projects) +static Usr_Can_t Prj_CheckIfICanCreateProjects (const struct Prj_Projects *Projects) { switch (Gbl.Usrs.Me.Role.Logged) { case Rol_NET: - return Projects->Config.NETCanCreate ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Projects->Config.NETCanCreate ? Usr_CAN : + Usr_CAN_NOT; case Rol_TCH: case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -1250,14 +1250,14 @@ static Usr_ICan_t Prj_CheckIfICanCreateProjects (const struct Prj_Projects *Proj void Prj_PutIconsListProjects (void *Projects) { - Usr_ICan_t ICanConfigAllProjects; + Usr_Can_t ICanConfigAllProjects; if (Projects) { ICanConfigAllProjects = PrjCfg_CheckIfICanConfig (); /***** Put icon to create a new project *****/ - if (Prj_CheckIfICanCreateProjects ((struct Prj_Projects *) Projects) == Usr_I_CAN) + if (Prj_CheckIfICanCreateProjects ((struct Prj_Projects *) Projects) == Usr_CAN) Prj_PutIconToCreateNewPrj ((struct Prj_Projects *) Projects); if (((struct Prj_Projects *) Projects)->Num) @@ -1265,19 +1265,19 @@ void Prj_PutIconsListProjects (void *Projects) /***** Put icon to show all data in a table *****/ Prj_PutIconToShowAllData ((struct Prj_Projects *) Projects); - if (ICanConfigAllProjects == Usr_I_CAN) + if (ICanConfigAllProjects == Usr_CAN) /****** Put icons to request locking/unlocking edition of all selected projects *******/ Prj_PutIconsToLockUnlockAllProjects ((struct Prj_Projects *) Projects); } /***** Put form to go to configuration of projects *****/ - if (ICanConfigAllProjects == Usr_I_CAN) + if (ICanConfigAllProjects == Usr_CAN) Ico_PutContextualIconToConfigure (ActCfgPrj,NULL, NULL,NULL); /***** Link to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkPrj,NULL, Prj_PutCurrentPars,Projects); @@ -1362,7 +1362,7 @@ void Prj_ShowBoxWithOneProject (struct Prj_Projects *Projects) HTM_FIELDSET_End (); /***** Show project file browsers *****/ - if (Prj_CheckIfICanViewProjectFiles (Projects->Prj.PrjCod) == Usr_I_CAN) + if (Prj_CheckIfICanViewProjectFiles (Projects->Prj.PrjCod) == Usr_CAN) Brw_ShowFileBrowserProject (Projects->Prj.PrjCod); /***** Show project rubrics *****/ @@ -1518,10 +1518,10 @@ static void Prj_ShowFirstRow (struct Prj_Projects *Projects, extern const char *HidVis_DateBlueClass[HidVis_NUM_HIDDEN_VISIBLE]; extern const char *HidVis_TitleClass[HidVis_NUM_HIDDEN_VISIBLE]; extern const char *Txt_Actions[ActLst_NUM_ACTIONS]; - static Act_Action_t NextActions[Usr_NUM_I_CAN] = + static Act_Action_t NextActions[Usr_NUM_CAN] = { - [Usr_I_CAN_NOT] = ActSeeOnePrj, - [Usr_I_CAN ] = ActAdmDocPrj, + [Usr_CAN_NOT] = ActSeeOnePrj, + [Usr_CAN ] = ActAdmDocPrj, }; Act_Action_t NextAction; char *Id; @@ -1709,7 +1709,7 @@ static void Prj_ShowReviewStatus (struct Prj_Projects *Projects, PutForm = Frm_DONT_PUT_FORM; break; default: - PutForm = (Prj_CheckIfICanReviewProjects () == Usr_I_CAN) ? Frm_PUT_FORM : + PutForm = (Prj_CheckIfICanReviewProjects () == Usr_CAN) ? Frm_PUT_FORM : Frm_DONT_PUT_FORM; break; } @@ -1875,12 +1875,12 @@ static void Prj_PutSelectorReviewStatus (struct Prj_Projects *Projects) /**************************** Can I review projects? *************************/ /*****************************************************************************/ -static Usr_ICan_t Prj_CheckIfICanReviewProjects (void) +static Usr_Can_t Prj_CheckIfICanReviewProjects (void) { - static Usr_ICan_t ICanReviewProjects[Rol_NUM_ROLES] = + static Usr_Can_t ICanReviewProjects[Rol_NUM_ROLES] = { - [Rol_TCH ] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return ICanReviewProjects[Gbl.Usrs.Me.Role.Logged]; @@ -3052,7 +3052,7 @@ static void Prj_ReqRemUsrFromPrj (struct Prj_Projects *Projects, if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Prj_CheckIfICanEditProject (&Projects->Prj)) { - case Usr_I_CAN: + case Usr_CAN: /***** Show question and button to remove user as a role from project *****/ /* Begin alert */ Ale_ShowAlertAndButtonBegin (Ale_QUESTION,Question[Usr_ItsMe (Gbl.Usrs.Other.UsrDat.UsrCod)], @@ -3075,7 +3075,7 @@ static void Prj_ReqRemUsrFromPrj (struct Prj_Projects *Projects, /* End alert */ Ale_ShowAlertAndButtonEnd (ActUnk,NULL,NULL,NULL,NULL,Btn_NO_BUTTON,NULL); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -3132,7 +3132,7 @@ static void Prj_RemUsrFromPrj (Prj_RoleInProject_t RoleInPrj) if (Usr_GetParOtherUsrCodEncryptedAndGetUsrData ()) switch (Prj_CheckIfICanEditProject (&Projects.Prj)) { - case Usr_I_CAN: + case Usr_CAN: /***** Remove user from the table of project-users *****/ Prj_DB_RemoveUsrFromPrj (Projects.Prj.PrjCod,RoleInPrj,Gbl.Usrs.Other.UsrDat.UsrCod); @@ -3146,7 +3146,7 @@ static void Prj_RemUsrFromPrj (Prj_RoleInProject_t RoleInPrj) Txt_PROJECT_ROLES_SINGUL_abc[RoleInPrj][Gbl.Usrs.Other.UsrDat.Sex], Projects.Prj.Title); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ale_ShowAlertUserNotFoundOrYouDoNotHavePermission (); break; @@ -3187,7 +3187,7 @@ static void Prj_PutIconsToRemEditOnePrj (struct Prj_Projects *Projects, [HidVis_VISIBLE] = ActHidPrj, // Visible ==> action to hide }; - if (Prj_CheckIfICanEditProject (&Projects->Prj) == Usr_I_CAN) + if (Prj_CheckIfICanEditProject (&Projects->Prj) == Usr_CAN) { /***** Icon to remove project *****/ Ico_PutContextualIconToRemove (ActReqRemPrj,NULL, @@ -3204,7 +3204,7 @@ static void Prj_PutIconsToRemEditOnePrj (struct Prj_Projects *Projects, } /***** Icon to admin project documents *****/ - if (Prj_CheckIfICanViewProjectFiles (Projects->Prj.PrjCod) == Usr_I_CAN) + if (Prj_CheckIfICanViewProjectFiles (Projects->Prj.PrjCod) == Usr_CAN) Ico_PutContextualIconToViewFiles (ActAdmDocPrj, Prj_PutCurrentPars,Projects); @@ -3214,14 +3214,14 @@ static void Prj_PutIconsToRemEditOnePrj (struct Prj_Projects *Projects, /***** Locked/unlocked project edition *****/ switch (PrjCfg_CheckIfICanConfig ()) { - case Usr_I_CAN: + case Usr_CAN: /* Icon to lock/unlock project edition */ HTM_DIV_Begin ("id=\"prj_lck_%ld\" class=\"PRJ_LOCK\"", Projects->Prj.PrjCod); Prj_FormLockUnlock (&Projects->Prj); HTM_DIV_End (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: /* Icon to inform about locked/unlocked project edition */ Prj_PutIconOffLockedUnlocked (&Projects->Prj); @@ -3229,7 +3229,7 @@ static void Prj_PutIconsToRemEditOnePrj (struct Prj_Projects *Projects, } /***** Link to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkPrj,NULL, Prj_PutCurrentPars,Projects); } @@ -3238,21 +3238,21 @@ static void Prj_PutIconsToRemEditOnePrj (struct Prj_Projects *Projects, /************************ Can I edit a given project? ************************/ /*****************************************************************************/ -static Usr_ICan_t Prj_CheckIfICanEditProject (const struct Prj_Project *Prj) +static Usr_Can_t Prj_CheckIfICanEditProject (const struct Prj_Project *Prj) { switch (Gbl.Usrs.Me.Role.Logged) { case Rol_NET: if (Prj->Locked == Prj_LOCKED) // Locked edition - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; return ((Prj_GetMyRolesInProject (Prj->PrjCod) & - (1 << Prj_ROLE_TUT)) != 0) ? Usr_I_CAN : // Am I a tutor? - Usr_I_CAN_NOT; + (1 << Prj_ROLE_TUT)) != 0) ? Usr_CAN : // Am I a tutor? + Usr_CAN_NOT; case Rol_TCH: case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -3517,7 +3517,7 @@ void Prj_ReqRemProject (void) Prj_GetProjectDataByCod (&Projects.Prj); /***** Check if I can edit this project *****/ - if (Prj_CheckIfICanEditProject (&Projects.Prj) == Usr_I_CAN_NOT) + if (Prj_CheckIfICanEditProject (&Projects.Prj) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Show question and button to remove the project *****/ @@ -3557,7 +3557,7 @@ void Prj_RemoveProject (void) Prj_GetProjectDataByCod (&Projects.Prj); // Inside this function, the course is checked to be the current one /***** Check if I can edit this project *****/ - if (Prj_CheckIfICanEditProject (&Projects.Prj) == Usr_I_CAN_NOT) + if (Prj_CheckIfICanEditProject (&Projects.Prj) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Remove users in project *****/ @@ -3621,7 +3621,7 @@ static void Prj_HideUnhideProject (HidVis_HiddenOrVisible_t HiddenOrVisible) Prj_GetProjectDataByCod (&Projects.Prj); /***** Check if I can edit this project *****/ - if (Prj_CheckIfICanEditProject (&Projects.Prj) == Usr_I_CAN_NOT) + if (Prj_CheckIfICanEditProject (&Projects.Prj) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Hide/unhide project *****/ @@ -3646,7 +3646,7 @@ void Prj_ReqCreatePrj (void) Prj_ResetPrjsAndReadConfig (&Projects); /***** Check if I can create new projects *****/ - if (Prj_CheckIfICanCreateProjects (&Projects) == Usr_I_CAN_NOT) + if (Prj_CheckIfICanCreateProjects (&Projects) == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get parameters *****/ @@ -4011,7 +4011,7 @@ void Prj_ReceiveProject (void) extern const char *Txt_The_project_has_been_modified; struct Prj_Projects Projects; bool ItsANewProject; - Usr_ICan_t ICanEditProject; + Usr_Can_t ICanEditProject; bool NewProjectIsCorrect = true; /***** Reset projects *****/ @@ -4040,7 +4040,7 @@ void Prj_ReceiveProject (void) } /* Check if I can create/edit project */ - if (ICanEditProject == Usr_I_CAN_NOT) + if (ICanEditProject == Usr_CAN_NOT) Err_NoPermissionExit (); /* Get project title */ @@ -4178,7 +4178,7 @@ void Prj_ReqLockSelectedPrjsEdition (void) Prj_ResetPrjsAndReadConfig (&Projects); /***** Check if I can configure projects *****/ - if (PrjCfg_CheckIfICanConfig () == Usr_I_CAN_NOT) + if (PrjCfg_CheckIfICanConfig () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get parameters *****/ @@ -4216,7 +4216,7 @@ void Prj_ReqUnloSelectedPrjsEdition (void) Prj_ResetPrjsAndReadConfig (&Projects); /***** Check if I can configure projects *****/ - if (PrjCfg_CheckIfICanConfig () == Usr_I_CAN_NOT) + if (PrjCfg_CheckIfICanConfig () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get parameters *****/ @@ -4257,7 +4257,7 @@ void Prj_LockSelectedPrjsEdition (void) Prj_ResetPrjsAndReadConfig (&Projects); /***** Check if I can configure projects *****/ - if (PrjCfg_CheckIfICanConfig () == Usr_I_CAN_NOT) + if (PrjCfg_CheckIfICanConfig () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get parameters *****/ @@ -4293,7 +4293,7 @@ void Prj_UnloSelectedPrjsEdition (void) Prj_ResetPrjsAndReadConfig (&Projects); /***** Check if I can configure projects *****/ - if (PrjCfg_CheckIfICanConfig () == Usr_I_CAN_NOT) + if (PrjCfg_CheckIfICanConfig () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Get parameters *****/ @@ -4383,7 +4383,7 @@ void Prj_LockProjectEdition (void) Prj_ResetPrjsAndReadConfig (&Projects); /***** Check if I can configure projects *****/ - if (PrjCfg_CheckIfICanConfig () == Usr_I_CAN_NOT) + if (PrjCfg_CheckIfICanConfig () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Allocate memory for the project *****/ @@ -4419,7 +4419,7 @@ void Prj_UnloProjectEdition (void) Prj_ResetPrjsAndReadConfig (&Projects); /***** Check if I can configure projects *****/ - if (PrjCfg_CheckIfICanConfig () == Usr_I_CAN_NOT) + if (PrjCfg_CheckIfICanConfig () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Allocate memory for the project *****/ @@ -4455,7 +4455,7 @@ void Prj_ChangeReviewStatus (void) Prj_ResetPrjsAndReadConfig (&Projects); /***** Check if I can review projects *****/ - if (Prj_CheckIfICanReviewProjects () == Usr_I_CAN_NOT) + if (Prj_CheckIfICanReviewProjects () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Allocate memory for the project *****/ @@ -4514,7 +4514,7 @@ static void Prj_ShowRubrics (struct Prj_Projects *Projects) for (RubricType = (PrjCfg_RubricType_t) 1; RubricType <= (PrjCfg_RubricType_t) (PrjCfg_NUM_RUBRIC_TYPES - 1); RubricType++) - if (Prj_CheckIfICanViewRubric (Projects->Prj.PrjCod,RubricType) == Usr_I_CAN) + if (Prj_CheckIfICanViewRubric (Projects->Prj.PrjCod,RubricType) == Usr_CAN) Prj_ShowRubricsOfType (Projects,RubricType); /***** End table *****/ @@ -4536,7 +4536,7 @@ static void Prj_ShowRubricsOfType (struct Prj_Projects *Projects, unsigned NumRubricsThisType; unsigned NumRubThisType; struct Rub_Rubric Rubric; - Usr_ICan_t ICanFill = Prj_CheckIfICanFillRubric (Projects->Prj.PrjCod,RubricType); + Usr_Can_t ICanFill = Prj_CheckIfICanFillRubric (Projects->Prj.PrjCod,RubricType); /***** Get project rubrics for current course from database *****/ NumRubricsThisType = Prj_DB_GetRubricsOfType (&mysql_res,RubricType); @@ -4602,7 +4602,7 @@ static void Prj_ShowRubricsOfType (struct Prj_Projects *Projects, /************************* Who can view/fill rubrics *************************/ /*****************************************************************************/ -static Usr_ICan_t Prj_CheckIfICanViewRubric (long PrjCod,PrjCfg_RubricType_t WhichRubric) +static Usr_Can_t Prj_CheckIfICanViewRubric (long PrjCod,PrjCfg_RubricType_t WhichRubric) { switch (Gbl.Usrs.Me.Role.Logged) { @@ -4611,26 +4611,26 @@ static Usr_ICan_t Prj_CheckIfICanViewRubric (long PrjCod,PrjCfg_RubricType_t Whi switch (WhichRubric) { case PrjCfg_RUBRIC_ERR: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; case PrjCfg_RUBRIC_TUT: case PrjCfg_RUBRIC_EVL: return ((Prj_GetMyRolesInProject (PrjCod) & (1 << Prj_ROLE_TUT | // I am a tutor... - 1 << Prj_ROLE_EVL)) != 0) ? Usr_I_CAN : // ...or an evaluator - Usr_I_CAN_NOT; + 1 << Prj_ROLE_EVL)) != 0) ? Usr_CAN : // ...or an evaluator + Usr_CAN_NOT; case PrjCfg_RUBRIC_GBL: - return (Prj_GetMyRolesInProject (PrjCod) != 0) ? Usr_I_CAN : // I am a member - Usr_I_CAN_NOT; + return (Prj_GetMyRolesInProject (PrjCod) != 0) ? Usr_CAN : // I am a member + Usr_CAN_NOT; } - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; case Rol_TCH: // Editing teachers in a course can view all rubrics case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } -static Usr_ICan_t Prj_CheckIfICanFillRubric (long PrjCod,PrjCfg_RubricType_t WhichRubric) +static Usr_Can_t Prj_CheckIfICanFillRubric (long PrjCod,PrjCfg_RubricType_t WhichRubric) { switch (Gbl.Usrs.Me.Role.Logged) { @@ -4639,22 +4639,22 @@ static Usr_ICan_t Prj_CheckIfICanFillRubric (long PrjCod,PrjCfg_RubricType_t Whi switch (WhichRubric) { case PrjCfg_RUBRIC_ERR: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; case PrjCfg_RUBRIC_TUT: - return ((Prj_GetMyRolesInProject (PrjCod) & (1 << Prj_ROLE_TUT)) != 0) ? Usr_I_CAN : // I am a tutor - Usr_I_CAN_NOT; + return ((Prj_GetMyRolesInProject (PrjCod) & (1 << Prj_ROLE_TUT)) != 0) ? Usr_CAN : // I am a tutor + Usr_CAN_NOT; case PrjCfg_RUBRIC_EVL: - return ((Prj_GetMyRolesInProject (PrjCod) & (1 << Prj_ROLE_EVL)) != 0) ? Usr_I_CAN : // Am I an evaluator - Usr_I_CAN_NOT; + return ((Prj_GetMyRolesInProject (PrjCod) & (1 << Prj_ROLE_EVL)) != 0) ? Usr_CAN : // Am I an evaluator + Usr_CAN_NOT; case PrjCfg_RUBRIC_GBL: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; case Rol_TCH: // Editing teachers in a course can fill all rubrics case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -4690,10 +4690,10 @@ void Prj_ChangeCriterionScore (void) /***** Update review *****/ switch (Prj_CheckIfICanFillRubric (Prj.PrjCod,WhichRubric)) { - case Usr_I_CAN: + case Usr_CAN: Rub_DB_UpdateScore (Rsc_PROJECT,Prj.PrjCod,-1L,CriCod,Score); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Err_NoPermission (); break; diff --git a/swad_project.h b/swad_project.h index 36d9cdf7c..b5a373fbd 100644 --- a/swad_project.h +++ b/swad_project.h @@ -205,8 +205,8 @@ void Prj_SeeAllProjects (void); void Prj_ShowProjects (struct Prj_Projects *Projects); void Prj_ShowTableSelectedPrjs (void); -Usr_ICan_t Prj_CheckIfICanViewProjectDocuments (long PrjCod); -Usr_ICan_t Prj_CheckIfICanViewProjectAssessment (long PrjCod); +Usr_Can_t Prj_CheckIfICanViewProjectDocuments (long PrjCod); +Usr_Can_t Prj_CheckIfICanViewProjectAssessment (long PrjCod); void Prj_PutCurrentPars (void *Projects); void Prj_PutPars (struct Prj_Filter *Filter, diff --git a/swad_project_config.c b/swad_project_config.c index 03fb93ad8..cbe073f29 100644 --- a/swad_project_config.c +++ b/swad_project_config.c @@ -82,12 +82,12 @@ void PrjCfg_GetConfig (struct PrjCfg_Config *Config) /************************ Can I configure all projects? **********************/ /*****************************************************************************/ -Usr_ICan_t PrjCfg_CheckIfICanConfig (void) +Usr_Can_t PrjCfg_CheckIfICanConfig (void) { - static Usr_ICan_t ICanConfigAllProjects[Rol_NUM_ROLES] = + static Usr_Can_t ICanConfigAllProjects[Rol_NUM_ROLES] = { - [Rol_TCH ] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return ICanConfigAllProjects[Gbl.Usrs.Me.Role.Logged]; diff --git a/swad_project_config.h b/swad_project_config.h index a281b24a7..9fecbc20a 100644 --- a/swad_project_config.h +++ b/swad_project_config.h @@ -61,7 +61,7 @@ struct PrgCfg_ListRubCods void PrjCfg_GetConfig (struct PrjCfg_Config *Config); -Usr_ICan_t PrjCfg_CheckIfICanConfig (void); +Usr_Can_t PrjCfg_CheckIfICanConfig (void); void PrjCfg_ShowFormConfig (void); PrjCfg_RubricType_t PrjCfg_GetRubricFromString (const char *Str); void PrjCfg_ChangeNETCanCreate (void); diff --git a/swad_record.c b/swad_record.c index b0388c13f..6c035015a 100644 --- a/swad_record.c +++ b/swad_record.c @@ -129,7 +129,7 @@ static bool Rec_GetParShowOfficeHours (void); static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, struct Usr_Data *UsrDat,const char *Anchor); static void Rec_ShowMyCrsRecordUpdated (void); -static Usr_ICan_t Rec_CheckIfICanEditField (Rec_VisibilityRecordFields_t Visibility); +static Usr_Can_t Rec_CheckIfICanEditField (Rec_VisibilityRecordFields_t Visibility); static void Rec_PutIconsCommands (__attribute__((unused)) void *Args); static void Rec_PutParsMyResults (__attribute__((unused)) void *Args); @@ -962,7 +962,7 @@ void Rec_GetUsrAndShowRecOneStdCrs (void) if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat, // Get student's data from database Usr_DONT_GET_PREFS, Usr_GET_ROLE_IN_CRS)) - if (Usr_CheckIfICanViewRecordStd (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewRecordStd (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) Rec_ShowRecordOneStdCrs (); } @@ -1185,7 +1185,7 @@ void Rec_GetUsrAndShowRecOneTchCrs (void) if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat, // Get teacher's data from database Usr_DONT_GET_PREFS, Usr_GET_ROLE_IN_CRS)) - if (Usr_CheckIfICanViewRecordTch (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewRecordTch (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) Rec_ShowRecordOneTchCrs (); } @@ -1575,13 +1575,13 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, [Rec_CRS_PRINT_ONE_RECORD ] = NULL, [Rec_CRS_PRINT_SEVERAL_RECORDS ] = NULL, }; - Usr_ICan_t ICanEdit = Usr_I_CAN_NOT; + Usr_Can_t ICanEdit = Usr_CAN_NOT; unsigned NumField; MYSQL_RES *mysql_res; MYSQL_ROW row = NULL; // Initialized to avoid warning bool ShowField; bool ThisFieldHasText; - Usr_ICan_t ICanEditThisField; + Usr_Can_t ICanEditThisField; char Text[Cns_MAX_BYTES_TEXT + 1]; switch (Gbl.Usrs.Me.Role.Logged) @@ -1614,7 +1614,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, NumField++) if (Gbl.Crs.Records.LstFields.Lst[NumField].Visibility == Rec_EDITABLE_FIELD) { - ICanEdit = Usr_I_CAN; + ICanEdit = Usr_CAN; Frm_BeginForm (ActRcvRecCrs); break; } @@ -1626,7 +1626,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, if (TypeOfView == Rec_CRS_LIST_ONE_RECORD || TypeOfView == Rec_CRS_LIST_SEVERAL_RECORDS) { - ICanEdit = Usr_I_CAN; + ICanEdit = Usr_CAN; Frm_BeginFormAnchor (ActRcvRecOthUsr,Anchor); ParCod_PutPar (ParCod_OrgAct,Act_GetActCod (ActSeeRecSevStd)); // Original action, used to know where we came from Usr_PutParUsrCodEncrypted (UsrDat->EnUsrCod); @@ -1682,17 +1682,17 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, { case Rol_STD: ICanEditThisField = (TypeOfView == Rec_CRS_MY_RECORD_AS_STUDENT_FORM && - Gbl.Crs.Records.LstFields.Lst[NumField].Visibility == Rec_EDITABLE_FIELD) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Gbl.Crs.Records.LstFields.Lst[NumField].Visibility == Rec_EDITABLE_FIELD) ? Usr_CAN : + Usr_CAN_NOT; break; case Rol_TCH: case Rol_SYS_ADM: ICanEditThisField = (TypeOfView == Rec_CRS_LIST_ONE_RECORD || - TypeOfView == Rec_CRS_LIST_SEVERAL_RECORDS) ? Usr_I_CAN : - Usr_I_CAN_NOT; + TypeOfView == Rec_CRS_LIST_SEVERAL_RECORDS) ? Usr_CAN : + Usr_CAN_NOT; break; default: - ICanEditThisField = Usr_I_CAN_NOT; + ICanEditThisField = Usr_CAN_NOT; break; } @@ -1700,7 +1700,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, HTM_TR_Begin (NULL); HTM_TD_Begin ("class=\"REC_C1_BOT %s_%s RT %s\"", - ICanEditThisField == Usr_I_CAN ? "FORM_IN" : + ICanEditThisField == Usr_CAN ? "FORM_IN" : "REC_DAT_SMALL", // !!!!!!!!!!!!!!!!!!!!!!!!!!!!! The_GetSuffix (), The_GetColorRows ()); @@ -1735,7 +1735,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, The_GetColorRows ()); switch (ICanEditThisField) { - case Usr_I_CAN: // Show with form + case Usr_CAN: // Show with form HTM_TEXTAREA_Begin ("name=\"Field%ld\" rows=\"%u\"" " class=\"REC_C2_BOT_INPUT INPUT_%s\"", Gbl.Crs.Records.LstFields.Lst[NumField].FieldCod, @@ -1745,7 +1745,7 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, HTM_Txt (row[0]); HTM_TEXTAREA_End (); break; - case Usr_I_CAN_NOT: // Show without form + case Usr_CAN_NOT: // Show without form default: if (ThisFieldHasText) { @@ -1771,14 +1771,14 @@ static void Rec_ShowCrsRecord (Rec_CourseRecordViewType_t TypeOfView, /***** End box *****/ switch (ICanEdit) { - case Usr_I_CAN: + case Usr_CAN: /* End table, send button and end box */ Box_BoxTableWithButtonEnd (Btn_CONFIRM_BUTTON,Txt_Save_changes); /* End form */ Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: /* End table and box */ Box_BoxTableEnd (); @@ -1798,7 +1798,7 @@ void Rec_GetFieldsCrsRecordFromForm (void) for (NumField = 0; NumField < Gbl.Crs.Records.LstFields.Num; NumField++) - if (Rec_CheckIfICanEditField (Gbl.Crs.Records.LstFields.Lst[NumField].Visibility) == Usr_I_CAN) + if (Rec_CheckIfICanEditField (Gbl.Crs.Records.LstFields.Lst[NumField].Visibility) == Usr_CAN) { /* Get text from the form */ snprintf (FieldParName,sizeof (FieldParName),"Field%ld", @@ -1820,7 +1820,7 @@ void Rec_UpdateCrsRecord (long UsrCod) for (NumField = 0; NumField < Gbl.Crs.Records.LstFields.Num; NumField++) - if (Rec_CheckIfICanEditField (Gbl.Crs.Records.LstFields.Lst[NumField].Visibility) == Usr_I_CAN) + if (Rec_CheckIfICanEditField (Gbl.Crs.Records.LstFields.Lst[NumField].Visibility) == Usr_CAN) { /***** Check if already exists this field for this user in database *****/ FieldAlreadyExists = (Rec_DB_GetFieldTxtFromUsrRecord (&mysql_res, @@ -1876,7 +1876,7 @@ void Rec_AllocMemFieldsRecordsCrs (void) for (NumField = 0; NumField < Gbl.Crs.Records.LstFields.Num; NumField++) - if (Rec_CheckIfICanEditField (Gbl.Crs.Records.LstFields.Lst[NumField].Visibility) == Usr_I_CAN) + if (Rec_CheckIfICanEditField (Gbl.Crs.Records.LstFields.Lst[NumField].Visibility) == Usr_CAN) /* Allocate memory for the texts of the fields */ if ((Gbl.Crs.Records.LstFields.Lst[NumField].Text = malloc (Cns_MAX_BYTES_TEXT + 1)) == NULL) Err_NotEnoughMemoryExit (); @@ -1893,7 +1893,7 @@ void Rec_FreeMemFieldsRecordsCrs (void) for (NumField = 0; NumField < Gbl.Crs.Records.LstFields.Num; NumField++) - if (Rec_CheckIfICanEditField (Gbl.Crs.Records.LstFields.Lst[NumField].Visibility) == Usr_I_CAN) + if (Rec_CheckIfICanEditField (Gbl.Crs.Records.LstFields.Lst[NumField].Visibility) == Usr_CAN) /* Free memory of the text of the field */ if (Gbl.Crs.Records.LstFields.Lst[NumField].Text) { @@ -1906,14 +1906,14 @@ void Rec_FreeMemFieldsRecordsCrs (void) /* Check if I can edit a field depending on my role and the field visibility */ /*****************************************************************************/ -static Usr_ICan_t Rec_CheckIfICanEditField (Rec_VisibilityRecordFields_t Visibility) +static Usr_Can_t Rec_CheckIfICanEditField (Rec_VisibilityRecordFields_t Visibility) { // Non-editing teachers can not edit fields return ( Gbl.Usrs.Me.Role.Logged == Rol_TCH || Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM || (Gbl.Usrs.Me.Role.Logged == Rol_STD && - Visibility == Rec_EDITABLE_FIELD)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Visibility == Rec_EDITABLE_FIELD)) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ @@ -2074,7 +2074,7 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView, ViewType = Vie_EDIT; break; case Rec_SHA_OTHER_EXISTING_USR_FORM: - ViewType = (Usr_ICanChangeOtherUsrData (UsrDat) == Usr_I_CAN) ? Vie_EDIT : + ViewType = (Usr_ICanChangeOtherUsrData (UsrDat) == Usr_CAN) ? Vie_EDIT : Vie_VIEW; break; default: // In other options, I can not edit user's data @@ -2256,7 +2256,7 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView, { case Usr_ME: // Don't show groups if I don't belong to course - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG) Grp_ShowLstGrpsToChgMyGrps (); break; case Usr_OTHER: @@ -2289,7 +2289,7 @@ void Rec_ShowSharedUsrRecord (Rec_SharedRecordViewType_t TypeOfView, static void Rec_PutIconsCommands (__attribute__((unused)) void *Args) { Usr_MeOrOther_t MeOrOther = Usr_ItsMe (Rec_Record.UsrDat->UsrCod); - Usr_ICan_t ICanViewUsrProfile; + Usr_Can_t ICanViewUsrProfile; bool RecipientHasBannedMe; static Act_Action_t NextAction[Rol_NUM_ROLES] = { @@ -2372,25 +2372,25 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args) "pen.svg",Ico_BLACK); /***** Button to view user's profile *****/ - if (ICanViewUsrProfile == Usr_I_CAN) + if (ICanViewUsrProfile == Usr_CAN) Lay_PutContextualLinkOnlyIcon (ActSeeOthPubPrf,NULL, Rec_PutParUsrCodEncrypted,NULL, "user.svg",Ico_BLACK); /***** Button to view user's record card *****/ - if (Usr_CheckIfICanViewRecordStd (Rec_Record.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewRecordStd (Rec_Record.UsrDat) == Usr_CAN) /* View student's records: common record card and course record card */ Lay_PutContextualLinkOnlyIcon (ActSeeRecOneStd,NULL, Rec_PutParUsrCodEncrypted,NULL, "address-card.svg",Ico_BLACK); - else if (Usr_CheckIfICanViewRecordTch (Rec_Record.UsrDat) == Usr_I_CAN) + else if (Usr_CheckIfICanViewRecordTch (Rec_Record.UsrDat) == Usr_CAN) /* View teacher's record card and timetable */ Lay_PutContextualLinkOnlyIcon (ActSeeRecOneTch,NULL, Rec_PutParUsrCodEncrypted,NULL, "address-card.svg",Ico_BLACK); /***** Button to view user's agenda *****/ - if (Agd_CheckIfICanViewUsrAgenda (Rec_Record.UsrDat) == Usr_I_CAN) + if (Agd_CheckIfICanViewUsrAgenda (Rec_Record.UsrDat) == Usr_CAN) Lay_PutContextualLinkOnlyIcon (ActSeeAgd[MeOrOther],NULL, FuncPutParsAgd[MeOrOther],NULL, "calendar.svg",Ico_BLACK); @@ -2411,7 +2411,7 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args) if (Rec_Record.UsrDat->Roles.InCurrentCrs == Rol_STD) // He/she is a student in current course { /***** Buttons to view student's test, exam and match results *****/ - if (Usr_CheckIfICanViewTstExaMchResult (Rec_Record.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewTstExaMchResult (Rec_Record.UsrDat) == Usr_CAN) { /* Test results in course */ Lay_PutContextualLinkOnlyIcon (ActSeeTstResCrs[MeOrOther],NULL, @@ -2428,13 +2428,13 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args) } /***** Button to view student's assignments and works *****/ - if (Usr_CheckIfICanViewAsgWrk (Rec_Record.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewAsgWrk (Rec_Record.UsrDat) == Usr_CAN) Lay_PutContextualLinkOnlyIcon (ActAdmAsgWrk[MeOrOther],NULL, FuncPutParsAdmAsgWrk[MeOrOther],NULL, "folder-open.svg",Ico_BLACK); /***** Button to view student's attendance *****/ - if (Usr_CheckIfICanViewAtt (Rec_Record.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewAtt (Rec_Record.UsrDat) == Usr_CAN) Lay_PutContextualLinkOnlyIcon (ActSeeLstAtt[MeOrOther],NULL, FuncPutParsSeeLstAtt[MeOrOther],NULL, "calendar-check.svg",Ico_BLACK); @@ -2462,7 +2462,7 @@ static void Rec_PutIconsCommands (__attribute__((unused)) void *Args) Lay_PutContextualLinkOnlyIcon (ActUnfUsr,NULL, Rec_PutParUsrCodEncrypted,NULL, "user-check.svg",Ico_BLACK); // Put button to unfollow, even if I can not view user's profile - else if (ICanViewUsrProfile == Usr_I_CAN) + else if (ICanViewUsrProfile == Usr_CAN) Lay_PutContextualLinkOnlyIcon (ActFolUsr,NULL, Rec_PutParUsrCodEncrypted,NULL, "user-plus.svg",Ico_BLACK); // Put button to follow @@ -2688,13 +2688,13 @@ static void Rec_ShowEmail (struct Usr_Data *UsrDat) if (UsrDat->Email[0]) switch (Mai_ICanSeeOtherUsrEmail (UsrDat)) { - case Usr_I_CAN: + case Usr_CAN: HTM_A_Begin ("href=\"mailto:%s\" class=\"DAT_STRONG_%s\"", UsrDat->Email,The_GetSuffix ()); HTM_Txt (UsrDat->Email); HTM_A_End (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: HTM_Txt ("********"); break; diff --git a/swad_resource.c b/swad_resource.c index acdbbae7b..9e158cf9a 100644 --- a/swad_resource.c +++ b/swad_resource.c @@ -472,12 +472,12 @@ bool Rsc_GetParLink (struct Rsc_Link *Link) /************************** Check if I can get link **************************/ /*****************************************************************************/ -Usr_ICan_t Rsc_CheckIfICanGetLink (void) +Usr_Can_t Rsc_CheckIfICanGetLink (void) { - static Usr_ICan_t ICanGetLink[Rol_NUM_ROLES] = + static Usr_Can_t ICanGetLink[Rol_NUM_ROLES] = { - [Rol_TCH ] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return ICanGetLink[Gbl.Usrs.Me.Role.Logged]; diff --git a/swad_resource.h b/swad_resource.h index 67f965947..2d5aa580c 100644 --- a/swad_resource.h +++ b/swad_resource.h @@ -89,6 +89,6 @@ Rsc_Type_t Rsc_GetTypeFromString (const char *Str); bool Rsc_GetParLink (struct Rsc_Link *Link); -Usr_ICan_t Rsc_CheckIfICanGetLink (void); +Usr_Can_t Rsc_CheckIfICanGetLink (void); #endif diff --git a/swad_role.c b/swad_role.c index 80fbb06b5..eb52be399 100644 --- a/swad_role.c +++ b/swad_role.c @@ -70,11 +70,11 @@ extern struct Globals Gbl; void Rol_SetMyRoles (void) { - Usr_ICan_t ICanBeAdm[Hie_NUM_LEVELS] = + Usr_Can_t ICanBeAdm[Hie_NUM_LEVELS] = { - [Hie_INS] = Usr_I_CAN_NOT, - [Hie_CTR] = Usr_I_CAN_NOT, - [Hie_DEG] = Usr_I_CAN_NOT, + [Hie_INS] = Usr_CAN_NOT, + [Hie_CTR] = Usr_CAN_NOT, + [Hie_DEG] = Usr_CAN_NOT, }; /***** Get my role in current course if not yet filled *****/ @@ -109,90 +109,116 @@ void Rol_SetMyRoles (void) { /* Check if I am and administrator of current institution */ ICanBeAdm[Hie_INS] = Adm_DB_CheckIfUsrIsAdm (Gbl.Usrs.Me.UsrDat.UsrCod, - Hie_INS) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Hie_INS) ? Usr_CAN : + Usr_CAN_NOT; if (Gbl.Hierarchy.Node[Hie_CTR].HieCod > 0) { /* Check if I am and administrator of current center */ ICanBeAdm[Hie_CTR] = Adm_DB_CheckIfUsrIsAdm (Gbl.Usrs.Me.UsrDat.UsrCod, - Hie_CTR) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Hie_CTR) ? Usr_CAN : + Usr_CAN_NOT; if (Gbl.Hierarchy.Node[Hie_DEG].HieCod > 0) /* Check if I am and administrator of current degree */ ICanBeAdm[Hie_DEG] = Adm_DB_CheckIfUsrIsAdm (Gbl.Usrs.Me.UsrDat.UsrCod, - Hie_DEG) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Hie_DEG) ? Usr_CAN : + Usr_CAN_NOT; } } /***** Check if I belong to current course *****/ if (Gbl.Hierarchy.Level == Hie_CRS) // Course selected { - Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] = Enr_CheckIfUsrBelongsToCurrentCrs (&Gbl.Usrs.Me.UsrDat); - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) - Gbl.Usrs.Me.UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Me.UsrDat); - else - Gbl.Usrs.Me.UsrDat.Accepted = false; + Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] = + Enr_CheckIfUsrBelongsToCurrentCrs (&Gbl.Usrs.Me.UsrDat) ? Usr_BELONG : + Usr_DONT_BELONG; + switch (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + { + case Usr_BELONG: + Gbl.Usrs.Me.UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Me.UsrDat); + break; + case Usr_DONT_BELONG: + default: + Gbl.Usrs.Me.UsrDat.Accepted = false; + break; + } } else // No course selected { - Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] = false; + Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] = Usr_DONT_BELONG; Gbl.Usrs.Me.UsrDat.Accepted = false; } /***** Check if I belong to current degree *****/ if (Gbl.Hierarchy.Node[Hie_DEG].HieCod > 0) - { - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) - Gbl.Usrs.Me.IBelongToCurrent[Hie_DEG] = true; - else - Gbl.Usrs.Me.IBelongToCurrent[Hie_DEG] = Hie_CheckIfIBelongTo (Hie_DEG,Gbl.Hierarchy.Node[Hie_DEG].HieCod); - } + switch (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + { + case Usr_BELONG: + Gbl.Usrs.Me.IBelongToCurrent[Hie_DEG] = Usr_BELONG; + break; + case Usr_DONT_BELONG: + default: + Gbl.Usrs.Me.IBelongToCurrent[Hie_DEG] = Hie_CheckIfIBelongTo (Hie_DEG,Gbl.Hierarchy.Node[Hie_DEG].HieCod); + break; + } else - Gbl.Usrs.Me.IBelongToCurrent[Hie_DEG] = false; + Gbl.Usrs.Me.IBelongToCurrent[Hie_DEG] = Usr_DONT_BELONG; /***** Check if I belong to current center *****/ if (Gbl.Hierarchy.Node[Hie_CTR].HieCod > 0) - { - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_DEG]) - Gbl.Usrs.Me.IBelongToCurrent[Hie_CTR] = true; - else - Gbl.Usrs.Me.IBelongToCurrent[Hie_CTR] = Hie_CheckIfIBelongTo (Hie_CTR,Gbl.Hierarchy.Node[Hie_CTR].HieCod); - } + switch (Gbl.Usrs.Me.IBelongToCurrent[Hie_DEG]) + { + case Usr_BELONG: + Gbl.Usrs.Me.IBelongToCurrent[Hie_CTR] = Usr_BELONG; + break; + case Usr_DONT_BELONG: + default: + Gbl.Usrs.Me.IBelongToCurrent[Hie_CTR] = Hie_CheckIfIBelongTo (Hie_CTR,Gbl.Hierarchy.Node[Hie_CTR].HieCod); + break; + } else - Gbl.Usrs.Me.IBelongToCurrent[Hie_CTR] = false; + Gbl.Usrs.Me.IBelongToCurrent[Hie_CTR] = Usr_DONT_BELONG; /***** Check if I belong to current institution *****/ if (Gbl.Hierarchy.Node[Hie_INS].HieCod > 0) - { - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CTR]) - Gbl.Usrs.Me.IBelongToCurrent[Hie_INS] = true; - else - Gbl.Usrs.Me.IBelongToCurrent[Hie_INS] = Hie_CheckIfIBelongTo (Hie_INS,Gbl.Hierarchy.Node[Hie_INS].HieCod); - } + switch (Gbl.Usrs.Me.IBelongToCurrent[Hie_CTR]) + { + case Usr_BELONG: + Gbl.Usrs.Me.IBelongToCurrent[Hie_INS] = Usr_BELONG; + break; + case Usr_DONT_BELONG: + default: + Gbl.Usrs.Me.IBelongToCurrent[Hie_INS] = Hie_CheckIfIBelongTo (Hie_INS, + Gbl.Hierarchy.Node[Hie_INS].HieCod); + break; + } else - Gbl.Usrs.Me.IBelongToCurrent[Hie_INS] = false; + Gbl.Usrs.Me.IBelongToCurrent[Hie_INS] = Usr_DONT_BELONG; /***** Build my list of available roles for current course *****/ if (Gbl.Hierarchy.Level == Hie_CRS) - { - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) - Gbl.Usrs.Me.Role.Available = (1 << Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs); - else if (Gbl.Usrs.Me.Role.Max >= Rol_STD) - Gbl.Usrs.Me.Role.Available = (1 << Rol_USR); - else - Gbl.Usrs.Me.Role.Available = (1 << Rol_GST); - } + switch (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + { + case Usr_BELONG: + Gbl.Usrs.Me.Role.Available = (1 << Gbl.Usrs.Me.UsrDat.Roles.InCurrentCrs); + break; + case Usr_DONT_BELONG: + default: + if (Gbl.Usrs.Me.Role.Max >= Rol_STD) + Gbl.Usrs.Me.Role.Available = (1 << Rol_USR); + else + Gbl.Usrs.Me.Role.Available = (1 << Rol_GST); + break; + } else if (Gbl.Usrs.Me.Role.Max >= Rol_STD) Gbl.Usrs.Me.Role.Available = (1 << Rol_USR); else Gbl.Usrs.Me.Role.Available = (1 << Rol_GST); - if (ICanBeAdm[Hie_INS] == Usr_I_CAN) + if (ICanBeAdm[Hie_INS] == Usr_CAN) Gbl.Usrs.Me.Role.Available |= (1 << Rol_INS_ADM); - if (ICanBeAdm[Hie_CTR] == Usr_I_CAN) + if (ICanBeAdm[Hie_CTR] == Usr_CAN) Gbl.Usrs.Me.Role.Available |= (1 << Rol_CTR_ADM); - if (ICanBeAdm[Hie_DEG] == Usr_I_CAN) + if (ICanBeAdm[Hie_DEG] == Usr_CAN) Gbl.Usrs.Me.Role.Available |= (1 << Rol_DEG_ADM); if (Usr_CheckIfUsrIsSuperuser (Gbl.Usrs.Me.UsrDat.UsrCod)) Gbl.Usrs.Me.Role.Available |= (1 << Rol_SYS_ADM); diff --git a/swad_room.c b/swad_room.c index 27e906d07..a0f416363 100644 --- a/swad_room.c +++ b/swad_room.c @@ -97,7 +97,7 @@ static void Roo_GetAndListMACAddresses (long RooCod); static void Roo_GetAndEditMACAddresses (long RooCod,const char *Anchor); static Roo_Order_t Roo_GetParRoomOrder (void); -static Usr_ICan_t Roo_CheckIfICanCreateRooms (void); +static Usr_Can_t Roo_CheckIfICanCreateRooms (void); static void Roo_PutIconsListingRooms (__attribute__((unused)) void *Args); static void Roo_PutIconToEditRooms (void); static void Roo_PutIconsEditingRooms (__attribute__((unused)) void *Args); @@ -377,10 +377,10 @@ static Roo_Order_t Roo_GetParRoomOrder (void) /*********************** Check if I can create rooms *************************/ /*****************************************************************************/ -static Usr_ICan_t Roo_CheckIfICanCreateRooms (void) +static Usr_Can_t Roo_CheckIfICanCreateRooms (void) { - return (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Gbl.Usrs.Me.Role.Logged >= Rol_CTR_ADM) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ @@ -390,7 +390,7 @@ static Usr_ICan_t Roo_CheckIfICanCreateRooms (void) static void Roo_PutIconsListingRooms (__attribute__((unused)) void *Args) { /***** Put icon to edit rooms *****/ - if (Roo_CheckIfICanCreateRooms () == Usr_I_CAN) + if (Roo_CheckIfICanCreateRooms () == Usr_CAN) Roo_PutIconToEditRooms (); } diff --git a/swad_room_database.c b/swad_room_database.c index adf4ee57c..2884f5696 100644 --- a/swad_room_database.c +++ b/swad_room_database.c @@ -396,7 +396,7 @@ long Roo_DB_CheckIn (long RooCod) /********************** Check if I can see user's location *******************/ /*****************************************************************************/ -Usr_ICan_t Roo_DB_CheckIfICanSeeUsrLocation (long UsrCod) +Usr_Can_t Roo_DB_CheckIfICanSeeUsrLocation (long UsrCod) { /* I can only consult the location of another user @@ -426,8 +426,8 @@ Usr_ICan_t Roo_DB_CheckIfICanSeeUsrLocation (long UsrCod) " AND crs_courses.DegCod=deg_degrees.DegCod) AS C2" // centers of user's courses " WHERE C1.CtrCod=C2.CtrCod)", Gbl.Usrs.Me.UsrDat.UsrCod, - UsrCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + UsrCod) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ diff --git a/swad_room_database.h b/swad_room_database.h index e18c323d7..1a26252a6 100644 --- a/swad_room_database.h +++ b/swad_room_database.h @@ -55,7 +55,7 @@ void Roo_DB_RemoveAllRoomsInCtr (long CtrCod); //--------------------------------- Check in ---------------------------------- long Roo_DB_CheckIn (long RooCod); -Usr_ICan_t Roo_DB_CheckIfICanSeeUsrLocation (long UsrCod); +Usr_Can_t Roo_DB_CheckIfICanSeeUsrLocation (long UsrCod); unsigned Roo_DB_GetUsrLastLocation (MYSQL_RES **mysql_res,long UsrCod); unsigned Roo_DB_GetLocationByMAC (MYSQL_RES **mysql_res,unsigned long long MACnum); diff --git a/swad_rubric.c b/swad_rubric.c index fe07ddd9b..37aa1ae92 100644 --- a/swad_rubric.c +++ b/swad_rubric.c @@ -228,12 +228,12 @@ void Rub_ListAllRubrics (struct Rub_Rubrics *Rubrics) /************************ Check if I can edit rubrics ************************/ /*****************************************************************************/ -Usr_ICan_t Rub_CheckIfICanEditRubrics (void) +Usr_Can_t Rub_CheckIfICanEditRubrics (void) { - static Usr_ICan_t ICanEditRubrics[Rol_NUM_ROLES] = + static Usr_Can_t ICanEditRubrics[Rol_NUM_ROLES] = { - [Rol_TCH ] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return ICanEditRubrics[Gbl.Usrs.Me.Role.Logged]; @@ -245,7 +245,7 @@ Usr_ICan_t Rub_CheckIfICanEditRubrics (void) bool Rub_CheckIfEditable (void) { - if (Rub_CheckIfICanEditRubrics () == Usr_I_CAN) + if (Rub_CheckIfICanEditRubrics () == Usr_CAN) { /***** Rubric is editable only if ... *****/ // TODO: Change to control that a rubric is not edited in some circunstances? @@ -267,7 +267,7 @@ static void Rub_PutIconsListRubrics (void *Rubrics) { if (Rubrics) { - if (Rub_CheckIfICanEditRubrics () == Usr_I_CAN) + if (Rub_CheckIfICanEditRubrics () == Usr_CAN) { /***** Put icon to create a new rubric *****/ Rub_PutIconToCreateNewRubric ((struct Rub_Rubrics *) Rubrics); @@ -277,7 +277,7 @@ static void Rub_PutIconsListRubrics (void *Rubrics) } /***** Link to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkRub,NULL,Rub_PutPars,Rubrics); /***** Put icon to show a figure *****/ @@ -477,7 +477,7 @@ static void Rub_PutIconsEditingOneRubric (void *Rubrics) static void Rub_PutIconsToRemEditOneRubric (struct Rub_Rubrics *Rubrics) { - if (Rub_CheckIfICanEditRubrics () == Usr_I_CAN) + if (Rub_CheckIfICanEditRubrics () == Usr_CAN) { /***** Icon to remove rubric *****/ Ico_PutContextualIconToRemove (ActReqRemRub,NULL,Rub_PutPars,Rubrics); @@ -486,7 +486,7 @@ static void Rub_PutIconsToRemEditOneRubric (struct Rub_Rubrics *Rubrics) Ico_PutContextualIconToEdit (ActEdiOneRub,NULL,Rub_PutPars,Rubrics); /***** Link to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkRub,NULL,Rub_PutPars,Rubrics); } } @@ -648,7 +648,7 @@ void Rub_AskRemRubric (void) /***** Get data of the rubric from database *****/ Rub_GetRubricDataByCod (&Rubrics.Rubric); - if (Rub_CheckIfICanEditRubrics () == Usr_I_CAN_NOT) + if (Rub_CheckIfICanEditRubrics () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Show criterion and button to remove rubric *****/ @@ -682,7 +682,7 @@ void Rub_RemoveRubric (void) /***** Get data of the rubric from database *****/ Rub_GetRubricDataByCod (&Rubrics.Rubric); - if (Rub_CheckIfICanEditRubrics () == Usr_I_CAN_NOT) + if (Rub_CheckIfICanEditRubrics () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Remove rubric from all tables *****/ @@ -734,7 +734,7 @@ void Rub_ReqCreatOrEditRubric (void) Rub_ExistingNewRubric_t ExistingNewRubric; /***** Check if I can edit rubrics *****/ - if (Rub_CheckIfICanEditRubrics () == Usr_I_CAN_NOT) + if (Rub_CheckIfICanEditRubrics () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Reset rubrics context *****/ @@ -906,7 +906,7 @@ void Rub_ReceiveRubric (void) Rub_ExistingNewRubric_t ExistingNewRubric; /***** Check if I can edit rubrics *****/ - if (Rub_CheckIfICanEditRubrics () == Usr_I_CAN_NOT) + if (Rub_CheckIfICanEditRubrics () == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Reset rubrics context *****/ diff --git a/swad_rubric.h b/swad_rubric.h index 42e5181a6..fa710708b 100644 --- a/swad_rubric.h +++ b/swad_rubric.h @@ -54,7 +54,7 @@ void Rub_RubricDestructor (struct Rub_Rubric *Rubric); void Rub_SeeAllRubrics (void); void Rub_ListAllRubrics (struct Rub_Rubrics *Rubrics); -Usr_ICan_t Rub_CheckIfICanEditRubrics (void); +Usr_Can_t Rub_CheckIfICanEditRubrics (void); bool Rub_CheckIfEditable (void); void Rub_SeeOneRubric (void); void Rub_ShowOnlyOneRubric (struct Rub_Rubrics *Rubrics); diff --git a/swad_rubric_criteria.c b/swad_rubric_criteria.c index 713254476..be972efa2 100644 --- a/swad_rubric_criteria.c +++ b/swad_rubric_criteria.c @@ -527,8 +527,8 @@ void RubCri_ListCriteriaForEdition (struct Rub_Rubrics *Rubrics) MYSQL_RES *mysql_res; unsigned MaxCriInd; unsigned NumCriteria; - Usr_ICan_t ICanEditCriteria = Rub_CheckIfEditable () ? Usr_I_CAN : - Usr_I_CAN_NOT; + Usr_Can_t ICanEditCriteria = Rub_CheckIfEditable () ? Usr_CAN : + Usr_CAN_NOT; /***** Get maximum criterion index *****/ MaxCriInd = Rub_DB_GetMaxCriterionIndexInRubric (Rubrics->Rubric.RubCod); @@ -547,7 +547,7 @@ void RubCri_ListCriteriaForEdition (struct Rub_Rubrics *Rubrics) NumCriteria,mysql_res); /***** Put forms to create/edit a criterion *****/ - if (ICanEditCriteria == Usr_I_CAN) + if (ICanEditCriteria == Usr_CAN) RubCri_PutFormNewCriterion (Rubrics,MaxCriInd); /***** End box *****/ @@ -562,7 +562,7 @@ void RubCri_ListCriteriaForEdition (struct Rub_Rubrics *Rubrics) /*****************************************************************************/ void RubCri_ListCriteriaInProject (struct Prj_Projects *Projects,long RubCod, - Usr_ICan_t ICanFill) + Usr_Can_t ICanFill) { MYSQL_RES *mysql_res; unsigned NumCriteria; diff --git a/swad_rubric_criteria.h b/swad_rubric_criteria.h index 77bd55673..6f9184a02 100644 --- a/swad_rubric_criteria.h +++ b/swad_rubric_criteria.h @@ -45,7 +45,7 @@ void RubCri_ChangeWeight (void); void RubCri_ListCriteriaForSeeing (const struct Rub_Rubrics *Rubrics); void RubCri_ListCriteriaForEdition (struct Rub_Rubrics *Rubrics); void RubCri_ListCriteriaInProject (struct Prj_Projects *Projects,long RubCod, - Usr_ICan_t ICanFill); + Usr_Can_t ICanFill); void Rub_PushRubCod (struct Rub_Node **TOS,long RubCod); void Rub_PopRubCod (struct Rub_Node **TOS); diff --git a/swad_rubric_resource.c b/swad_rubric_resource.c index 1b85b8911..e62611eaa 100644 --- a/swad_rubric_resource.c +++ b/swad_rubric_resource.c @@ -114,7 +114,7 @@ static void RubRsc_ShowClipboard (void) static void RubRsc_PutIconsClipboard (__attribute__((unused)) void *Args) { /***** Put icon to remove resource clipboard in rubrics *****/ - if (Rub_CheckIfICanEditRubrics () == Usr_I_CAN) + if (Rub_CheckIfICanEditRubrics () == Usr_CAN) if (Rsc_DB_GetNumResourcesInClipboard ()) // Only if there are resources Ico_PutContextualIconToRemove (ActRemRscCli_InRub,NULL, NULL,NULL); diff --git a/swad_search.c b/swad_search.c index aff79565c..49ad5a226 100644 --- a/swad_search.c +++ b/swad_search.c @@ -74,7 +74,7 @@ static struct Sch_Search Sch_Search = /*****************************************************************************/ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Hie_Level_t DefaultScope); -static Usr_ICan_t Sch_CheckIfICanSearch (Sch_WhatToSearch_t WhatToSearch); +static Usr_Can_t Sch_CheckIfICanSearch (Sch_WhatToSearch_t WhatToSearch); static void Sch_GetParSearchStr (void); static void Sch_SearchInDB (void); @@ -190,7 +190,7 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Hie_Level_t DefaultScop for (WhatToSearch = (Sch_WhatToSearch_t) 0; WhatToSearch <= (Sch_WhatToSearch_t) (Sch_NUM_WHAT_TO_SEARCH - 1); WhatToSearch++) - if (Sch_CheckIfICanSearch (WhatToSearch) == Usr_I_CAN) + if (Sch_CheckIfICanSearch (WhatToSearch) == Usr_CAN) { WTS = (unsigned) WhatToSearch; HTM_OPTION (HTM_Type_UNSIGNED,&WTS, @@ -222,7 +222,7 @@ static void Sch_PutFormToSearchWithWhatToSearchAndScope (Hie_Level_t DefaultScop /************* Check if I have permission to execute an action ***************/ /*****************************************************************************/ -static Usr_ICan_t Sch_CheckIfICanSearch (Sch_WhatToSearch_t WhatToSearch) +static Usr_Can_t Sch_CheckIfICanSearch (Sch_WhatToSearch_t WhatToSearch) { static unsigned Permissions[Sch_NUM_WHAT_TO_SEARCH] = { @@ -242,8 +242,8 @@ static Usr_ICan_t Sch_CheckIfICanSearch (Sch_WhatToSearch_t WhatToSearch) [Sch_SEARCH_MY_DOCUMENTS ] = 0x3FE, // Only if I am logged }; - return (Permissions[WhatToSearch] & (1 << Gbl.Usrs.Me.Role.Logged)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return (Permissions[WhatToSearch] & (1 << Gbl.Usrs.Me.Role.Logged)) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ @@ -489,7 +489,7 @@ static unsigned Sch_SearchCountrsInDB (const char *RangeQuery) Gbl.Scope.Current != Hie_DEG && Gbl.Scope.Current != Hie_CRS) /***** Check user's permission *****/ - if (Sch_CheckIfICanSearch (Sch_SEARCH_COUNTRIES) == Usr_I_CAN) + if (Sch_CheckIfICanSearch (Sch_SEARCH_COUNTRIES) == Usr_CAN) { /***** Split countries string into words *****/ snprintf (FldName,sizeof (FldName),"Name_%s", @@ -524,7 +524,7 @@ static unsigned Sch_SearchInstitsInDB (const char *RangeQuery) Gbl.Scope.Current != Hie_DEG && Gbl.Scope.Current != Hie_CRS) /***** Check user's permission *****/ - if (Sch_CheckIfICanSearch (Sch_SEARCH_INSTITS) == Usr_I_CAN) + if (Sch_CheckIfICanSearch (Sch_SEARCH_INSTITS) == Usr_CAN) /***** Split institutions string into words *****/ if (Sch_BuildSearchQuery (SearchQuery,Sch_GetSearch (), "ins_instits.FullName",NULL,NULL)) @@ -553,7 +553,7 @@ static unsigned Sch_SearchCentersInDB (const char *RangeQuery) if (Gbl.Scope.Current != Hie_DEG && Gbl.Scope.Current != Hie_CRS) /***** Check user's permission *****/ - if (Sch_CheckIfICanSearch (Sch_SEARCH_CENTERS) == Usr_I_CAN) + if (Sch_CheckIfICanSearch (Sch_SEARCH_CENTERS) == Usr_CAN) /***** Split center string into words *****/ if (Sch_BuildSearchQuery (SearchQuery,Sch_GetSearch (), "ctr_centers.FullName",NULL,NULL)) @@ -581,7 +581,7 @@ static unsigned Sch_SearchDegreesInDB (const char *RangeQuery) /***** Check scope *****/ if (Gbl.Scope.Current != Hie_CRS) /***** Check user's permission *****/ - if (Sch_CheckIfICanSearch (Sch_SEARCH_DEGREES) == Usr_I_CAN) + if (Sch_CheckIfICanSearch (Sch_SEARCH_DEGREES) == Usr_CAN) /***** Split degree string into words *****/ if (Sch_BuildSearchQuery (SearchQuery,Sch_GetSearch (), "deg_degrees.FullName",NULL,NULL)) @@ -607,7 +607,7 @@ static unsigned Sch_SearchCoursesInDB (const char *RangeQuery) unsigned NumCrss; /***** Check user's permission *****/ - if (Sch_CheckIfICanSearch (Sch_SEARCH_COURSES) == Usr_I_CAN) + if (Sch_CheckIfICanSearch (Sch_SEARCH_COURSES) == Usr_CAN) /***** Split course string into words *****/ if (Sch_BuildSearchQuery (SearchQuery,Sch_GetSearch (), "crs_courses.FullName",NULL,NULL)) @@ -663,7 +663,7 @@ static unsigned Sch_SearchOpenDocumentsInDB (const char *RangeQuery) unsigned NumDocs; /***** Check user's permission *****/ - if (Sch_CheckIfICanSearch (Sch_SEARCH_OPEN_DOCUMENTS) == Usr_I_CAN) + if (Sch_CheckIfICanSearch (Sch_SEARCH_OPEN_DOCUMENTS) == Usr_CAN) /***** Split document string into words *****/ if (Sch_BuildSearchQuery (SearchQuery,Sch_GetSearch (), "SUBSTRING_INDEX(brw_files.Path,'/',-1)", @@ -696,7 +696,7 @@ static unsigned Sch_SearchDocumentsInMyCoursesInDB (const char *RangeQuery) unsigned NumDocs; /***** Check user's permission *****/ - if (Sch_CheckIfICanSearch (Sch_SEARCH_DOCUM_IN_MY_COURSES) == Usr_I_CAN) + if (Sch_CheckIfICanSearch (Sch_SEARCH_DOCUM_IN_MY_COURSES) == Usr_CAN) /***** Split document string into words *****/ if (Sch_BuildSearchQuery (SearchQuery,Sch_GetSearch (), "SUBSTRING_INDEX(brw_files.Path,'/',-1)", @@ -729,7 +729,7 @@ static unsigned Sch_SearchMyDocumentsInDB (const char *RangeQuery) unsigned NumDocs; /***** Check user's permission *****/ - if (Sch_CheckIfICanSearch (Sch_SEARCH_MY_DOCUMENTS) == Usr_I_CAN) + if (Sch_CheckIfICanSearch (Sch_SEARCH_MY_DOCUMENTS) == Usr_CAN) /***** Split document string into words *****/ if (Sch_BuildSearchQuery (SearchQuery,Sch_GetSearch (), "SUBSTRING_INDEX(brw_files.Path,'/',-1)", diff --git a/swad_statistic.c b/swad_statistic.c index 3c5535531..4ec91b16f 100644 --- a/swad_statistic.c +++ b/swad_statistic.c @@ -791,7 +791,7 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse) Sta_ClicksDetailedOrGrouped_t DetailedOrGrouped = Sta_CLICKS_GROUPED; char BrowserTimeZone[Dat_MAX_BYTES_TIME_ZONE + 1]; unsigned NumDays; - Usr_ICan_t ICanQueryWholeRange; + Usr_Can_t ICanQueryWholeRange; unsigned NumUsrsInList = 0; long *LstSelectedUsrCods = NULL; @@ -943,9 +943,9 @@ static void Sta_ShowHits (Sta_GlobalOrCourseAccesses_t GlobalOrCourse) Gbl.Scope.Current == Hie_CTR || Gbl.Scope.Current == Hie_DEG || Gbl.Scope.Current == Hie_CRS)) || - Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; - if (ICanQueryWholeRange == Usr_I_CAN_NOT && + Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_CAN : + Usr_CAN_NOT; + if (ICanQueryWholeRange == Usr_CAN_NOT && NumDays > Cfg_DAYS_IN_RECENT_LOG) { /* ...write warning message and show the form again */ diff --git a/swad_survey.c b/swad_survey.c index 1fd88fc44..e62896b3a 100644 --- a/swad_survey.c +++ b/swad_survey.c @@ -75,7 +75,7 @@ extern struct Globals Gbl; /***************************** Private prototypes ****************************/ /*****************************************************************************/ -static Usr_ICan_t Svy_CheckIfICanCreateSvy (void); +static Usr_Can_t Svy_CheckIfICanCreateSvy (void); static void Svy_PutIconsListSurveys (void *Surveys); static void Svy_PutIconToCreateNewSvy (struct Svy_Surveys *Surveys); static void Svy_PutParsToCreateNewSvy (void *Surveys); @@ -223,8 +223,8 @@ void Svy_ListAllSurveys (struct Svy_Surveys *Surveys) HTM_TABLE_Begin ("TBL_SCROLL"); HTM_TR_Begin (NULL); - if (Surveys->Svy.Status.ICanEdit || - Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Surveys->Svy.Status.ICanEdit == Usr_CAN || + Rsc_CheckIfICanGetLink () == Usr_CAN) HTM_TH_Span (NULL,HTM_HEAD_CENTER,1,1,"CONTEXT_COL"); // Column for contextual icons for (Order = (Dat_StartEndTime_t) 0; @@ -287,15 +287,15 @@ void Svy_ListAllSurveys (struct Svy_Surveys *Surveys) /******************* Check if I can create a new survey **********************/ /*****************************************************************************/ -static Usr_ICan_t Svy_CheckIfICanCreateSvy (void) +static Usr_Can_t Svy_CheckIfICanCreateSvy (void) { - static Usr_ICan_t ICanCreateSvy[Rol_NUM_ROLES] = + static Usr_Can_t ICanCreateSvy[Rol_NUM_ROLES] = { - [Rol_TCH ] = Usr_I_CAN, - [Rol_DEG_ADM] = Usr_I_CAN, - [Rol_CTR_ADM] = Usr_I_CAN, - [Rol_INS_ADM] = Usr_I_CAN, - [Rol_SYS_ADM] = Usr_I_CAN, + [Rol_TCH ] = Usr_CAN, + [Rol_DEG_ADM] = Usr_CAN, + [Rol_CTR_ADM] = Usr_CAN, + [Rol_INS_ADM] = Usr_CAN, + [Rol_SYS_ADM] = Usr_CAN, }; return ICanCreateSvy[Gbl.Usrs.Me.Role.Logged]; @@ -308,11 +308,11 @@ static Usr_ICan_t Svy_CheckIfICanCreateSvy (void) static void Svy_PutIconsListSurveys (void *Surveys) { /***** Put icon to create a new survey *****/ - if (Svy_CheckIfICanCreateSvy () == Usr_I_CAN) + if (Svy_CheckIfICanCreateSvy () == Usr_CAN) Svy_PutIconToCreateNewSvy ((struct Svy_Surveys *) Surveys); /***** Put icon to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkSvy,NULL,Svy_PutPars,Surveys); /***** Put icon to show a figure *****/ @@ -436,8 +436,8 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys, { HTM_TD_Begin ("rowspan=\"2\" class=\"CONTEXT_COL %s\"", The_GetColorRows ()); - if (Surveys->Svy.Status.ICanEdit || - Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Surveys->Svy.Status.ICanEdit == Usr_CAN || + Rsc_CheckIfICanGetLink () == Usr_CAN) Svy_PutFormsToRemEditOneSvy (Surveys,Anchor); HTM_TD_End (); } @@ -527,36 +527,41 @@ static void Svy_ShowOneSurvey (struct Svy_Surveys *Surveys, if (!ShowOnlyThisSvyComplete) { /* Possible button to answer this survey */ - if (Surveys->Svy.Status.ICanAnswer) + switch (Surveys->Svy.Status.ICanAnswer) { - HTM_DIV_Begin ("class=\"BUTTONS_AFTER_ALERT\""); + case Usr_CAN: + HTM_DIV_Begin ("class=\"BUTTONS_AFTER_ALERT\""); - Frm_BeginForm (ActSeeOneSvy); - ParCod_PutPar (ParCod_Svy,Surveys->Svy.SvyCod); - Svy_PutParSvyOrder (Surveys->SelectedOrder); - WhichGroups = Grp_GetParWhichGroups (); - Grp_PutParWhichGroups (&WhichGroups); - Pag_PutParPagNum (Pag_SURVEYS,Surveys->CurrentPage); - Btn_PutCreateButtonInline (Txt_Answer_survey); - Frm_EndForm (); + Frm_BeginForm (ActSeeOneSvy); + ParCod_PutPar (ParCod_Svy,Surveys->Svy.SvyCod); + Svy_PutParSvyOrder (Surveys->SelectedOrder); + WhichGroups = Grp_GetParWhichGroups (); + Grp_PutParWhichGroups (&WhichGroups); + Pag_PutParPagNum (Pag_SURVEYS,Surveys->CurrentPage); + Btn_PutCreateButtonInline (Txt_Answer_survey); + Frm_EndForm (); - HTM_DIV_End (); - } - /* Possible button to see the result of the survey */ - else if (Surveys->Svy.Status.ICanViewResults) - { - HTM_DIV_Begin ("class=\"BUTTONS_AFTER_ALERT\""); + HTM_DIV_End (); + break; + case Usr_CAN_NOT: + default: + /* Possible button to see the result of the survey */ + if (Surveys->Svy.Status.ICanViewResults == Usr_CAN) + { + HTM_DIV_Begin ("class=\"BUTTONS_AFTER_ALERT\""); - Frm_BeginForm (ActSeeOneSvy); - ParCod_PutPar (ParCod_Svy,Surveys->Svy.SvyCod); - Svy_PutParSvyOrder (Surveys->SelectedOrder); - WhichGroups = Grp_GetParWhichGroups (); - Grp_PutParWhichGroups (&WhichGroups); - Pag_PutParPagNum (Pag_SURVEYS,Surveys->CurrentPage); - Btn_PutConfirmButtonInline (Txt_View_results); - Frm_EndForm (); + Frm_BeginForm (ActSeeOneSvy); + ParCod_PutPar (ParCod_Svy,Surveys->Svy.SvyCod); + Svy_PutParSvyOrder (Surveys->SelectedOrder); + WhichGroups = Grp_GetParWhichGroups (); + Grp_PutParWhichGroups (&WhichGroups); + Pag_PutParPagNum (Pag_SURVEYS,Surveys->CurrentPage); + Btn_PutConfirmButtonInline (Txt_View_results); + Frm_EndForm (); - HTM_DIV_End (); + HTM_DIV_End (); + } + break; } } @@ -732,8 +737,8 @@ static void Svy_WriteStatus (struct Svy_Survey *Svy) }; CloOpe_ClosedOrOpen_t ClosedOrOpenDependingOnMyRole = Svy->Status.IAmLoggedWithAValidRoleToAnswer ? CloOpe_OPEN : CloOpe_CLOSED; - CloOpe_ClosedOrOpen_t ClosedOrOpenDependingOnScope = Svy->Status.IBelongToScope ? CloOpe_OPEN : - CloOpe_CLOSED; + CloOpe_ClosedOrOpen_t ClosedOrOpenDependingOnScope = (Svy->Status.IBelongToScope == Usr_BELONG) ? CloOpe_OPEN : + CloOpe_CLOSED; CloOpe_ClosedOrOpen_t ClosedOrOpenDependingOnAlreadyAnswered = Svy->Status.IHaveAnswered ? CloOpe_CLOSED : CloOpe_OPEN; @@ -814,7 +819,7 @@ static void Svy_PutFormsToRemEditOneSvy (struct Svy_Surveys *Surveys, [HidVis_VISIBLE] = ActHidSvy, // Visible ==> action to hide }; - if (Surveys->Svy.Status.ICanEdit) + if (Surveys->Svy.Status.ICanEdit == Usr_CAN) { /***** Icon to remove survey *****/ Ico_PutContextualIconToRemove (ActReqRemSvy,NULL,Svy_PutPars,Surveys); @@ -832,7 +837,7 @@ static void Svy_PutFormsToRemEditOneSvy (struct Svy_Surveys *Surveys, } /***** Icon to get resource link *****/ - if (Rsc_CheckIfICanGetLink () == Usr_I_CAN) + if (Rsc_CheckIfICanGetLink () == Usr_CAN) Ico_PutContextualIconToGetLink (ActReqLnkSvy,NULL,Svy_PutPars,Surveys); } @@ -919,16 +924,16 @@ static void Svy_SetAllowedAndHiddenScopes (unsigned *ScopesAllowed, // ...but not belonging to the current course ********* *ScopesAllowed = 1 << Hie_SYS; *HiddenAllowed = 0; - if (Hie_CheckIfIBelongTo (Hie_CTY,Gbl.Hierarchy.Node[Hie_CTY].HieCod)) + if (Hie_CheckIfIBelongTo (Hie_CTY,Gbl.Hierarchy.Node[Hie_CTY].HieCod) == Usr_BELONG) { *ScopesAllowed |= 1 << Hie_CTY; - if (Hie_CheckIfIBelongTo (Hie_INS,Gbl.Hierarchy.Node[Hie_INS].HieCod)) + if (Hie_CheckIfIBelongTo (Hie_INS,Gbl.Hierarchy.Node[Hie_INS].HieCod) == Usr_BELONG) { *ScopesAllowed |= 1 << Hie_INS; - if (Hie_CheckIfIBelongTo (Hie_CTR,Gbl.Hierarchy.Node[Hie_CTR].HieCod)) + if (Hie_CheckIfIBelongTo (Hie_CTR,Gbl.Hierarchy.Node[Hie_CTR].HieCod) == Usr_BELONG) { *ScopesAllowed |= 1 << Hie_CTR; - if (Hie_CheckIfIBelongTo (Hie_DEG,Gbl.Hierarchy.Node[Hie_DEG].HieCod)) + if (Hie_CheckIfIBelongTo (Hie_DEG,Gbl.Hierarchy.Node[Hie_DEG].HieCod) == Usr_BELONG) *ScopesAllowed |= 1 << Hie_DEG; } } @@ -937,19 +942,19 @@ static void Svy_SetAllowedAndHiddenScopes (unsigned *ScopesAllowed, case Rol_STD: // Student in current course ************************** *ScopesAllowed = 1 << Hie_SYS; *HiddenAllowed = 0; - if (Hie_CheckIfIBelongTo (Hie_CTY,Gbl.Hierarchy.Node[Hie_CTY].HieCod)) + if (Hie_CheckIfIBelongTo (Hie_CTY,Gbl.Hierarchy.Node[Hie_CTY].HieCod) == Usr_BELONG) { *ScopesAllowed |= 1 << Hie_CTY; - if (Hie_CheckIfIBelongTo (Hie_INS,Gbl.Hierarchy.Node[Hie_INS].HieCod)) + if (Hie_CheckIfIBelongTo (Hie_INS,Gbl.Hierarchy.Node[Hie_INS].HieCod) == Usr_BELONG) { *ScopesAllowed |= 1 << Hie_INS; - if (Hie_CheckIfIBelongTo (Hie_CTR,Gbl.Hierarchy.Node[Hie_CTR].HieCod)) + if (Hie_CheckIfIBelongTo (Hie_CTR,Gbl.Hierarchy.Node[Hie_CTR].HieCod) == Usr_BELONG) { *ScopesAllowed |= 1 << Hie_CTR; - if (Hie_CheckIfIBelongTo (Hie_DEG,Gbl.Hierarchy.Node[Hie_DEG].HieCod)) + if (Hie_CheckIfIBelongTo (Hie_DEG,Gbl.Hierarchy.Node[Hie_DEG].HieCod) == Usr_BELONG) { *ScopesAllowed |= 1 << Hie_DEG; - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG) *ScopesAllowed |= 1 << Hie_CRS; } } @@ -960,19 +965,19 @@ static void Svy_SetAllowedAndHiddenScopes (unsigned *ScopesAllowed, case Rol_TCH: // Teacher in current course ************************** *ScopesAllowed = 1 << Hie_SYS; *HiddenAllowed = 0; - if (Hie_CheckIfIBelongTo (Hie_CTY,Gbl.Hierarchy.Node[Hie_CTY].HieCod)) + if (Hie_CheckIfIBelongTo (Hie_CTY,Gbl.Hierarchy.Node[Hie_CTY].HieCod) == Usr_BELONG) { *ScopesAllowed |= 1 << Hie_CTY; - if (Hie_CheckIfIBelongTo (Hie_INS,Gbl.Hierarchy.Node[Hie_INS].HieCod)) + if (Hie_CheckIfIBelongTo (Hie_INS,Gbl.Hierarchy.Node[Hie_INS].HieCod) == Usr_BELONG) { *ScopesAllowed |= 1 << Hie_INS; - if (Hie_CheckIfIBelongTo (Hie_CTR,Gbl.Hierarchy.Node[Hie_CTR].HieCod)) + if (Hie_CheckIfIBelongTo (Hie_CTR,Gbl.Hierarchy.Node[Hie_CTR].HieCod) == Usr_BELONG) { *ScopesAllowed |= 1 << Hie_CTR; - if (Hie_CheckIfIBelongTo (Hie_DEG,Gbl.Hierarchy.Node[Hie_DEG].HieCod)) + if (Hie_CheckIfIBelongTo (Hie_DEG,Gbl.Hierarchy.Node[Hie_DEG].HieCod) == Usr_BELONG) { *ScopesAllowed |= 1 << Hie_DEG; - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG) { *ScopesAllowed |= 1 << Hie_CRS; *HiddenAllowed |= 1 << Hie_CRS; // A non-editing teacher or teacher can view hidden course surveys @@ -1122,7 +1127,8 @@ void Svy_GetSurveyDataByCod (struct Svy_Survey *Svy) switch (Svy->Level) { case Hie_SYS: // System - Svy->Status.IBelongToScope = Gbl.Usrs.Me.Logged; + Svy->Status.IBelongToScope = Gbl.Usrs.Me.Logged ? Usr_BELONG : + Usr_DONT_BELONG; break; case Hie_CTY: // Country case Hie_INS: // Institution @@ -1131,8 +1137,9 @@ void Svy_GetSurveyDataByCod (struct Svy_Survey *Svy) Svy->Status.IBelongToScope = Hie_CheckIfIBelongTo (Svy->Level,Svy->HieCod); break; case Hie_CRS: // Course - Svy->Status.IBelongToScope = Hie_CheckIfIBelongTo (Svy->Level,Svy->HieCod) && - Svy_DB_CheckIfICanDoThisSurveyBasedOnGrps (Svy->SvyCod) == Usr_I_CAN; + Svy->Status.IBelongToScope = (Hie_CheckIfIBelongTo (Svy->Level,Svy->HieCod) == Usr_BELONG && + Svy_DB_CheckIfICanDoThisSurveyBasedOnGrps (Svy->SvyCod) == Usr_CAN) ? Usr_BELONG : + Usr_DONT_BELONG; break; default: // Unknown Err_WrongHierarchyLevelExit (); @@ -1143,99 +1150,111 @@ void Svy_GetSurveyDataByCod (struct Svy_Survey *Svy) Svy->Status.IHaveAnswered = Svy_DB_CheckIfIHaveAnsweredSvy (Svy->SvyCod); /* Can I answer survey? */ - Svy->Status.ICanAnswer = ( Svy->NumQsts != 0) && + Svy->Status.ICanAnswer = ( Svy->NumQsts && Svy->Status.HiddenOrVisible == HidVis_VISIBLE && Svy->Status.ClosedOrOpen == CloOpe_OPEN && Svy->Status.IAmLoggedWithAValidRoleToAnswer && - Svy->Status.IBelongToScope && - !Svy->Status.IHaveAnswered; + Svy->Status.IBelongToScope == Usr_BELONG && + !Svy->Status.IHaveAnswered) ? Usr_CAN : + Usr_CAN_NOT; /* Can I view results of the survey? Can I edit survey? */ switch (Gbl.Usrs.Me.Role.Logged) { case Rol_STD: - Svy->Status.ICanViewResults = (Svy->Level == Hie_CRS || - Svy->Level == Hie_DEG || - Svy->Level == Hie_CTR || - Svy->Level == Hie_INS || - Svy->Level == Hie_CTY || - Svy->Level == Hie_SYS) && - (Svy->NumQsts != 0) && - Svy->Status.HiddenOrVisible == HidVis_VISIBLE && - Svy->Status.ClosedOrOpen == CloOpe_OPEN && - Svy->Status.IAmLoggedWithAValidRoleToAnswer && - Svy->Status.IBelongToScope && - Svy->Status.IHaveAnswered; - Svy->Status.ICanViewComments = false; - Svy->Status.ICanEdit = false; + Svy->Status.ICanViewResults = ((Svy->Level == Hie_CRS || + Svy->Level == Hie_DEG || + Svy->Level == Hie_CTR || + Svy->Level == Hie_INS || + Svy->Level == Hie_CTY || + Svy->Level == Hie_SYS) && + Svy->NumQsts && + Svy->Status.HiddenOrVisible == HidVis_VISIBLE && + Svy->Status.ClosedOrOpen == CloOpe_OPEN && + Svy->Status.IAmLoggedWithAValidRoleToAnswer && + Svy->Status.IBelongToScope == Usr_BELONG && + Svy->Status.IHaveAnswered) ? Usr_CAN : + Usr_CAN_NOT; + Svy->Status.ICanViewComments = Usr_CAN_NOT; + Svy->Status.ICanEdit = Usr_CAN_NOT; break; case Rol_NET: Svy->Status.ICanViewResults = - Svy->Status.ICanViewComments = (Svy->Level == Hie_CRS || - Svy->Level == Hie_DEG || - Svy->Level == Hie_CTR || - Svy->Level == Hie_INS || - Svy->Level == Hie_CTY || - Svy->Level == Hie_SYS) && - Svy->NumQsts != 0 && - !Svy->Status.ICanAnswer; - Svy->Status.ICanEdit = false; + Svy->Status.ICanViewComments = ((Svy->Level == Hie_CRS || + Svy->Level == Hie_DEG || + Svy->Level == Hie_CTR || + Svy->Level == Hie_INS || + Svy->Level == Hie_CTY || + Svy->Level == Hie_SYS) && + Svy->NumQsts && + Svy->Status.ICanAnswer == Usr_CAN_NOT) ? Usr_CAN : + Usr_CAN_NOT; + Svy->Status.ICanEdit = Usr_CAN_NOT; break; case Rol_TCH: Svy->Status.ICanViewResults = - Svy->Status.ICanViewComments = (Svy->Level == Hie_CRS || - Svy->Level == Hie_DEG || - Svy->Level == Hie_CTR || - Svy->Level == Hie_INS || - Svy->Level == Hie_CTY || - Svy->Level == Hie_SYS) && - Svy->NumQsts != 0 && - !Svy->Status.ICanAnswer; - Svy->Status.ICanEdit = Svy->Level == Hie_CRS; // && Svy->Status.IBelongToScope + Svy->Status.ICanViewComments = ((Svy->Level == Hie_CRS || + Svy->Level == Hie_DEG || + Svy->Level == Hie_CTR || + Svy->Level == Hie_INS || + Svy->Level == Hie_CTY || + Svy->Level == Hie_SYS) && + Svy->NumQsts && + Svy->Status.ICanAnswer == Usr_CAN_NOT) ? Usr_CAN : + Usr_CAN_NOT; + Svy->Status.ICanEdit = (Svy->Level == Hie_CRS) ? Usr_CAN : + Usr_CAN_NOT; break; case Rol_DEG_ADM: Svy->Status.ICanViewResults = - Svy->Status.ICanViewComments = (Svy->Level == Hie_DEG || - Svy->Level == Hie_CTR || - Svy->Level == Hie_INS || - Svy->Level == Hie_CTY || - Svy->Level == Hie_SYS) && - (Svy->NumQsts != 0) && - !Svy->Status.ICanAnswer; - Svy->Status.ICanEdit = Svy->Level == Hie_DEG && - Svy->Status.IBelongToScope; + Svy->Status.ICanViewComments = ((Svy->Level == Hie_DEG || + Svy->Level == Hie_CTR || + Svy->Level == Hie_INS || + Svy->Level == Hie_CTY || + Svy->Level == Hie_SYS) && + Svy->NumQsts && + Svy->Status.ICanAnswer == Usr_CAN_NOT) ? Usr_CAN : + Usr_CAN_NOT; + Svy->Status.ICanEdit = (Svy->Level == Hie_DEG && + Svy->Status.IBelongToScope == Usr_BELONG) ? Usr_CAN : + Usr_CAN_NOT; break; case Rol_CTR_ADM: Svy->Status.ICanViewResults = - Svy->Status.ICanViewComments = (Svy->Level == Hie_CTR || - Svy->Level == Hie_INS || - Svy->Level == Hie_CTY || - Svy->Level == Hie_SYS) && - (Svy->NumQsts != 0) && - !Svy->Status.ICanAnswer; - Svy->Status.ICanEdit = Svy->Level == Hie_CTR && - Svy->Status.IBelongToScope; + Svy->Status.ICanViewComments = ((Svy->Level == Hie_CTR || + Svy->Level == Hie_INS || + Svy->Level == Hie_CTY || + Svy->Level == Hie_SYS) && + Svy->NumQsts && + Svy->Status.ICanAnswer == Usr_CAN_NOT) ? Usr_CAN : + Usr_CAN_NOT; + Svy->Status.ICanEdit = (Svy->Level == Hie_CTR && + Svy->Status.IBelongToScope == Usr_BELONG) ? Usr_CAN : + Usr_CAN_NOT; break; case Rol_INS_ADM: Svy->Status.ICanViewResults = - Svy->Status.ICanViewComments = (Svy->Level == Hie_INS || - Svy->Level == Hie_CTY || - Svy->Level == Hie_SYS) && - (Svy->NumQsts != 0) && - !Svy->Status.ICanAnswer; - Svy->Status.ICanEdit = Svy->Level == Hie_INS && - Svy->Status.IBelongToScope; + Svy->Status.ICanViewComments = ((Svy->Level == Hie_INS || + Svy->Level == Hie_CTY || + Svy->Level == Hie_SYS) && + Svy->NumQsts && + Svy->Status.ICanAnswer == Usr_CAN_NOT) ? Usr_CAN : + Usr_CAN_NOT; + Svy->Status.ICanEdit = (Svy->Level == Hie_INS && + Svy->Status.IBelongToScope == Usr_BELONG) ? Usr_CAN : + Usr_CAN_NOT; break; case Rol_SYS_ADM: Svy->Status.ICanViewResults = - Svy->Status.ICanViewComments = (Svy->NumQsts != 0); - Svy->Status.ICanEdit = true; + Svy->Status.ICanViewComments = Svy->NumQsts ? Usr_CAN : + Usr_CAN_NOT; + Svy->Status.ICanEdit = Usr_CAN; break; default: - Svy->Status.ICanViewResults = false; - Svy->Status.ICanViewComments = false; - Svy->Status.ICanEdit = false; + Svy->Status.ICanViewResults = Usr_CAN_NOT; + Svy->Status.ICanViewComments = Usr_CAN_NOT; + Svy->Status.ICanEdit = Usr_CAN_NOT; break; } } @@ -1254,12 +1273,12 @@ void Svy_GetSurveyDataByCod (struct Svy_Survey *Svy) Svy->Status.HiddenOrVisible = HidVis_VISIBLE; Svy->Status.ClosedOrOpen = CloOpe_CLOSED; Svy->Status.IAmLoggedWithAValidRoleToAnswer = false; - Svy->Status.IBelongToScope = false; + Svy->Status.IBelongToScope = Usr_DONT_BELONG; Svy->Status.IHaveAnswered = false; - Svy->Status.ICanAnswer = false; - Svy->Status.ICanViewResults = false; - Svy->Status.ICanViewComments = false; - Svy->Status.ICanEdit = false; + Svy->Status.ICanAnswer = Usr_CAN_NOT; + Svy->Status.ICanViewResults = Usr_CAN_NOT; + Svy->Status.ICanViewComments = Usr_CAN_NOT; + Svy->Status.ICanEdit = Usr_CAN_NOT; } /***** Free structure that stores the query result *****/ @@ -1341,7 +1360,7 @@ void Svy_AskRemSurvey (void) /***** Get data of the survey from database *****/ Svy_GetSurveyDataByCod (&Surveys.Svy); - if (!Surveys.Svy.Status.ICanEdit) + if (Surveys.Svy.Status.ICanEdit == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Show question and button to remove survey *****/ @@ -1376,7 +1395,7 @@ void Svy_RemoveSurvey (void) /***** Get data of the survey from database *****/ Svy_GetSurveyDataByCod (&Surveys.Svy); - if (!Surveys.Svy.Status.ICanEdit) + if (Surveys.Svy.Status.ICanEdit == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Remove all users in this survey *****/ @@ -1429,7 +1448,7 @@ void Svy_AskResetSurvey (void) /***** Get data of the survey from database *****/ Svy_GetSurveyDataByCod (&Surveys.Svy); - if (!Surveys.Svy.Status.ICanEdit) + if (Surveys.Svy.Status.ICanEdit == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Show question and button to reset survey *****/ @@ -1465,7 +1484,7 @@ void Svy_ResetSurvey (void) /***** Get data of the survey from database *****/ Svy_GetSurveyDataByCod (&Surveys.Svy); - if (!Surveys.Svy.Status.ICanEdit) + if (Surveys.Svy.Status.ICanEdit == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Remove all users in this survey *****/ @@ -1515,7 +1534,7 @@ static void Svy_HideUnhideSurvey (HidVis_HiddenOrVisible_t HiddenOrVisible) /***** Get data of the survey from database *****/ Svy_GetSurveyDataByCod (&Surveys.Svy); - if (!Surveys.Svy.Status.ICanEdit) + if (Surveys.Svy.Status.ICanEdit == Usr_CAN_NOT) Err_NoPermissionExit (); /***** Show survey *****/ @@ -1563,7 +1582,7 @@ void Svy_ReqCreatOrEditSvy (void) if (ItsANewSurvey) { /***** Put link (form) to create new survey *****/ - if (Svy_CheckIfICanCreateSvy () == Usr_I_CAN_NOT) + if (Svy_CheckIfICanCreateSvy () == Usr_CAN_NOT) Err_NoPermissionExit (); /* Initialize to empty survey */ @@ -1579,17 +1598,17 @@ void Svy_ReqCreatOrEditSvy (void) Surveys.Svy.Status.HiddenOrVisible = HidVis_VISIBLE; Surveys.Svy.Status.ClosedOrOpen = CloOpe_OPEN; Surveys.Svy.Status.IAmLoggedWithAValidRoleToAnswer = false; - Surveys.Svy.Status.IBelongToScope = false; + Surveys.Svy.Status.IBelongToScope = Usr_DONT_BELONG; Surveys.Svy.Status.IHaveAnswered = false; - Surveys.Svy.Status.ICanAnswer = false; - Surveys.Svy.Status.ICanViewResults = false; - Surveys.Svy.Status.ICanViewComments = false; + Surveys.Svy.Status.ICanAnswer = Usr_CAN_NOT; + Surveys.Svy.Status.ICanViewResults = Usr_CAN_NOT; + Surveys.Svy.Status.ICanViewComments = Usr_CAN_NOT; } else { /* Get data of the survey from database */ Svy_GetSurveyDataByCod (&Surveys.Svy); - if (!Surveys.Svy.Status.ICanEdit) + if (Surveys.Svy.Status.ICanEdit == Usr_CAN_NOT) Err_NoPermissionExit (); /* Get text of the survey from database */ @@ -1710,7 +1729,7 @@ void Svy_ReqCreatOrEditSvy (void) static void Svy_SetAllowedScopes (struct Svy_Survey *Svy) { - Usr_ICan_t ICanEdit = Usr_I_CAN_NOT; + Usr_Can_t ICanEdit = Usr_CAN_NOT; /***** Set allowed scopes *****/ Gbl.Scope.Allowed = 0; @@ -1725,7 +1744,7 @@ static void Svy_SetAllowedScopes (struct Svy_Survey *Svy) if (Svy->Level == Hie_CRS) { Gbl.Scope.Allowed = 1 << Hie_CRS; - ICanEdit = Usr_I_CAN; + ICanEdit = Usr_CAN; } } break; @@ -1735,7 +1754,7 @@ static void Svy_SetAllowedScopes (struct Svy_Survey *Svy) if (Svy->Level == Hie_DEG) { Gbl.Scope.Allowed = 1 << Hie_DEG; - ICanEdit = Usr_I_CAN; + ICanEdit = Usr_CAN; } break; case Rol_CTR_ADM: // Center admins only can edit center surveys @@ -1744,7 +1763,7 @@ static void Svy_SetAllowedScopes (struct Svy_Survey *Svy) if (Svy->Level == Hie_CTR) { Gbl.Scope.Allowed = 1 << Hie_CTR; - ICanEdit = Usr_I_CAN; + ICanEdit = Usr_CAN; } break; case Rol_INS_ADM: // Institution admins only can edit institution surveys @@ -1753,7 +1772,7 @@ static void Svy_SetAllowedScopes (struct Svy_Survey *Svy) if (Svy->Level == Hie_INS) { Gbl.Scope.Allowed = 1 << Hie_INS; - ICanEdit = Usr_I_CAN; + ICanEdit = Usr_CAN; } break; case Rol_SYS_ADM:// System admins can edit any survey @@ -1767,13 +1786,13 @@ static void Svy_SetAllowedScopes (struct Svy_Survey *Svy) 1 << Hie_CTR | 1 << Hie_DEG | 1 << Hie_CRS; - ICanEdit = Usr_I_CAN; + ICanEdit = Usr_CAN; break; default: break; } - if (ICanEdit == Usr_I_CAN_NOT) + if (ICanEdit == Usr_CAN_NOT) Err_NoPermissionExit (); } @@ -1869,7 +1888,7 @@ void Svy_ReceiveSurvey (void) /* Get data of the old (current) survey from database */ OldSvy.SvyCod = NewSvy.SvyCod; Svy_GetSurveyDataByCod (&OldSvy); - if (!OldSvy.Status.ICanEdit) + if (OldSvy.Status.ICanEdit == Usr_CAN_NOT) Err_NoPermissionExit (); NewSvy.Level = OldSvy.Level; } @@ -2574,16 +2593,16 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys) Gbl.Action.Act == ActEdiOneSvyQst || Gbl.Action.Act == ActNewSvyQst || Gbl.Action.Act == ActChgSvyQst); - Frm_PutForm_t PutFormAnswerSurvey = (Surveys->Svy.Status.ICanAnswer && + Frm_PutForm_t PutFormAnswerSurvey = (Surveys->Svy.Status.ICanAnswer == Usr_CAN && !Editing) ? Frm_PUT_FORM : Frm_DONT_PUT_FORM; /***** Begin box *****/ Box_BoxBegin (Txt_Questions, - Surveys->Svy.Status.ICanEdit ? Svy_PutIconToAddNewQuestion : - NULL, - Surveys->Svy.Status.ICanEdit ? Surveys : - NULL, + (Surveys->Svy.Status.ICanEdit == Usr_CAN) ? Svy_PutIconToAddNewQuestion : + NULL, + (Surveys->Svy.Status.ICanEdit == Usr_CAN) ? Surveys : + NULL, Hlp_ANALYTICS_Surveys_questions,Box_NOT_CLOSABLE); /***** Get data of questions from database *****/ @@ -2600,7 +2619,7 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys) HTM_TABLE_Begin ("TBL_SCROLL"); HTM_TR_Begin (NULL); - if (Surveys->Svy.Status.ICanEdit) + if (Surveys->Svy.Status.ICanEdit == Usr_CAN) HTM_TH_Empty (1); HTM_TH (Txt_No_INDEX,HTM_HEAD_CENTER); HTM_TH (Txt_Type ,HTM_HEAD_CENTER); @@ -2620,7 +2639,7 @@ static void Svy_ListSvyQuestions (struct Svy_Surveys *Surveys) HTM_TR_Begin (NULL); - if (Surveys->Svy.Status.ICanEdit) + if (Surveys->Svy.Status.ICanEdit == Usr_CAN) { HTM_TD_Begin ("class=\"BT %s\"",The_GetColorRows ()); @@ -2861,7 +2880,7 @@ static void Svy_WriteAnswersOfAQst (struct Svy_Survey *Svy, HTM_TD_End (); /* Show stats of this answer */ - if (Svy->Status.ICanViewResults) + if (Svy->Status.ICanViewResults == Usr_CAN) Svy_DrawBarNumUsrs (NumUsrsThisAnswer,Svy->NumUsrs); HTM_TR_End (); @@ -2896,7 +2915,7 @@ static void Svy_WriteCommentsOfAQst (struct Svy_Survey *Svy, switch (PutFormAnswerSurvey) { case Frm_DONT_PUT_FORM: - if (Svy->Status.ICanViewComments) + if (Svy->Status.ICanViewComments == Usr_CAN) { HTM_DL_Begin (); diff --git a/swad_survey.h b/swad_survey.h index 2807248ba..81e905308 100644 --- a/swad_survey.h +++ b/swad_survey.h @@ -56,12 +56,12 @@ struct Svy_Survey HidVis_HiddenOrVisible_t HiddenOrVisible; // Survey is hidden or visible? CloOpe_ClosedOrOpen_t ClosedOrOpen; // Start date <= now <= end date bool IAmLoggedWithAValidRoleToAnswer; // I am logged with a valid role to answer this survey - bool IBelongToScope; // I belong to the scope of this survey - bool IHaveAnswered; // I have already answered this survey - bool ICanAnswer; - bool ICanViewResults; - bool ICanViewComments; - bool ICanEdit; + Usr_Belong_t IBelongToScope; // I belong to the scope of this survey + bool IHaveAnswered; // I have already answered this survey + Usr_Can_t ICanAnswer; + Usr_Can_t ICanViewResults; + Usr_Can_t ICanViewComments; + Usr_Can_t ICanEdit; } Status; }; diff --git a/swad_survey_database.c b/swad_survey_database.c index a8e912dcf..3881658cc 100644 --- a/swad_survey_database.c +++ b/swad_survey_database.c @@ -743,7 +743,7 @@ unsigned Svy_DB_GetGrpNamesAssociatedToSvy (MYSQL_RES **mysql_res,long SvyCod) /************ Check if I belong to any of the groups of a survey *************/ /*****************************************************************************/ -Usr_ICan_t Svy_DB_CheckIfICanDoThisSurveyBasedOnGrps (long SvyCod) +Usr_Can_t Svy_DB_CheckIfICanDoThisSurveyBasedOnGrps (long SvyCod) { return DB_QueryEXISTS ("can not check if I can do a survey", @@ -762,8 +762,8 @@ Usr_ICan_t Svy_DB_CheckIfICanDoThisSurveyBasedOnGrps (long SvyCod) " WHERE grp_users.UsrCod=%ld" " AND grp_users.GrpCod=svy_groups.GrpCod)))", SvyCod, - Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Gbl.Usrs.Me.UsrDat.UsrCod) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ diff --git a/swad_survey_database.h b/swad_survey_database.h index 9abeec3d8..f9a922a8f 100644 --- a/swad_survey_database.h +++ b/swad_survey_database.h @@ -66,7 +66,7 @@ void Svy_DB_RemoveSvysIn (Hie_Level_t Level,long HieCod); void Svy_DB_CreateGrp (long SvyCod,long GrpCod); unsigned Svy_DB_GetGrpNamesAssociatedToSvy (MYSQL_RES **mysql_res,long SvyCod); -Usr_ICan_t Svy_DB_CheckIfICanDoThisSurveyBasedOnGrps (long SvyCod); +Usr_Can_t Svy_DB_CheckIfICanDoThisSurveyBasedOnGrps (long SvyCod); void Svy_DB_RemoveGroupsOfType (long GrpTypCod); void Svy_DB_RemoveGroup (long GrpCod); diff --git a/swad_tab.c b/swad_tab.c index 7bbb080cc..666ebfeff 100644 --- a/swad_tab.c +++ b/swad_tab.c @@ -43,7 +43,7 @@ extern struct Globals Gbl; /***************************** Private prototypes ****************************/ /*****************************************************************************/ -static Usr_ICan_t Tab_CheckIfICanViewTab (Tab_Tab_t Tab); +static Usr_Can_t Tab_CheckIfICanViewTab (Tab_Tab_t Tab); static const char *Tab_GetIcon (Tab_Tab_t Tab); /*****************************************************************************/ @@ -79,7 +79,7 @@ void Tab_DrawTabs (void) Tab_DisableIncompatibleTabs (); } - if (Tab_CheckIfICanViewTab (NumTab) == Usr_I_CAN) // Don't show the first hidden tabs + if (Tab_CheckIfICanViewTab (NumTab) == Usr_CAN) // Don't show the first hidden tabs { TabTxt = Tab_GetTxt (NumTab); @@ -130,40 +130,40 @@ void Tab_DrawTabs (void) /************************* Check if I can view a tab *************************/ /*****************************************************************************/ -static Usr_ICan_t Tab_CheckIfICanViewTab (Tab_Tab_t Tab) +static Usr_Can_t Tab_CheckIfICanViewTab (Tab_Tab_t Tab) { switch (Tab) { case TabUnk: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; case TabSys: - return (Gbl.Hierarchy.Level == Hie_SYS) ? Usr_I_CAN : // Institution selected - Usr_I_CAN_NOT; + return (Gbl.Hierarchy.Level == Hie_SYS) ? Usr_CAN : // Institution selected + Usr_CAN_NOT; case TabCty: - return (Gbl.Hierarchy.Level == Hie_CTY) ? Usr_I_CAN : // Institution selected - Usr_I_CAN_NOT; + return (Gbl.Hierarchy.Level == Hie_CTY) ? Usr_CAN : // Institution selected + Usr_CAN_NOT; case TabIns: - return (Gbl.Hierarchy.Level == Hie_INS) ? Usr_I_CAN : // Institution selected - Usr_I_CAN_NOT; + return (Gbl.Hierarchy.Level == Hie_INS) ? Usr_CAN : // Institution selected + Usr_CAN_NOT; case TabCtr: - return (Gbl.Hierarchy.Level == Hie_CTR) ? Usr_I_CAN : // Center selected - Usr_I_CAN_NOT; + return (Gbl.Hierarchy.Level == Hie_CTR) ? Usr_CAN : // Center selected + Usr_CAN_NOT; case TabDeg: - return (Gbl.Hierarchy.Level == Hie_DEG) ? Usr_I_CAN : // Degree selected - Usr_I_CAN_NOT; + return (Gbl.Hierarchy.Level == Hie_DEG) ? Usr_CAN : // Degree selected + Usr_CAN_NOT; case TabCrs: - return (Gbl.Hierarchy.Level == Hie_CRS) ? Usr_I_CAN : // Course selected - Usr_I_CAN_NOT; + return (Gbl.Hierarchy.Level == Hie_CRS) ? Usr_CAN : // Course selected + Usr_CAN_NOT; case TabAss: return (Gbl.Hierarchy.Level == Hie_CRS && // Course selected - Gbl.Usrs.Me.Role.Logged >= Rol_STD) ? Usr_I_CAN : // I belong to course or I am an admin - Usr_I_CAN_NOT; + Gbl.Usrs.Me.Role.Logged >= Rol_STD) ? Usr_CAN : // I belong to course or I am an admin + Usr_CAN_NOT; case TabFil: return (Gbl.Hierarchy.Node[Hie_INS].HieCod > 0 || // Institution selected - Gbl.Usrs.Me.Logged) ? Usr_I_CAN : // I'm logged - Usr_I_CAN_NOT; + Gbl.Usrs.Me.Logged) ? Usr_CAN : // I'm logged + Usr_CAN_NOT; default: - return Usr_I_CAN; + return Usr_CAN; } } diff --git a/swad_test.c b/swad_test.c index e558add70..36a5418d3 100644 --- a/swad_test.c +++ b/swad_test.c @@ -363,7 +363,7 @@ void Tst_AssessTest (void) Lay_WriteHeaderClassPhoto (Vie_VIEW); /***** Header *****/ - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG) { HTM_DIV_Begin ("class=\"Tst_SUBTITLE DAT_%s\"", The_GetSuffix ()); diff --git a/swad_test_database.c b/swad_test_database.c index cc1d01895..ea4b6db1d 100644 --- a/swad_test_database.c +++ b/swad_test_database.c @@ -58,7 +58,7 @@ extern struct Globals Gbl; void Tst_DB_IncreaseNumMyPrints (void) { /***** Trivial check: do I belong to current course? *****/ - if (!Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_DONT_BELONG) return; /***** Update my number of accesses to test in this course *****/ diff --git a/swad_test_print.c b/swad_test_print.c index d89e5e67f..818967c6f 100644 --- a/swad_test_print.c +++ b/swad_test_print.c @@ -60,8 +60,8 @@ struct TstRes_ICanView { - Usr_ICan_t Result; - Usr_ICan_t Score; + Usr_Can_t Result; + Usr_Can_t Score; }; /*****************************************************************************/ @@ -126,31 +126,31 @@ static void TstPrn_GetCorrectAndComputeTxtAnsScore (struct TstPrn_PrintedQuestio static void TstPrn_WriteIntAnsPrint (struct Usr_Data *UsrDat, const struct TstPrn_PrintedQuestion *PrintedQuestion, struct Qst_Question *Question, - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], __attribute__((unused)) const char *ClassTxt, __attribute__((unused)) const char *ClassFeedback); static void TstPrn_WriteFltAnsPrint (struct Usr_Data *UsrDat, const struct TstPrn_PrintedQuestion *PrintedQuestion, struct Qst_Question *Question, - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], __attribute__((unused)) const char *ClassTxt, __attribute__((unused)) const char *ClassFeedback); static void TstPrn_WriteTF_AnsPrint (struct Usr_Data *UsrDat, const struct TstPrn_PrintedQuestion *PrintedQuestion, struct Qst_Question *Question, - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], __attribute__((unused)) const char *ClassTxt, __attribute__((unused)) const char *ClassFeedback); static void TstPrn_WriteChoAnsPrint (struct Usr_Data *UsrDat, const struct TstPrn_PrintedQuestion *PrintedQuestion, struct Qst_Question *Question, - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], const char *ClassTxt, const char *ClassFeedback); static void TstPrn_WriteTxtAnsPrint (struct Usr_Data *UsrDat, const struct TstPrn_PrintedQuestion *PrintedQuestion, struct Qst_Question *Question, - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], __attribute__((unused)) const char *ClassTxt, __attribute__((unused)) const char *ClassFeedback); //----------------------------------------------------------------------------- @@ -605,20 +605,20 @@ static void TstPrn_WriteQstAndAnsExam (struct Usr_Data *UsrDat, extern const char *Txt_Question_removed; extern const char *Txt_Question_modified; bool QuestionUneditedAfterExam = false; - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY]; + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY]; /***** Check if I can view each part of the question *****/ switch (Gbl.Usrs.Me.Role.Logged) { case Rol_STD: - ICanView[TstVis_VISIBLE_QST_ANS_TXT ] = TstVis_IsVisibleQstAndAnsTxt (Visibility) ? Usr_I_CAN : - Usr_I_CAN_NOT; - ICanView[TstVis_VISIBLE_FEEDBACK_TXT ] = TstVis_IsVisibleFeedbackTxt (Visibility) ? Usr_I_CAN : - Usr_I_CAN_NOT; - ICanView[TstVis_VISIBLE_CORRECT_ANSWER] = TstVis_IsVisibleCorrectAns (Visibility) ? Usr_I_CAN : - Usr_I_CAN_NOT; - ICanView[TstVis_VISIBLE_EACH_QST_SCORE] = TstVis_IsVisibleEachQstScore (Visibility) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanView[TstVis_VISIBLE_QST_ANS_TXT ] = TstVis_IsVisibleQstAndAnsTxt (Visibility) ? Usr_CAN : + Usr_CAN_NOT; + ICanView[TstVis_VISIBLE_FEEDBACK_TXT ] = TstVis_IsVisibleFeedbackTxt (Visibility) ? Usr_CAN : + Usr_CAN_NOT; + ICanView[TstVis_VISIBLE_CORRECT_ANSWER] = TstVis_IsVisibleCorrectAns (Visibility) ? Usr_CAN : + Usr_CAN_NOT; + ICanView[TstVis_VISIBLE_EACH_QST_SCORE] = TstVis_IsVisibleEachQstScore (Visibility) ? Usr_CAN : + Usr_CAN_NOT; break; case Rol_NET: case Rol_TCH: @@ -629,13 +629,13 @@ static void TstPrn_WriteQstAndAnsExam (struct Usr_Data *UsrDat, ICanView[TstVis_VISIBLE_QST_ANS_TXT ] = ICanView[TstVis_VISIBLE_FEEDBACK_TXT ] = ICanView[TstVis_VISIBLE_CORRECT_ANSWER] = - ICanView[TstVis_VISIBLE_EACH_QST_SCORE] = Usr_I_CAN; + ICanView[TstVis_VISIBLE_EACH_QST_SCORE] = Usr_CAN; break; default: ICanView[TstVis_VISIBLE_QST_ANS_TXT ] = ICanView[TstVis_VISIBLE_FEEDBACK_TXT ] = ICanView[TstVis_VISIBLE_CORRECT_ANSWER] = - ICanView[TstVis_VISIBLE_EACH_QST_SCORE] = Usr_I_CAN_NOT; + ICanView[TstVis_VISIBLE_EACH_QST_SCORE] = Usr_CAN_NOT; break; } @@ -667,7 +667,7 @@ static void TstPrn_WriteQstAndAnsExam (struct Usr_Data *UsrDat, ICanView[TstVis_VISIBLE_QST_ANS_TXT]); /* Media */ - if (ICanView[TstVis_VISIBLE_QST_ANS_TXT] == Usr_I_CAN) + if (ICanView[TstVis_VISIBLE_QST_ANS_TXT] == Usr_CAN) Med_ShowMedia (&Question->Media, "Tst_MED_SHOW_CONT", "Tst_MED_SHOW"); @@ -678,7 +678,7 @@ static void TstPrn_WriteQstAndAnsExam (struct Usr_Data *UsrDat, ICanView,"Qst_TXT","Qst_TXT_LIGHT"); /* Write score retrieved from database */ - if (ICanView[TstVis_VISIBLE_EACH_QST_SCORE] == Usr_I_CAN) + if (ICanView[TstVis_VISIBLE_EACH_QST_SCORE] == Usr_CAN) { HTM_DIV_Begin ("class=\"LM DAT_SMALL_%s\"",The_GetSuffix ()); HTM_TxtColonNBSP (Txt_Score); @@ -701,7 +701,7 @@ static void TstPrn_WriteQstAndAnsExam (struct Usr_Data *UsrDat, /* Question feedback */ if (QuestionUneditedAfterExam) - if (ICanView[TstVis_VISIBLE_FEEDBACK_TXT] == Usr_I_CAN) + if (ICanView[TstVis_VISIBLE_FEEDBACK_TXT] == Usr_CAN) Qst_WriteQstFeedback (Question->Feedback,"Qst_TXT_LIGHT"); HTM_TD_End (); @@ -1172,14 +1172,14 @@ void TstPrn_ShowGrade (double Grade,double MaxGrade) void TstPrn_WriteAnswersExam (struct Usr_Data *UsrDat, const struct TstPrn_PrintedQuestion *PrintedQuestion, struct Qst_Question *Question, - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], const char *ClassTxt, const char *ClassFeedback) { void (*TstPrn_WriteAnsExam[Qst_NUM_ANS_TYPES]) (struct Usr_Data *UsrDat, const struct TstPrn_PrintedQuestion *PrintedQuestion, struct Qst_Question *Question, - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], const char *ClassTxt, const char *ClassFeedback) = { @@ -1203,7 +1203,7 @@ void TstPrn_WriteAnswersExam (struct Usr_Data *UsrDat, static void TstPrn_WriteIntAnsPrint (struct Usr_Data *UsrDat, const struct TstPrn_PrintedQuestion *PrintedQuestion, struct Qst_Question *Question, - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], __attribute__((unused)) const char *ClassTxt, __attribute__((unused)) const char *ClassFeedback) { @@ -1228,7 +1228,7 @@ static void TstPrn_WriteIntAnsPrint (struct Usr_Data *UsrDat, if (sscanf (PrintedQuestion->StrAnswers,"%ld",&IntAnswerUsr) == 1) { HTM_TD_Begin ("class=\"CM %s_%s\"", - ICanView[TstVis_VISIBLE_CORRECT_ANSWER] == Usr_I_CAN ? + ICanView[TstVis_VISIBLE_CORRECT_ANSWER] == Usr_CAN ? (IntAnswerUsr == Question->Answer.Integer ? "Qst_ANS_OK" : // Correct "Qst_ANS_BAD") : // Wrong "Qst_ANS_0", // Blank answer @@ -1250,10 +1250,10 @@ static void TstPrn_WriteIntAnsPrint (struct Usr_Data *UsrDat, HTM_TD_Begin ("class=\"CM Qst_ANS_0_%s\"",The_GetSuffix ()); switch (ICanView[TstVis_VISIBLE_CORRECT_ANSWER]) { - case Usr_I_CAN: + case Usr_CAN: HTM_Long (Question->Answer.Integer); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1272,7 +1272,7 @@ static void TstPrn_WriteIntAnsPrint (struct Usr_Data *UsrDat, static void TstPrn_WriteFltAnsPrint (struct Usr_Data *UsrDat, const struct TstPrn_PrintedQuestion *PrintedQuestion, struct Qst_Question *Question, - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], __attribute__((unused)) const char *ClassTxt, __attribute__((unused)) const char *ClassFeedback) { @@ -1298,7 +1298,7 @@ static void TstPrn_WriteFltAnsPrint (struct Usr_Data *UsrDat, FloatAnsUsr = Str_GetDoubleFromStr (PrintedQuestion->StrAnswers); // A bad formatted floating point answer will interpreted as 0.0 HTM_TD_Begin ("class=\"CM %s_%s\"", - ICanView[TstVis_VISIBLE_CORRECT_ANSWER] == Usr_I_CAN ? + ICanView[TstVis_VISIBLE_CORRECT_ANSWER] == Usr_CAN ? ((FloatAnsUsr >= Question->Answer.FloatingPoint[0] && FloatAnsUsr <= Question->Answer.FloatingPoint[1]) ? "Qst_ANS_OK" : // Correct "Qst_ANS_BAD") : // Wrong @@ -1314,14 +1314,14 @@ static void TstPrn_WriteFltAnsPrint (struct Usr_Data *UsrDat, HTM_TD_Begin ("class=\"CM Qst_ANS_0_%s\"",The_GetSuffix ()); switch (ICanView[TstVis_VISIBLE_CORRECT_ANSWER]) { - case Usr_I_CAN: + case Usr_CAN: HTM_Txt ("["); HTM_Double (Question->Answer.FloatingPoint[0]); HTM_Txt ("; "); HTM_Double (Question->Answer.FloatingPoint[1]); HTM_Txt ("]"); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1340,7 +1340,7 @@ static void TstPrn_WriteFltAnsPrint (struct Usr_Data *UsrDat, static void TstPrn_WriteTF_AnsPrint (struct Usr_Data *UsrDat, const struct TstPrn_PrintedQuestion *PrintedQuestion, struct Qst_Question *Question, - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], __attribute__((unused)) const char *ClassTxt, __attribute__((unused)) const char *ClassFeedback) { @@ -1364,7 +1364,7 @@ static void TstPrn_WriteTF_AnsPrint (struct Usr_Data *UsrDat, /***** Write the user answer *****/ HTM_TD_Begin ("class=\"CM %s_%s\"", - ICanView[TstVis_VISIBLE_CORRECT_ANSWER] == Usr_I_CAN ? + ICanView[TstVis_VISIBLE_CORRECT_ANSWER] == Usr_CAN ? (AnsTFUsr == Question->Answer.TF ? "Qst_ANS_OK" : // Correct "Qst_ANS_BAD") : // Wrong "Qst_ANS_0", // Blank answer @@ -1376,10 +1376,10 @@ static void TstPrn_WriteTF_AnsPrint (struct Usr_Data *UsrDat, HTM_TD_Begin ("class=\"CM Qst_ANS_0_%s\"",The_GetSuffix ()); switch (ICanView[TstVis_VISIBLE_CORRECT_ANSWER]) { - case Usr_I_CAN: + case Usr_CAN: Qst_WriteAnsTF (Question->Answer.TF); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1398,7 +1398,7 @@ static void TstPrn_WriteTF_AnsPrint (struct Usr_Data *UsrDat, static void TstPrn_WriteChoAnsPrint (struct Usr_Data *UsrDat, const struct TstPrn_PrintedQuestion *PrintedQuestion, struct Qst_Question *Question, - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], const char *ClassTxt, const char *ClassFeedback) { @@ -1417,7 +1417,7 @@ static void TstPrn_WriteChoAnsPrint (struct Usr_Data *UsrDat, Qst_ChangeFormatAnswersText (Question); /***** Change format of answers feedback *****/ - if (ICanView[TstVis_VISIBLE_FEEDBACK_TXT] == Usr_I_CAN) + if (ICanView[TstVis_VISIBLE_FEEDBACK_TXT] == Usr_CAN) Qst_ChangeFormatAnswersFeedback (Question); /***** Get indexes for this question from string *****/ @@ -1446,7 +1446,7 @@ static void TstPrn_WriteChoAnsPrint (struct Usr_Data *UsrDat, { switch (ICanView[TstVis_VISIBLE_CORRECT_ANSWER]) { - case Usr_I_CAN: + case Usr_CAN: if (Question->Answer.Options[Indexes[NumOpt]].Correct) { Ans.Class = "Qst_ANS_OK"; // Correct @@ -1458,7 +1458,7 @@ static void TstPrn_WriteChoAnsPrint (struct Usr_Data *UsrDat, Ans.Str = "✗"; } break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ans.Class = "Qst_ANS_0"; // Blank answer Ans.Str = "•"; @@ -1476,7 +1476,7 @@ static void TstPrn_WriteChoAnsPrint (struct Usr_Data *UsrDat, /* Draw icon that indicates whether the answer is correct */ switch (ICanView[TstVis_VISIBLE_CORRECT_ANSWER]) { - case Usr_I_CAN: + case Usr_CAN: if (Question->Answer.Options[Indexes[NumOpt]].Correct) { HTM_TD_Begin ("class=\"CT Qst_ANS_0_%s\" title=\"%s\"", @@ -1488,7 +1488,7 @@ static void TstPrn_WriteChoAnsPrint (struct Usr_Data *UsrDat, else HTM_TD_Empty (1); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: HTM_TD_Begin ("class=\"CT Qst_ANS_0_%s\"",The_GetSuffix ()); Ico_PutIconNotVisible (); @@ -1507,20 +1507,20 @@ static void TstPrn_WriteChoAnsPrint (struct Usr_Data *UsrDat, HTM_DIV_Begin ("class=\"%s_%s\"",ClassTxt,The_GetSuffix ()); switch (ICanView[TstVis_VISIBLE_QST_ANS_TXT]) { - case Usr_I_CAN: + case Usr_CAN: HTM_Txt (Question->Answer.Options[Indexes[NumOpt]].Text); Med_ShowMedia (&Question->Answer.Options[Indexes[NumOpt]].Media, "Tst_MED_SHOW_CONT", "Tst_MED_SHOW"); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; } HTM_DIV_End (); - if (ICanView[TstVis_VISIBLE_CORRECT_ANSWER] == Usr_I_CAN) + if (ICanView[TstVis_VISIBLE_CORRECT_ANSWER] == Usr_CAN) if (Question->Answer.Options[Indexes[NumOpt]].Feedback) if (Question->Answer.Options[Indexes[NumOpt]].Feedback[0]) { @@ -1546,7 +1546,7 @@ static void TstPrn_WriteChoAnsPrint (struct Usr_Data *UsrDat, static void TstPrn_WriteTxtAnsPrint (struct Usr_Data *UsrDat, const struct TstPrn_PrintedQuestion *PrintedQuestion, struct Qst_Question *Question, - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], __attribute__((unused)) const char *ClassTxt, __attribute__((unused)) const char *ClassFeedback) { @@ -1559,7 +1559,7 @@ static void TstPrn_WriteTxtAnsPrint (struct Usr_Data *UsrDat, Qst_ChangeFormatAnswersText (Question); /***** Change format of answers feedback *****/ - if (ICanView[TstVis_VISIBLE_FEEDBACK_TXT] == Usr_I_CAN) + if (ICanView[TstVis_VISIBLE_FEEDBACK_TXT] == Usr_CAN) Qst_ChangeFormatAnswersFeedback (Question); /***** Begin table *****/ @@ -1600,7 +1600,7 @@ static void TstPrn_WriteTxtAnsPrint (struct Usr_Data *UsrDat, } } HTM_TD_Begin ("class=\"CT %s_%s\"", - ICanView[TstVis_VISIBLE_CORRECT_ANSWER] == Usr_I_CAN ? (Correct ? "Qst_ANS_OK" : // Correct + ICanView[TstVis_VISIBLE_CORRECT_ANSWER] == Usr_CAN ? (Correct ? "Qst_ANS_OK" : // Correct "Qst_ANS_BAD") : // Wrong "Qst_ANS_0", // Blank answer The_GetSuffix ()); @@ -1613,7 +1613,7 @@ static void TstPrn_WriteTxtAnsPrint (struct Usr_Data *UsrDat, /***** Write the correct answers *****/ switch (ICanView[TstVis_VISIBLE_CORRECT_ANSWER]) { - case Usr_I_CAN: + case Usr_CAN: HTM_TD_Begin ("class=\"CT\""); HTM_TABLE_BeginPadding (2); @@ -1637,7 +1637,7 @@ static void TstPrn_WriteTxtAnsPrint (struct Usr_Data *UsrDat, HTM_Txt (Question->Answer.Options[NumOpt].Text); HTM_DIV_End (); - if (ICanView[TstVis_VISIBLE_FEEDBACK_TXT] == Usr_I_CAN) + if (ICanView[TstVis_VISIBLE_FEEDBACK_TXT] == Usr_CAN) if (Question->Answer.Options[NumOpt].Feedback) if (Question->Answer.Options[NumOpt].Feedback[0]) { @@ -1654,7 +1654,7 @@ static void TstPrn_WriteTxtAnsPrint (struct Usr_Data *UsrDat, HTM_TABLE_End (); HTM_TD_End (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: HTM_TD_Begin ("class=\"CT Qst_ANS_0_%s\"",The_GetSuffix ()); Ico_PutIconNotVisible (); @@ -1808,7 +1808,7 @@ static void TstPrn_ShowUsrsPrints (__attribute__((unused)) void *Args) if (Usr_ChkUsrCodAndGetAllUsrDataFromUsrCod (&Gbl.Usrs.Other.UsrDat, Usr_DONT_GET_PREFS, Usr_DONT_GET_ROLE_IN_CRS)) - if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN) + if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_CAN) { /***** Show tests *****/ Gbl.Usrs.Other.UsrDat.Accepted = Enr_CheckIfUsrHasAcceptedInCurrentCrs (&Gbl.Usrs.Other.UsrDat); @@ -1943,7 +1943,7 @@ static void TstPrn_ShowUsrPrints (struct Usr_Data *UsrDat) } /* Accumulate questions and score */ - if (ICanView.Score == Usr_I_CAN) + if (ICanView.Score == Usr_CAN) { NumTotalQsts.All += Print.NumQsts.All; NumTotalQsts.NotBlank += Print.NumQsts.NotBlank; @@ -1955,10 +1955,10 @@ static void TstPrn_ShowUsrPrints (struct Usr_Data *UsrDat) ClassDat,The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Result) { - case Usr_I_CAN: + case Usr_CAN: HTM_Unsigned (Print.NumQsts.All); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1970,13 +1970,13 @@ static void TstPrn_ShowUsrPrints (struct Usr_Data *UsrDat) ClassDat,The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Result) { - case Usr_I_CAN: + case Usr_CAN: if (Print.NumQsts.NotBlank) HTM_Unsigned (Print.NumQsts.NotBlank); else HTM_Light0 (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -1988,14 +1988,14 @@ static void TstPrn_ShowUsrPrints (struct Usr_Data *UsrDat) ClassDat,The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Result) { - case Usr_I_CAN: + case Usr_CAN: NumQstsBlank = Print.NumQsts.All - Print.NumQsts.NotBlank; if (NumQstsBlank) HTM_Unsigned (NumQstsBlank); else HTM_Light0 (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -2007,12 +2007,12 @@ static void TstPrn_ShowUsrPrints (struct Usr_Data *UsrDat) ClassDat,The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: HTM_Double2Decimals (Print.Score); HTM_Txt ("/"); HTM_Unsigned (Print.NumQsts.All); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -2024,12 +2024,12 @@ static void TstPrn_ShowUsrPrints (struct Usr_Data *UsrDat) ClassDat,The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: HTM_Double2Decimals (Print.NumQsts.All ? Print.Score / (double) Print.NumQsts.All : 0.0); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -2041,11 +2041,11 @@ static void TstPrn_ShowUsrPrints (struct Usr_Data *UsrDat) ClassDat,The_GetSuffix (),The_GetColorRows ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: TstPrn_ComputeAndShowGrade (Print.NumQsts.All,Print.Score, Tst_SCORE_MAX); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -2056,7 +2056,7 @@ static void TstPrn_ShowUsrPrints (struct Usr_Data *UsrDat) HTM_TD_Begin ("class=\"RT LINE_LEFT %s\"",The_GetColorRows ()); switch (ICanView.Result) { - case Usr_I_CAN: + case Usr_CAN: Frm_BeginForm (Gbl.Action.Act == ActSeeMyTstResCrs ? ActSeeOneTstResMe : ActSeeOneTstResOth); ParCod_PutPar (ParCod_Prn,Print.PrnCod); @@ -2065,7 +2065,7 @@ static void TstPrn_ShowUsrPrints (struct Usr_Data *UsrDat) ActSeeOneTstResOth); Frm_EndForm (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -2134,14 +2134,14 @@ static void TstPrn_ShowPrintsSummaryRow (Usr_MeOrOther_t MeOrOther, double TotalScore) { extern const char *Txt_Visible_tests; - Usr_ICan_t ICanViewTotalScore; + Usr_Can_t ICanViewTotalScore; switch (Gbl.Usrs.Me.Role.Logged) { case Rol_STD: ICanViewTotalScore = (MeOrOther == Usr_ME && - TstVis_IsVisibleTotalScore (TstCfg_GetConfigVisibility ())) ? Usr_I_CAN : - Usr_I_CAN_NOT; + TstVis_IsVisibleTotalScore (TstCfg_GetConfigVisibility ())) ? Usr_CAN : + Usr_CAN_NOT; break; case Rol_NET: case Rol_TCH: @@ -2149,14 +2149,14 @@ static void TstPrn_ShowPrintsSummaryRow (Usr_MeOrOther_t MeOrOther, case Rol_CTR_ADM: case Rol_INS_ADM: ICanViewTotalScore = (MeOrOther == Usr_ME || - NumPrints) ? Usr_I_CAN : - Usr_I_CAN_NOT; + NumPrints) ? Usr_CAN : + Usr_CAN_NOT; break; case Rol_SYS_ADM: - ICanViewTotalScore = Usr_I_CAN; + ICanViewTotalScore = Usr_CAN; break; default: - ICanViewTotalScore = Usr_I_CAN_NOT; + ICanViewTotalScore = Usr_CAN_NOT; break; } @@ -2200,7 +2200,7 @@ static void TstPrn_ShowPrintsSummaryRow (Usr_MeOrOther_t MeOrOther, HTM_TD_Begin ("class=\"RM DAT_STRONG_%s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"", The_GetSuffix (), The_GetColorRows ()); - if (ICanViewTotalScore == Usr_I_CAN) + if (ICanViewTotalScore == Usr_CAN) { HTM_Double2Decimals (TotalScore); HTM_Txt ("/"); @@ -2212,7 +2212,7 @@ static void TstPrn_ShowPrintsSummaryRow (Usr_MeOrOther_t MeOrOther, HTM_TD_Begin ("class=\"RM DAT_STRONG_%s LINE_TOP LINE_BOTTOM %s\"", The_GetSuffix (), The_GetColorRows ()); - if (ICanViewTotalScore == Usr_I_CAN) + if (ICanViewTotalScore == Usr_CAN) HTM_Double2Decimals (NumTotalQsts->All ? TotalScore / (double) NumTotalQsts->All : 0.0); HTM_TD_End (); @@ -2221,7 +2221,7 @@ static void TstPrn_ShowPrintsSummaryRow (Usr_MeOrOther_t MeOrOther, HTM_TD_Begin ("class=\"RM DAT_STRONG_%s LINE_TOP LINE_BOTTOM LINE_LEFT %s\"", The_GetSuffix (), The_GetColorRows ()); - if (ICanViewTotalScore == Usr_I_CAN) + if (ICanViewTotalScore == Usr_CAN) TstPrn_ComputeAndShowGrade (NumTotalQsts->All,TotalScore,Tst_SCORE_MAX); HTM_TD_End (); @@ -2273,7 +2273,7 @@ void TstPrn_ShowOnePrint (void) if (Gbl.Usrs.Me.Role.Logged == Rol_STD) TstCfg_GetConfig (); // To get visibility TstRes_CheckIfICanSeePrintResult (&Print,Gbl.Usrs.Other.UsrDat.UsrCod,&ICanView); - if (ICanView.Result == Usr_I_CAN_NOT) // I am not allowed to view this test + if (ICanView.Result == Usr_CAN_NOT) // I am not allowed to view this test Err_NoPermissionExit (); /***** Get questions and user's answers of the test from database *****/ @@ -2294,7 +2294,7 @@ void TstPrn_ShowOnePrint (void) Usr_DONT_GET_PREFS, Usr_DONT_GET_ROLE_IN_CRS)) Err_WrongUserExit (); - if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_I_CAN_NOT) + if (Usr_CheckIfICanViewTstExaMchResult (&Gbl.Usrs.Other.UsrDat) == Usr_CAN_NOT) Err_NoPermissionExit (); /* User */ @@ -2388,14 +2388,14 @@ void TstPrn_ShowOnePrint (void) The_GetSuffix ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: HTM_STRONG_Begin (); HTM_Double2Decimals (Print.Score); HTM_Txt ("/"); HTM_Unsigned (Print.NumQsts.All); HTM_STRONG_End (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -2416,13 +2416,13 @@ void TstPrn_ShowOnePrint (void) The_GetSuffix ()); switch (ICanView.Score) { - case Usr_I_CAN: + case Usr_CAN: HTM_STRONG_Begin (); TstPrn_ComputeAndShowGrade (Print.NumQsts.All,Print.Score, Tst_SCORE_MAX); HTM_STRONG_End (); break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: Ico_PutIconNotVisible (); break; @@ -2474,18 +2474,18 @@ static void TstRes_CheckIfICanSeePrintResult (const struct TstPrn_Print *Print, case Rol_STD: // Depends on whether the print is sent or not // if the print is not sent ==> I can not view results - ICanView->Result = (Print->Sent && Usr_ItsMe (UsrCod) == Usr_ME) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanView->Result = (Print->Sent && Usr_ItsMe (UsrCod) == Usr_ME) ? Usr_CAN : + Usr_CAN_NOT; switch (ICanView->Result) { - case Usr_I_CAN: + case Usr_CAN: // Depends on 5 visibility icons associated to tests - ICanView->Score = TstVis_IsVisibleTotalScore (TstCfg_GetConfigVisibility ()) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanView->Score = TstVis_IsVisibleTotalScore (TstCfg_GetConfigVisibility ()) ? Usr_CAN : + Usr_CAN_NOT; break; - case Usr_I_CAN_NOT: + case Usr_CAN_NOT: default: - ICanView->Score = Usr_I_CAN_NOT; + ICanView->Score = Usr_CAN_NOT; break; } break; @@ -2499,16 +2499,16 @@ static void TstRes_CheckIfICanSeePrintResult (const struct TstPrn_Print *Print, // if teachers are not allowed ==> I can not view results (except if the print is mine) ICanView->Result = ICanView->Score = Print->Sent && - (Print->AllowTeachers || Usr_ItsMe (UsrCod) == Usr_ME) ? Usr_I_CAN : - Usr_I_CAN_NOT; + (Print->AllowTeachers || Usr_ItsMe (UsrCod) == Usr_ME) ? Usr_CAN : + Usr_CAN_NOT; break; case Rol_SYS_ADM: ICanView->Result = - ICanView->Score = Usr_I_CAN; + ICanView->Score = Usr_CAN; break; default: ICanView->Result = - ICanView->Score = Usr_I_CAN_NOT; + ICanView->Score = Usr_CAN_NOT; break; } } @@ -2709,7 +2709,7 @@ unsigned TstPrn_GetNumPrintsGeneratedByMe (void) unsigned NumRows; unsigned NumPrintsGeneratedByMe = 0; - if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_BELONG) { /***** Get number of test prints generated by me from database *****/ NumRows = Tst_DB_GetNumPrintsGeneratedByMe (&mysql_res); diff --git a/swad_test_print.h b/swad_test_print.h index 078410061..62387621c 100644 --- a/swad_test_print.h +++ b/swad_test_print.h @@ -131,7 +131,7 @@ void TstPrn_ShowGrade (double Grade,double MaxGrade); void TstPrn_WriteAnswersExam (struct Usr_Data *UsrDat, const struct TstPrn_PrintedQuestion *PrintedQuestion, struct Qst_Question *Question, - Usr_ICan_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], + Usr_Can_t ICanView[TstVis_NUM_ITEMS_VISIBILITY], const char *ClassTxt, const char *ClassFeedback); diff --git a/swad_timeline_comment.c b/swad_timeline_comment.c index 039c8ca08..e08d9c590 100644 --- a/swad_timeline_comment.c +++ b/swad_timeline_comment.c @@ -877,7 +877,7 @@ static void TmlCom_ReqRemComm (struct Tml_Timeline *Timeline) TmlCom_GetCommDataByCod (&Com); /***** Do some checks *****/ - if (TmlUsr_CheckIfICanRemove (Com.PubCod,Com.UsrCod) == Usr_I_CAN_NOT) + if (TmlUsr_CheckIfICanRemove (Com.PubCod,Com.UsrCod) == Usr_CAN_NOT) { Med_MediaDestructor (&Com.Content.Media); return; diff --git a/swad_timeline_favourite.c b/swad_timeline_favourite.c index 28a6c4d0c..5a5534682 100644 --- a/swad_timeline_favourite.c +++ b/swad_timeline_favourite.c @@ -135,7 +135,7 @@ static void TmlFav_FavNote (struct TmlNot_Note *Not) TmlNot_GetNoteDataByCod (Not); /***** Do some checks *****/ - if (TmlUsr_CheckIfICanFavSha (Not->NotCod,Not->UsrCod) == Usr_I_CAN_NOT) + if (TmlUsr_CheckIfICanFavSha (Not->NotCod,Not->UsrCod) == Usr_CAN_NOT) return; /***** Trivial check: Have I faved this note? *****/ @@ -165,7 +165,7 @@ static void TmlFav_UnfNote (struct TmlNot_Note *Not) TmlNot_GetNoteDataByCod (Not); /***** Do some checks *****/ - if (TmlUsr_CheckIfICanFavSha (Not->NotCod,Not->UsrCod) == Usr_I_CAN_NOT) + if (TmlUsr_CheckIfICanFavSha (Not->NotCod,Not->UsrCod) == Usr_CAN_NOT) return; /***** Trivial check: Have I faved this note? *****/ @@ -272,7 +272,7 @@ static void TmlFav_FavComm (struct TmlCom_Comment *Com) TmlCom_GetCommDataByCod (Com); /***** Do some checks *****/ - if (TmlUsr_CheckIfICanFavSha (Com->PubCod,Com->UsrCod) == Usr_I_CAN_NOT) + if (TmlUsr_CheckIfICanFavSha (Com->PubCod,Com->UsrCod) == Usr_CAN_NOT) { Med_MediaDestructor (&Com->Content.Media); return; @@ -311,7 +311,7 @@ static void TmlFav_UnfComm (struct TmlCom_Comment *Com) TmlCom_GetCommDataByCod (Com); /***** Do some checks *****/ - if (TmlUsr_CheckIfICanFavSha (Com->PubCod,Com->UsrCod) == Usr_I_CAN_NOT) + if (TmlUsr_CheckIfICanFavSha (Com->PubCod,Com->UsrCod) == Usr_CAN_NOT) { Med_MediaDestructor (&Com->Content.Media); return; diff --git a/swad_timeline_note.c b/swad_timeline_note.c index 19c5983e4..93ca71531 100644 --- a/swad_timeline_note.c +++ b/swad_timeline_note.c @@ -1010,7 +1010,7 @@ static void TmlNot_ReqRemNote (struct Tml_Timeline *Timeline) TmlNot_GetNoteDataByCod (&Not); /***** Do some checks *****/ - if (TmlUsr_CheckIfICanRemove (Not.NotCod,Not.UsrCod) == Usr_I_CAN_NOT) + if (TmlUsr_CheckIfICanRemove (Not.NotCod,Not.UsrCod) == Usr_CAN_NOT) return; /***** Show question and button to remove note *****/ diff --git a/swad_timeline_share.c b/swad_timeline_share.c index f36ff861c..984ac18d7 100644 --- a/swad_timeline_share.c +++ b/swad_timeline_share.c @@ -111,7 +111,7 @@ static void TmlSha_ShaNote (struct TmlNot_Note *Not) TmlNot_GetNoteDataByCod (Not); /***** Do some checks *****/ - if (TmlUsr_CheckIfICanFavSha (Not->NotCod,Not->UsrCod) == Usr_I_CAN_NOT) + if (TmlUsr_CheckIfICanFavSha (Not->NotCod,Not->UsrCod) == Usr_CAN_NOT) return; /***** Trivial check: Is note already shared by me? *****/ @@ -169,7 +169,7 @@ static void TmlSha_UnsNote (struct TmlNot_Note *Not) TmlNot_GetNoteDataByCod (Not); /***** Do some checks *****/ - if (TmlUsr_CheckIfICanFavSha (Not->NotCod,Not->UsrCod) == Usr_I_CAN_NOT) + if (TmlUsr_CheckIfICanFavSha (Not->NotCod,Not->UsrCod) == Usr_CAN_NOT) return; /***** Delete publication from database *****/ diff --git a/swad_timeline_user.c b/swad_timeline_user.c index 61ec4a152..fc7074230 100644 --- a/swad_timeline_user.c +++ b/swad_timeline_user.c @@ -377,7 +377,7 @@ static void TmlUsr_PutDisabledIconFavSha (TmlUsr_FavSha_t FavSha, /***************** Check if I can fav/share a note/comment *******************/ /*****************************************************************************/ -Usr_ICan_t TmlUsr_CheckIfICanFavSha (long Cod,long UsrCod) +Usr_Can_t TmlUsr_CheckIfICanFavSha (long Cod,long UsrCod) { extern const char *Txt_The_post_no_longer_exists; @@ -385,7 +385,7 @@ Usr_ICan_t TmlUsr_CheckIfICanFavSha (long Cod,long UsrCod) if (Cod <= 0) { Ale_ShowAlert (Ale_WARNING,Txt_The_post_no_longer_exists); - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } /***** Trivial check 2: I must be logged @@ -393,17 +393,17 @@ Usr_ICan_t TmlUsr_CheckIfICanFavSha (long Cod,long UsrCod) if (!Gbl.Usrs.Me.Logged || Usr_ItsMe (UsrCod) == Usr_ME) { Err_NoPermission (); - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } - return Usr_I_CAN; + return Usr_CAN; } /*****************************************************************************/ /***************** Check if I can fav/share a note/comment *******************/ /*****************************************************************************/ -Usr_ICan_t TmlUsr_CheckIfICanRemove (long Cod,long UsrCod) +Usr_Can_t TmlUsr_CheckIfICanRemove (long Cod,long UsrCod) { extern const char *Txt_The_post_no_longer_exists; @@ -411,7 +411,7 @@ Usr_ICan_t TmlUsr_CheckIfICanRemove (long Cod,long UsrCod) if (Cod <= 0) { Ale_ShowAlert (Ale_WARNING,Txt_The_post_no_longer_exists); - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } /***** Trivial check 2: I must be logged @@ -419,8 +419,8 @@ Usr_ICan_t TmlUsr_CheckIfICanRemove (long Cod,long UsrCod) if (!Gbl.Usrs.Me.Logged || Usr_ItsMe (UsrCod) == Usr_OTHER) { Err_NoPermission (); - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } - return Usr_I_CAN; + return Usr_CAN; } diff --git a/swad_timeline_user.h b/swad_timeline_user.h index d725fd6bf..18f6e1fba 100644 --- a/swad_timeline_user.h +++ b/swad_timeline_user.h @@ -75,7 +75,7 @@ void TmlUsr_PutIconFavSha (TmlUsr_FavSha_t FavSha, long Cod,long UsrCod,unsigned NumUsrs, TmlUsr_HowManyUsrs_t HowManyUsrs); -Usr_ICan_t TmlUsr_CheckIfICanFavSha (long Cod,long UsrCod); -Usr_ICan_t TmlUsr_CheckIfICanRemove (long Cod,long UsrCod); +Usr_Can_t TmlUsr_CheckIfICanFavSha (long Cod,long UsrCod); +Usr_Can_t TmlUsr_CheckIfICanRemove (long Cod,long UsrCod); #endif diff --git a/swad_user.c b/swad_user.c index 785bf1305..b41562f4e 100644 --- a/swad_user.c +++ b/swad_user.c @@ -234,8 +234,8 @@ static void Usr_PutLinkToSeeAdmins (void); static void Usr_PutLinkToSeeGuests (void); static Frm_PutForm_t Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole, - Usr_ICan_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]); -static void Usr_PutOptionsListUsrs (const Usr_ICan_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]); + Usr_Can_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]); +static void Usr_PutOptionsListUsrs (const Usr_Can_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]); static void Usr_ShowOneListUsrsOption (Usr_ListUsrsOption_t ListUsrsAction, const char *Label); static Usr_ListUsrsOption_t Usr_GetListUsrsOption (Usr_ListUsrsOption_t DefaultAction); @@ -774,11 +774,11 @@ bool Usr_CheckIfUsrIsSuperuser (long UsrCod) /**************** Check if I can change another user's data ******************/ /*****************************************************************************/ -Usr_ICan_t Usr_ICanChangeOtherUsrData (const struct Usr_Data *UsrDat) +Usr_Can_t Usr_ICanChangeOtherUsrData (const struct Usr_Data *UsrDat) { /***** I can change my data *****/ if (Usr_ItsMe (UsrDat->UsrCod) == Usr_ME) - return Usr_I_CAN; + return Usr_CAN; /***** Check if I have permission to see another user's IDs *****/ switch (Gbl.Usrs.Me.Role.Logged) @@ -786,20 +786,20 @@ Usr_ICan_t Usr_ICanChangeOtherUsrData (const struct Usr_Data *UsrDat) case Rol_TCH: /* Check 1: I can change data of users who do not exist in database */ if (UsrDat->UsrCod <= 0) // User does not exist (when creating a new user) - return Usr_I_CAN; + return Usr_CAN; /* Check 2: I change data of users without password */ if (!UsrDat->Password[0]) // User has no password (never logged) - return Usr_I_CAN; + return Usr_CAN; - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; case Rol_DEG_ADM: case Rol_CTR_ADM: case Rol_INS_ADM: case Rol_SYS_ADM: return Usr_CheckIfICanEditOtherUsr (UsrDat); default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -807,11 +807,11 @@ Usr_ICan_t Usr_ICanChangeOtherUsrData (const struct Usr_Data *UsrDat) /***************** Check if I can edit another user's data *******************/ /*****************************************************************************/ -Usr_ICan_t Usr_CheckIfICanEditOtherUsr (const struct Usr_Data *UsrDat) +Usr_Can_t Usr_CheckIfICanEditOtherUsr (const struct Usr_Data *UsrDat) { /***** I can edit me *****/ if (Usr_ItsMe (UsrDat->UsrCod) == Usr_ME) - return Usr_I_CAN; + return Usr_CAN; switch (Gbl.Usrs.Me.Role.Logged) { @@ -823,8 +823,8 @@ Usr_ICan_t Usr_CheckIfICanEditOtherUsr (const struct Usr_Data *UsrDat) true)) // count only accepted courses // Degree admins can't edit superusers' data if (!Usr_CheckIfUsrIsSuperuser (UsrDat->UsrCod)) - return Usr_I_CAN; - return Usr_I_CAN_NOT; + return Usr_CAN; + return Usr_CAN_NOT; case Rol_CTR_ADM: /* If I am an administrator of current center, I only can edit from current center who have accepted */ @@ -833,8 +833,8 @@ Usr_ICan_t Usr_CheckIfICanEditOtherUsr (const struct Usr_Data *UsrDat) true)) // count only accepted courses // Center admins can't edit superusers' data if (!Usr_CheckIfUsrIsSuperuser (UsrDat->UsrCod)) - return Usr_I_CAN; - return Usr_I_CAN_NOT; + return Usr_CAN; + return Usr_CAN_NOT; case Rol_INS_ADM: /* If I am an administrator of current institution, I only can edit from current institution who have accepted */ @@ -843,12 +843,12 @@ Usr_ICan_t Usr_CheckIfICanEditOtherUsr (const struct Usr_Data *UsrDat) true)) // count only accepted courses // Institution admins can't edit superusers' data if (!Usr_CheckIfUsrIsSuperuser (UsrDat->UsrCod)) - return Usr_I_CAN; - return Usr_I_CAN_NOT; + return Usr_CAN; + return Usr_CAN_NOT; case Rol_SYS_ADM: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -856,51 +856,51 @@ Usr_ICan_t Usr_CheckIfICanEditOtherUsr (const struct Usr_Data *UsrDat) /************ Check if I can view the record card of a student ***************/ /*****************************************************************************/ -Usr_ICan_t Usr_CheckIfICanViewRecordStd (const struct Usr_Data *UsrDat) +Usr_Can_t Usr_CheckIfICanViewRecordStd (const struct Usr_Data *UsrDat) { /***** 1. Fast check: Am I logged? *****/ if (!Gbl.Usrs.Me.Logged) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 2. Fast check: Is it a valid user code? *****/ if (UsrDat->UsrCod <= 0) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 3. Fast check: Is it a course selected? *****/ if (Gbl.Hierarchy.Node[Hie_CRS].HieCod <= 0) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 4. Fast check: Is he/she a student? *****/ if (UsrDat->Roles.InCurrentCrs != Rol_STD) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 5. Fast check: Am I a system admin? *****/ if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) - return Usr_I_CAN; + return Usr_CAN; /***** 6. Fast check: Do I belong to the current course? *****/ - if (!Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) - return Usr_I_CAN_NOT; + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_DONT_BELONG) + return Usr_CAN_NOT; /***** 7. Fast check: It's me? *****/ if (Usr_ItsMe (UsrDat->UsrCod) == Usr_ME) - return Usr_I_CAN; + return Usr_CAN; /***** 8. Fast / slow check: Does he/she belong to the current course? *****/ if (!Enr_CheckIfUsrBelongsToCurrentCrs (UsrDat)) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 9. Fast / slow check depending on roles *****/ switch (Gbl.Usrs.Me.Role.Logged) { case Rol_STD: case Rol_NET: - return Grp_CheckIfUsrSharesAnyOfMyGrpsInCurrentCrs (UsrDat) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Grp_CheckIfUsrSharesAnyOfMyGrpsInCurrentCrs (UsrDat) ? Usr_CAN : + Usr_CAN_NOT; case Rol_TCH: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -911,70 +911,70 @@ Usr_ICan_t Usr_CheckIfICanViewRecordStd (const struct Usr_Data *UsrDat) // - a non-editing teacher // - or a teacher -Usr_ICan_t Usr_CheckIfICanViewRecordTch (struct Usr_Data *UsrDat) +Usr_Can_t Usr_CheckIfICanViewRecordTch (struct Usr_Data *UsrDat) { /***** 1. Fast check: Am I logged? *****/ if (!Gbl.Usrs.Me.Logged) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 2. Fast check: Is it a valid user code? *****/ if (UsrDat->UsrCod <= 0) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 3. Fast check: Is it a course selected? *****/ if (Gbl.Hierarchy.Node[Hie_CRS].HieCod <= 0) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 4. Fast check: Is he/she a non-editing teacher or a teacher? *****/ return (UsrDat->Roles.InCurrentCrs == Rol_NET || - UsrDat->Roles.InCurrentCrs == Rol_TCH) ? Usr_I_CAN : - Usr_I_CAN_NOT; + UsrDat->Roles.InCurrentCrs == Rol_TCH) ? Usr_CAN : + Usr_CAN_NOT; } /*****************************************************************************/ /********* Check if I can view test/exam/match result of another user ********/ /*****************************************************************************/ -Usr_ICan_t Usr_CheckIfICanViewTstExaMchResult (const struct Usr_Data *UsrDat) +Usr_Can_t Usr_CheckIfICanViewTstExaMchResult (const struct Usr_Data *UsrDat) { /***** 1. Fast check: Am I logged? *****/ if (!Gbl.Usrs.Me.Logged) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 2. Fast check: Is it a valid user code? *****/ if (UsrDat->UsrCod <= 0) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 3. Fast check: Is it a course selected? *****/ if (Gbl.Hierarchy.Node[Hie_CRS].HieCod <= 0) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 4. Fast check: Am I a system admin? *****/ if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) - return Usr_I_CAN; + return Usr_CAN; /***** 5. Fast check: Do I belong to the current course? *****/ - if (!Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) - return Usr_I_CAN_NOT; + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_DONT_BELONG) + return Usr_CAN_NOT; /***** 6. Fast check: It's me? *****/ if (Usr_ItsMe (UsrDat->UsrCod) == Usr_ME) - return Usr_I_CAN; + return Usr_CAN; /***** 7. Fast check: Does he/she belong to the current course? *****/ if (!Enr_CheckIfUsrBelongsToCurrentCrs (UsrDat)) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 8. Fast / slow check depending on roles *****/ switch (Gbl.Usrs.Me.Role.Logged) { case Rol_NET: - return Grp_CheckIfUsrSharesAnyOfMyGrpsInCurrentCrs (UsrDat) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Grp_CheckIfUsrSharesAnyOfMyGrpsInCurrentCrs (UsrDat) ? Usr_CAN : + Usr_CAN_NOT; case Rol_TCH: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -982,47 +982,47 @@ Usr_ICan_t Usr_CheckIfICanViewTstExaMchResult (const struct Usr_Data *UsrDat) /********** Check if I can view assigments / works of another user ***********/ /*****************************************************************************/ -Usr_ICan_t Usr_CheckIfICanViewAsgWrk (const struct Usr_Data *UsrDat) +Usr_Can_t Usr_CheckIfICanViewAsgWrk (const struct Usr_Data *UsrDat) { /***** 1. Fast check: Am I logged? *****/ if (!Gbl.Usrs.Me.Logged) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 2. Fast check: Is it a valid user code? *****/ if (UsrDat->UsrCod <= 0) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 3. Fast check: Is it a course selected? *****/ if (Gbl.Hierarchy.Node[Hie_CRS].HieCod <= 0) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 4. Fast check: Does he/she belong to the current course? *****/ // Only users beloging to course can have files in assignments/works if (!Enr_CheckIfUsrBelongsToCurrentCrs (UsrDat)) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 5. Fast check: Am I a system admin? *****/ if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) - return Usr_I_CAN; + return Usr_CAN; /***** 6. Fast check: Do I belong to the current course? *****/ - if (!Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) - return Usr_I_CAN_NOT; + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_DONT_BELONG) + return Usr_CAN_NOT; /***** 7. Fast check: It's me? *****/ if (Usr_ItsMe (UsrDat->UsrCod) == Usr_ME) - return Usr_I_CAN; + return Usr_CAN; /***** 8. Fast / slow check depending on roles *****/ switch (Gbl.Usrs.Me.Role.Logged) { case Rol_NET: - return Grp_CheckIfUsrSharesAnyOfMyGrpsInCurrentCrs (UsrDat) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Grp_CheckIfUsrSharesAnyOfMyGrpsInCurrentCrs (UsrDat) ? Usr_CAN : + Usr_CAN_NOT; case Rol_TCH: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -1030,42 +1030,42 @@ Usr_ICan_t Usr_CheckIfICanViewAsgWrk (const struct Usr_Data *UsrDat) /************** Check if I can view attendance of another user ***************/ /*****************************************************************************/ -Usr_ICan_t Usr_CheckIfICanViewAtt (const struct Usr_Data *UsrDat) +Usr_Can_t Usr_CheckIfICanViewAtt (const struct Usr_Data *UsrDat) { /***** 1. Fast check: Am I logged? *****/ if (!Gbl.Usrs.Me.Logged) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 2. Fast check: Is it a valid user code? *****/ if (UsrDat->UsrCod <= 0) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 3. Fast check: Is it a course selected? *****/ if (Gbl.Hierarchy.Node[Hie_CRS].HieCod <= 0) - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; /***** 4. Fast check: Am I a system admin? *****/ if (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) - return Usr_I_CAN; + return Usr_CAN; /***** 5. Fast check: Do I belong to the current course? *****/ - if (!Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS]) - return Usr_I_CAN_NOT; + if (Gbl.Usrs.Me.IBelongToCurrent[Hie_CRS] == Usr_DONT_BELONG) + return Usr_CAN_NOT; /***** 6. Fast check: It's me? *****/ if (Usr_ItsMe (UsrDat->UsrCod) == Usr_ME) - return Usr_I_CAN; + return Usr_CAN; /***** 7. Fast / slow check depending on roles *****/ switch (Gbl.Usrs.Me.Role.Logged) { case Rol_NET: - return Grp_CheckIfUsrSharesAnyOfMyGrpsInCurrentCrs (UsrDat) ? Usr_I_CAN : - Usr_I_CAN_NOT; + return Grp_CheckIfUsrSharesAnyOfMyGrpsInCurrentCrs (UsrDat) ? Usr_CAN : + Usr_CAN_NOT; case Rol_TCH: - return Usr_I_CAN; + return Usr_CAN; default: - return Usr_I_CAN_NOT; + return Usr_CAN_NOT; } } @@ -2622,22 +2622,22 @@ static void Usr_WriteMainUsrDataExceptUsrID (struct Usr_Data *UsrDat, static void Usr_WriteEmail (struct Usr_Data *UsrDat,const char *BgColor) { - Usr_ICan_t ShowEmail; + Usr_Can_t ShowEmail; char MailLink[7 + Cns_MAX_BYTES_EMAIL_ADDRESS + 1]; // mailto:mail_address if (UsrDat->Email[0]) { ShowEmail = Mai_ICanSeeOtherUsrEmail (UsrDat); - if (ShowEmail == Usr_I_CAN) + if (ShowEmail == Usr_CAN) snprintf (MailLink,sizeof (MailLink),"mailto:%s",UsrDat->Email); } else - ShowEmail = Usr_I_CAN_NOT; + ShowEmail = Usr_CAN_NOT; Usr_WriteUsrData (BgColor, - UsrDat->Email[0] ? (ShowEmail == Usr_I_CAN ? UsrDat->Email : + UsrDat->Email[0] ? (ShowEmail == Usr_CAN ? UsrDat->Email : "********") : " ", - ShowEmail == Usr_I_CAN ? MailLink : + ShowEmail == Usr_CAN ? MailLink : NULL, true,UsrDat->Accepted); } @@ -5022,7 +5022,7 @@ void Usr_SeeGuests (void) extern const char *Hlp_USERS_Guests; extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; extern const char *Txt_Scope; - Usr_ICan_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]; + Usr_Can_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]; Frm_PutForm_t PutForm; /***** Contextual menu *****/ @@ -5142,7 +5142,7 @@ void Usr_SeeStudents (void) extern const char *Hlp_USERS_Students; extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; extern const char *Txt_Scope; - Usr_ICan_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]; + Usr_Can_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]; Frm_PutForm_t PutForm; /***** Put contextual links *****/ @@ -5301,7 +5301,7 @@ void Usr_SeeTeachers (void) extern const char *Txt_ROLES_PLURAL_Abc[Rol_NUM_ROLES][Usr_NUM_SEXS]; extern const char *Txt_Scope; unsigned NumUsrs; - Usr_ICan_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]; + Usr_Can_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]; Frm_PutForm_t PutForm; /***** Put contextual links *****/ @@ -5477,7 +5477,7 @@ void Usr_SeeTeachers (void) // Returns true if any option is allowed static Frm_PutForm_t Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole, - Usr_ICan_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]) + Usr_Can_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]) { Usr_ListUsrsOption_t Opt; @@ -5486,14 +5486,14 @@ static Frm_PutForm_t Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole, for (Opt = (Usr_ListUsrsOption_t) 1; // Skip unknown option Opt <= (Usr_ListUsrsOption_t) (Usr_LIST_USRS_NUM_OPTIONS - 1); Opt++) - ICanChooseOption[Opt] = Usr_I_CAN_NOT; + ICanChooseOption[Opt] = Usr_CAN_NOT; /* Activate some options depending on users' role, on my role, etc. */ switch (UsrsRole) { case Rol_GST: - ICanChooseOption[Usr_OPTION_RECORDS] = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_I_CAN : - Usr_I_CAN_NOT; + ICanChooseOption[Usr_OPTION_RECORDS] = (Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM) ? Usr_CAN : + Usr_CAN_NOT; break; case Rol_STD: ICanChooseOption[Usr_OPTION_RECORDS] = @@ -5503,16 +5503,16 @@ static Frm_PutForm_t Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole, (Gbl.Usrs.Me.Role.Logged == Rol_STD || Gbl.Usrs.Me.Role.Logged == Rol_NET || Gbl.Usrs.Me.Role.Logged == Rol_TCH || - Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_CAN : + Usr_CAN_NOT; ICanChooseOption[Usr_OPTION_HOMEWORK] = ICanChooseOption[Usr_OPTION_ATTENDANCE] = ICanChooseOption[Usr_OPTION_EMAIL] = (Gbl.Scope.Current == Hie_CRS && (Gbl.Usrs.Me.Role.Logged == Rol_NET || Gbl.Usrs.Me.Role.Logged == Rol_TCH || - Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_CAN : + Usr_CAN_NOT; break; case Rol_TCH: ICanChooseOption[Usr_OPTION_RECORDS] = @@ -5523,13 +5523,13 @@ static Frm_PutForm_t Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole, (Gbl.Usrs.Me.Role.Logged == Rol_STD || Gbl.Usrs.Me.Role.Logged == Rol_NET || Gbl.Usrs.Me.Role.Logged == Rol_TCH || - Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_CAN : + Usr_CAN_NOT; ICanChooseOption[Usr_OPTION_HOMEWORK] = (Gbl.Scope.Current == Hie_CRS && (Gbl.Usrs.Me.Role.Logged == Rol_NET || Gbl.Usrs.Me.Role.Logged == Rol_TCH || - Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_I_CAN : - Usr_I_CAN_NOT; + Gbl.Usrs.Me.Role.Logged == Rol_SYS_ADM)) ? Usr_CAN : + Usr_CAN_NOT; break; default: return Frm_DONT_PUT_FORM; @@ -5539,7 +5539,7 @@ static Frm_PutForm_t Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole, for (Opt = (Usr_ListUsrsOption_t) 1; // Skip unknown option Opt <= (Usr_ListUsrsOption_t) (Usr_LIST_USRS_NUM_OPTIONS - 1); Opt++) - if (ICanChooseOption[Opt] == Usr_I_CAN) + if (ICanChooseOption[Opt] == Usr_CAN) return Frm_PUT_FORM; return Frm_DONT_PUT_FORM; @@ -5550,7 +5550,7 @@ static Frm_PutForm_t Usr_SetOptionsListUsrsAllowed (Rol_Role_t UsrsRole, /*****************************************************************************/ // Returns true if at least one action can be shown -static void Usr_PutOptionsListUsrs (const Usr_ICan_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]) +static void Usr_PutOptionsListUsrs (const Usr_Can_t ICanChooseOption[Usr_LIST_USRS_NUM_OPTIONS]) { extern const char *Txt_View_records; extern const char *Txt_View_homework; @@ -5584,7 +5584,7 @@ static void Usr_PutOptionsListUsrs (const Usr_ICan_t ICanChooseOption[Usr_LIST_U for (Opt = (Usr_ListUsrsOption_t) 1; // Skip unknown option Opt <= (Usr_ListUsrsOption_t) (Usr_LIST_USRS_NUM_OPTIONS - 1); Opt++) - if (ICanChooseOption[Opt] == Usr_I_CAN) + if (ICanChooseOption[Opt] == Usr_CAN) Usr_ShowOneListUsrsOption (Opt,*Label[Opt]); /* End list of options */ diff --git a/swad_user.h b/swad_user.h index 4d9da7cb6..0f5e47fd6 100644 --- a/swad_user.h +++ b/swad_user.h @@ -201,14 +201,14 @@ void Usr_FlushCachesUsr (void); void Usr_FlushCacheUsrIsSuperuser (void); bool Usr_CheckIfUsrIsSuperuser (long UsrCod); -Usr_ICan_t Usr_ICanChangeOtherUsrData (const struct Usr_Data *UsrDat); -Usr_ICan_t Usr_CheckIfICanEditOtherUsr (const struct Usr_Data *UsrDat); +Usr_Can_t Usr_ICanChangeOtherUsrData (const struct Usr_Data *UsrDat); +Usr_Can_t Usr_CheckIfICanEditOtherUsr (const struct Usr_Data *UsrDat); -Usr_ICan_t Usr_CheckIfICanViewRecordStd (const struct Usr_Data *UsrDat); -Usr_ICan_t Usr_CheckIfICanViewRecordTch (struct Usr_Data *UsrDat); -Usr_ICan_t Usr_CheckIfICanViewTstExaMchResult (const struct Usr_Data *UsrDat); -Usr_ICan_t Usr_CheckIfICanViewAsgWrk (const struct Usr_Data *UsrDat); -Usr_ICan_t Usr_CheckIfICanViewAtt (const struct Usr_Data *UsrDat); +Usr_Can_t Usr_CheckIfICanViewRecordStd (const struct Usr_Data *UsrDat); +Usr_Can_t Usr_CheckIfICanViewRecordTch (struct Usr_Data *UsrDat); +Usr_Can_t Usr_CheckIfICanViewTstExaMchResult (const struct Usr_Data *UsrDat); +Usr_Can_t Usr_CheckIfICanViewAsgWrk (const struct Usr_Data *UsrDat); +Usr_Can_t Usr_CheckIfICanViewAtt (const struct Usr_Data *UsrDat); void Usr_WriteLandingPage (void); void Usr_WriteFormLogout (void); diff --git a/swad_user_type.h b/swad_user_type.h index 4b619601e..488344837 100644 --- a/swad_user_type.h +++ b/swad_user_type.h @@ -110,12 +110,19 @@ typedef enum } Usr_ListUsrsOption_t; #define Usr_LIST_USRS_DEFAULT_OPTION Usr_OPTION_RECORDS -#define Usr_NUM_I_CAN 2 +#define Usr_NUM_CAN 2 typedef enum { - Usr_I_CAN_NOT, - Usr_I_CAN, - } Usr_ICan_t; + Usr_CAN_NOT, + Usr_CAN, + } Usr_Can_t; + +#define Usr_NUM_BELONG 2 +typedef enum + { + Usr_DONT_BELONG, + Usr_BELONG, + } Usr_Belong_t; #define Usr_NUM_ME_OR_OTHER 2 typedef enum diff --git a/swad_zip.c b/swad_zip.c index da7f0aa9e..3f0d7b9f9 100644 --- a/swad_zip.c +++ b/swad_zip.c @@ -475,7 +475,7 @@ static unsigned long long ZIP_CloneDir (const char *Path,const char *PathClone,c Brw_IS_FILE; // It's a file HiddenOrVisible = (Brw_TypeIsSeeDoc[Gbl.FileBrowser.Type] || - Brw_TypeIsSeeMrk[Gbl.FileBrowser.Type]) ? Brw_CheckIfFileOrFolderIsSetAsHiddenInDB (FileType, + Brw_TypeIsSeeMrk[Gbl.FileBrowser.Type]) ? Brw_CheckIfFileOrFolderIsHiddenOrVisible (FileType, PathFileInTree) : HidVis_VISIBLE;