mirror of https://github.com/acanas/swad-core.git
Version 14.79.1
This commit is contained in:
parent
ba95e29ea9
commit
a509c959d7
|
@ -1126,6 +1126,7 @@ CREATE TABLE IF NOT EXISTS usr_data (
|
||||||
Language CHAR(2) NOT NULL,
|
Language CHAR(2) NOT NULL,
|
||||||
Photo CHAR(43) NOT NULL,
|
Photo CHAR(43) NOT NULL,
|
||||||
PhotoVisibility ENUM('user','course','system','world') NOT NULL DEFAULT 'user',
|
PhotoVisibility ENUM('user','course','system','world') NOT NULL DEFAULT 'user',
|
||||||
|
ProfileVisibility ENUM('user','course','system','world') NOT NULL DEFAULT 'user',
|
||||||
CtyCod INT NOT NULL DEFAULT -1,
|
CtyCod INT NOT NULL DEFAULT -1,
|
||||||
InsCtyCod INT NOT NULL DEFAULT -1,
|
InsCtyCod INT NOT NULL DEFAULT -1,
|
||||||
InsCod INT NOT NULL DEFAULT -1,
|
InsCod INT NOT NULL DEFAULT -1,
|
||||||
|
|
|
@ -432,12 +432,12 @@ void Acc_CreateNewUsr (struct UsrData *UsrDat)
|
||||||
/***** Insert new user in database *****/
|
/***** Insert new user in database *****/
|
||||||
/* Insert user's data */
|
/* Insert user's data */
|
||||||
sprintf (Query,"INSERT INTO usr_data (EncryptedUsrCod,Password,Surname1,Surname2,FirstName,Sex,"
|
sprintf (Query,"INSERT INTO usr_data (EncryptedUsrCod,Password,Surname1,Surname2,FirstName,Sex,"
|
||||||
"Layout,Theme,IconSet,Language,PhotoVisibility,"
|
"Layout,Theme,IconSet,Language,PhotoVisibility,ProfileVisibility,"
|
||||||
"CtyCod,"
|
"CtyCod,"
|
||||||
"LocalAddress,LocalPhone,FamilyAddress,FamilyPhone,OriginPlace,Birthday,Comments,"
|
"LocalAddress,LocalPhone,FamilyAddress,FamilyPhone,OriginPlace,Birthday,Comments,"
|
||||||
"Menu,SideCols,NotifNtfEvents,EmailNtfEvents)"
|
"Menu,SideCols,NotifNtfEvents,EmailNtfEvents)"
|
||||||
" VALUES ('%s','%s','%s','%s','%s','%s',"
|
" VALUES ('%s','%s','%s','%s','%s','%s',"
|
||||||
"'%u','%s','%s','%s','%s',"
|
"'%u','%s','%s','%s','%s','%s',"
|
||||||
"'%ld',"
|
"'%ld',"
|
||||||
"'%s','%s','%s','%s','%s','%04u-%02u-%02u','%s',"
|
"'%s','%s','%s','%s','%s','%04u-%02u-%02u','%s',"
|
||||||
"'%u','%u','-1','0')",
|
"'%u','%u','-1','0')",
|
||||||
|
@ -450,6 +450,7 @@ void Acc_CreateNewUsr (struct UsrData *UsrDat)
|
||||||
Ico_IconSetId[UsrDat->Prefs.IconSet],
|
Ico_IconSetId[UsrDat->Prefs.IconSet],
|
||||||
Txt_STR_LANG_ID[UsrDat->Prefs.Language],
|
Txt_STR_LANG_ID[UsrDat->Prefs.Language],
|
||||||
Pri_VisibilityDB[UsrDat->PhotoVisibility],
|
Pri_VisibilityDB[UsrDat->PhotoVisibility],
|
||||||
|
Pri_VisibilityDB[UsrDat->ProfileVisibility],
|
||||||
UsrDat->CtyCod,
|
UsrDat->CtyCod,
|
||||||
UsrDat->LocalAddress ,UsrDat->LocalPhone,
|
UsrDat->LocalAddress ,UsrDat->LocalPhone,
|
||||||
UsrDat->FamilyAddress,UsrDat->FamilyPhone,
|
UsrDat->FamilyAddress,UsrDat->FamilyPhone,
|
||||||
|
|
|
@ -1180,9 +1180,10 @@ Profile:
|
||||||
951. ActDetMyPho Receive my photo and detect faces on it
|
951. ActDetMyPho Receive my photo and detect faces on it
|
||||||
952. ActUpdMyPho Update my photo
|
952. ActUpdMyPho Update my photo
|
||||||
953. ActRemMyPho Remove my photo
|
953. ActRemMyPho Remove my photo
|
||||||
954. ActChgPubPho Change photo privacy
|
|
||||||
|
|
||||||
---. ActEdiPri Edit my privacy
|
---. ActEdiPri Edit my privacy
|
||||||
|
954. ActChgPriPho Change privacy of my photo
|
||||||
|
---. ActChgPriPrf Change privacy of my public profile
|
||||||
|
|
||||||
955. ActReqEdiMyIns Request the edition of my institution, centre and department
|
955. ActReqEdiMyIns Request the edition of my institution, centre and department
|
||||||
956. ActChgCtyMyIns Change the country of my institution
|
956. ActChgCtyMyIns Change the country of my institution
|
||||||
|
@ -2593,9 +2594,10 @@ struct Act_Actions Act_Actions[Act_NUM_ACTIONS] =
|
||||||
/* ActDetMyPho */{ 693,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Pho_RecMyPhotoDetFaces ,NULL},
|
/* ActDetMyPho */{ 693,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_DATA,Act_MAIN_WINDOW,NULL ,Pho_RecMyPhotoDetFaces ,NULL},
|
||||||
/* ActUpdMyPho */{ 694,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pho_UpdateMyPhoto1 ,Pho_UpdateMyPhoto2 ,NULL},
|
/* ActUpdMyPho */{ 694,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pho_UpdateMyPhoto1 ,Pho_UpdateMyPhoto2 ,NULL},
|
||||||
/* ActRemMyPho */{ 428,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pho_RemoveMyPhoto1 ,Pho_RemoveMyPhoto2 ,NULL},
|
/* ActRemMyPho */{ 428,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,Pho_RemoveMyPhoto1 ,Pho_RemoveMyPhoto2 ,NULL},
|
||||||
/* ActChgPubPho */{ 774,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_ChangePhotoVisibility ,NULL},
|
|
||||||
|
|
||||||
/* ActEdiPri */{1403,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pri_EditMyPrivacy ,NULL},
|
/* ActEdiPri */{1403,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pri_EditMyPrivacy ,NULL},
|
||||||
|
/* ActChgPriPho */{ 774,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Pho_ChangePhotoVisibility ,NULL},
|
||||||
|
/* ActChgPriPrf */{1404,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Usr_ChangeProfileVisibility ,NULL},
|
||||||
|
|
||||||
/* ActReqEdiMyIns */{1165,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ShowFormMyInsCtrDpt ,NULL},
|
/* ActReqEdiMyIns */{1165,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ShowFormMyInsCtrDpt ,NULL},
|
||||||
/* ActChgCtyMyIns */{1166,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ChgCountryOfMyInstitution ,NULL},
|
/* ActChgCtyMyIns */{1166,-1,TabPrf,ActReqEdiRecCom ,0x1FE,0x1FE,0x1FE,Act_CONTENT_NORM,Act_MAIN_WINDOW,NULL ,Rec_ChgCountryOfMyInstitution ,NULL},
|
||||||
|
@ -3423,7 +3425,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
|
||||||
-1, // #771 (obsolete action)
|
-1, // #771 (obsolete action)
|
||||||
ActDelPstForInsTch, // #772
|
ActDelPstForInsTch, // #772
|
||||||
ActRemOldUsr, // #773
|
ActRemOldUsr, // #773
|
||||||
ActChgPubPho, // #774
|
ActChgPriPho, // #774
|
||||||
ActChgNtfPrf, // #775
|
ActChgNtfPrf, // #775
|
||||||
ActRemPlc, // #776
|
ActRemPlc, // #776
|
||||||
ActLstPlg, // #777
|
ActLstPlg, // #777
|
||||||
|
@ -4056,6 +4058,7 @@ Act_Action_t Act_FromActCodToAction[1+Act_MAX_ACTION_COD] = // Do not reuse uniq
|
||||||
ActReqPubPrf, // #1401
|
ActReqPubPrf, // #1401
|
||||||
ActSeePubPrf, // #1402
|
ActSeePubPrf, // #1402
|
||||||
ActEdiPri, // #1403
|
ActEdiPri, // #1403
|
||||||
|
ActChgPriPrf, // #1404
|
||||||
};
|
};
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
|
@ -69,9 +69,9 @@ typedef enum
|
||||||
|
|
||||||
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
typedef int Act_Action_t; // Must be a signed type, because -1 is used to indicate obsolete action
|
||||||
|
|
||||||
#define Act_NUM_ACTIONS (7+52+15+90+73+68+204+184+100+168+28+76)
|
#define Act_NUM_ACTIONS (7+52+15+90+73+68+204+184+100+168+28+77)
|
||||||
|
|
||||||
#define Act_MAX_ACTION_COD 1403
|
#define Act_MAX_ACTION_COD 1404
|
||||||
|
|
||||||
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
|
#define Act_MAX_OPTIONS_IN_MENU_PER_TAB 20
|
||||||
|
|
||||||
|
@ -1228,57 +1228,58 @@ typedef int Act_Action_t; // Must be a signed type, because -1 is used to indica
|
||||||
#define ActDetMyPho (ActSeeAllStaCrs+29)
|
#define ActDetMyPho (ActSeeAllStaCrs+29)
|
||||||
#define ActUpdMyPho (ActSeeAllStaCrs+30)
|
#define ActUpdMyPho (ActSeeAllStaCrs+30)
|
||||||
#define ActRemMyPho (ActSeeAllStaCrs+31)
|
#define ActRemMyPho (ActSeeAllStaCrs+31)
|
||||||
#define ActChgPubPho (ActSeeAllStaCrs+32)
|
|
||||||
|
|
||||||
#define ActEdiPri (ActSeeAllStaCrs+33)
|
#define ActEdiPri (ActSeeAllStaCrs+32)
|
||||||
|
#define ActChgPriPho (ActSeeAllStaCrs+33)
|
||||||
|
#define ActChgPriPrf (ActSeeAllStaCrs+34)
|
||||||
|
|
||||||
#define ActReqEdiMyIns (ActSeeAllStaCrs+34)
|
#define ActReqEdiMyIns (ActSeeAllStaCrs+35)
|
||||||
#define ActChgCtyMyIns (ActSeeAllStaCrs+35)
|
#define ActChgCtyMyIns (ActSeeAllStaCrs+36)
|
||||||
#define ActChgMyIns (ActSeeAllStaCrs+36)
|
#define ActChgMyIns (ActSeeAllStaCrs+37)
|
||||||
#define ActChgMyCtr (ActSeeAllStaCrs+37)
|
#define ActChgMyCtr (ActSeeAllStaCrs+38)
|
||||||
#define ActChgMyDpt (ActSeeAllStaCrs+38)
|
#define ActChgMyDpt (ActSeeAllStaCrs+39)
|
||||||
#define ActChgMyOff (ActSeeAllStaCrs+39)
|
#define ActChgMyOff (ActSeeAllStaCrs+40)
|
||||||
#define ActChgMyOffPho (ActSeeAllStaCrs+40)
|
#define ActChgMyOffPho (ActSeeAllStaCrs+41)
|
||||||
|
|
||||||
#define ActReqEdiMyNet (ActSeeAllStaCrs+41)
|
#define ActReqEdiMyNet (ActSeeAllStaCrs+42)
|
||||||
#define ActChgMyNet (ActSeeAllStaCrs+42)
|
#define ActChgMyNet (ActSeeAllStaCrs+43)
|
||||||
|
|
||||||
#define ActChgLay (ActSeeAllStaCrs+43)
|
#define ActChgLay (ActSeeAllStaCrs+44)
|
||||||
#define ActChgThe (ActSeeAllStaCrs+44)
|
#define ActChgThe (ActSeeAllStaCrs+45)
|
||||||
#define ActReqChgLan (ActSeeAllStaCrs+45)
|
#define ActReqChgLan (ActSeeAllStaCrs+46)
|
||||||
#define ActChgLan (ActSeeAllStaCrs+46)
|
#define ActChgLan (ActSeeAllStaCrs+47)
|
||||||
#define ActChgCol (ActSeeAllStaCrs+47)
|
#define ActChgCol (ActSeeAllStaCrs+48)
|
||||||
#define ActHidLftCol (ActSeeAllStaCrs+48)
|
#define ActHidLftCol (ActSeeAllStaCrs+49)
|
||||||
#define ActHidRgtCol (ActSeeAllStaCrs+49)
|
#define ActHidRgtCol (ActSeeAllStaCrs+50)
|
||||||
#define ActShoLftCol (ActSeeAllStaCrs+50)
|
#define ActShoLftCol (ActSeeAllStaCrs+51)
|
||||||
#define ActShoRgtCol (ActSeeAllStaCrs+51)
|
#define ActShoRgtCol (ActSeeAllStaCrs+52)
|
||||||
#define ActChgIco (ActSeeAllStaCrs+52)
|
#define ActChgIco (ActSeeAllStaCrs+53)
|
||||||
#define ActChgMnu (ActSeeAllStaCrs+53)
|
#define ActChgMnu (ActSeeAllStaCrs+54)
|
||||||
#define ActChgNtfPrf (ActSeeAllStaCrs+54)
|
#define ActChgNtfPrf (ActSeeAllStaCrs+55)
|
||||||
|
|
||||||
#define ActPrnUsrQR (ActSeeAllStaCrs+55)
|
#define ActPrnUsrQR (ActSeeAllStaCrs+56)
|
||||||
|
|
||||||
#define ActPrnMyTimTbl (ActSeeAllStaCrs+56)
|
#define ActPrnMyTimTbl (ActSeeAllStaCrs+57)
|
||||||
#define ActEdiTut (ActSeeAllStaCrs+57)
|
#define ActEdiTut (ActSeeAllStaCrs+58)
|
||||||
#define ActChgTut (ActSeeAllStaCrs+58)
|
#define ActChgTut (ActSeeAllStaCrs+59)
|
||||||
#define ActReqRemFilBrf (ActSeeAllStaCrs+59)
|
#define ActReqRemFilBrf (ActSeeAllStaCrs+60)
|
||||||
#define ActRemFilBrf (ActSeeAllStaCrs+60)
|
#define ActRemFilBrf (ActSeeAllStaCrs+61)
|
||||||
#define ActRemFolBrf (ActSeeAllStaCrs+61)
|
#define ActRemFolBrf (ActSeeAllStaCrs+62)
|
||||||
#define ActCopBrf (ActSeeAllStaCrs+62)
|
#define ActCopBrf (ActSeeAllStaCrs+63)
|
||||||
#define ActPasBrf (ActSeeAllStaCrs+63)
|
#define ActPasBrf (ActSeeAllStaCrs+64)
|
||||||
#define ActRemTreBrf (ActSeeAllStaCrs+64)
|
#define ActRemTreBrf (ActSeeAllStaCrs+65)
|
||||||
#define ActFrmCreBrf (ActSeeAllStaCrs+65)
|
#define ActFrmCreBrf (ActSeeAllStaCrs+66)
|
||||||
#define ActCreFolBrf (ActSeeAllStaCrs+66)
|
#define ActCreFolBrf (ActSeeAllStaCrs+67)
|
||||||
#define ActCreLnkBrf (ActSeeAllStaCrs+67)
|
#define ActCreLnkBrf (ActSeeAllStaCrs+68)
|
||||||
#define ActRenFolBrf (ActSeeAllStaCrs+68)
|
#define ActRenFolBrf (ActSeeAllStaCrs+69)
|
||||||
#define ActRcvFilBrfDZ (ActSeeAllStaCrs+69)
|
#define ActRcvFilBrfDZ (ActSeeAllStaCrs+70)
|
||||||
#define ActRcvFilBrfCla (ActSeeAllStaCrs+70)
|
#define ActRcvFilBrfCla (ActSeeAllStaCrs+71)
|
||||||
#define ActExpBrf (ActSeeAllStaCrs+71)
|
#define ActExpBrf (ActSeeAllStaCrs+72)
|
||||||
#define ActConBrf (ActSeeAllStaCrs+72)
|
#define ActConBrf (ActSeeAllStaCrs+73)
|
||||||
#define ActZIPBrf (ActSeeAllStaCrs+73)
|
#define ActZIPBrf (ActSeeAllStaCrs+74)
|
||||||
#define ActReqDatBrf (ActSeeAllStaCrs+74)
|
#define ActReqDatBrf (ActSeeAllStaCrs+75)
|
||||||
#define ActChgDatBrf (ActSeeAllStaCrs+75)
|
#define ActChgDatBrf (ActSeeAllStaCrs+76)
|
||||||
#define ActDowBrf (ActSeeAllStaCrs+76)
|
#define ActDowBrf (ActSeeAllStaCrs+77)
|
||||||
|
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
/******************************** Public types *******************************/
|
/******************************** Public types *******************************/
|
||||||
|
|
|
@ -103,11 +103,18 @@
|
||||||
/****************************** Public constants *****************************/
|
/****************************** Public constants *****************************/
|
||||||
/*****************************************************************************/
|
/*****************************************************************************/
|
||||||
|
|
||||||
#define Log_PLATFORM_VERSION "SWAD 14.79 (2015/03/06)"
|
#define Log_PLATFORM_VERSION "SWAD 14.79.1 (2015/03/06)"
|
||||||
|
|
||||||
// Number of lines (includes comments but not blank lines) has been got with the following command:
|
// Number of lines (includes comments but not blank lines) has been got with the following command:
|
||||||
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h | tail -1
|
// nl swad*.c swad*.h css/swad*.css py/swad*.py js/swad*.js soap/swad*.h | tail -1
|
||||||
/*
|
/*
|
||||||
|
|
||||||
|
Version 14.79.1: Mar 06, 2015 Add options to change visibility of public profile. (178769 lines)
|
||||||
|
3 changes necessary in database:
|
||||||
|
ALTER TABLE usr_data ADD COLUMN ProfileVisibility ENUM('user','course','system','world') NOT NULL DEFAULT 'user' AFTER PhotoVisibility;
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1403','es','N','Editar privacidad');
|
||||||
|
INSERT INTO actions (ActCod,Language,Obsolete,Txt) VALUES ('1404','es','N','Cambiar privacidad perfil público');
|
||||||
|
|
||||||
Version 14.79: Mar 06, 2015 New module swad_privacy. (178678 lines)
|
Version 14.79: Mar 06, 2015 New module swad_privacy. (178678 lines)
|
||||||
1 change necessary in Makefile:
|
1 change necessary in Makefile:
|
||||||
Add swad_privacy.o to list of object files
|
Add swad_privacy.o to list of object files
|
||||||
|
|
|
@ -2244,42 +2244,43 @@ mysql> DESCRIBE tst_tags;
|
||||||
/***** Table usr_data *****/
|
/***** Table usr_data *****/
|
||||||
/*
|
/*
|
||||||
mysql> DESCRIBE usr_data;
|
mysql> DESCRIBE usr_data;
|
||||||
+-----------------+----------------------------------------+------+-----+---------+----------------+
|
+-------------------+----------------------------------------+------+-----+---------+----------------+
|
||||||
| Field | Type | Null | Key | Default | Extra |
|
| Field | Type | Null | Key | Default | Extra |
|
||||||
+-----------------+----------------------------------------+------+-----+---------+----------------+
|
+-------------------+----------------------------------------+------+-----+---------+----------------+
|
||||||
| UsrCod | int(11) | NO | PRI | NULL | auto_increment |
|
| UsrCod | int(11) | NO | PRI | NULL | auto_increment |
|
||||||
| EncryptedUsrCod | char(43) | NO | UNI | NULL | |
|
| EncryptedUsrCod | char(43) | NO | UNI | NULL | |
|
||||||
| Password | char(86) | NO | | NULL | |
|
| Password | char(86) | NO | | NULL | |
|
||||||
| Surname1 | varchar(32) | NO | | NULL | |
|
| Surname1 | varchar(32) | NO | | NULL | |
|
||||||
| Surname2 | varchar(32) | NO | | NULL | |
|
| Surname2 | varchar(32) | NO | | NULL | |
|
||||||
| FirstName | varchar(32) | NO | | NULL | |
|
| FirstName | varchar(32) | NO | | NULL | |
|
||||||
| Sex | enum('unknown','female','male') | NO | | unknown | |
|
| Sex | enum('unknown','female','male') | NO | | unknown | |
|
||||||
| Layout | tinyint(4) | NO | MUL | 0 | |
|
| Layout | tinyint(4) | NO | MUL | 0 | |
|
||||||
| Theme | char(16) | NO | MUL | NULL | |
|
| Theme | char(16) | NO | MUL | NULL | |
|
||||||
| IconSet | char(16) | NO | MUL | NULL | |
|
| IconSet | char(16) | NO | MUL | NULL | |
|
||||||
| Language | char(2) | NO | MUL | NULL | |
|
| Language | char(2) | NO | MUL | NULL | |
|
||||||
| Photo | char(43) | NO | | NULL | |
|
| Photo | char(43) | NO | | NULL | |
|
||||||
| PhotoVisibility | enum('user','course','system','world') | NO | | user | |
|
| PhotoVisibility | enum('user','course','system','world') | NO | | user | |
|
||||||
| CtyCod | int(11) | NO | MUL | -1 | |
|
| ProfileVisibility | enum('user','course','system','world') | NO | | user | |
|
||||||
| InsCtyCod | int(11) | NO | MUL | -1 | |
|
| CtyCod | int(11) | NO | MUL | -1 | |
|
||||||
| InsCod | int(11) | NO | MUL | -1 | |
|
| InsCtyCod | int(11) | NO | MUL | -1 | |
|
||||||
| DptCod | int(11) | NO | MUL | -1 | |
|
| InsCod | int(11) | NO | MUL | -1 | |
|
||||||
| CtrCod | int(11) | NO | MUL | -1 | |
|
| DptCod | int(11) | NO | MUL | -1 | |
|
||||||
| Office | varchar(127) | NO | | NULL | |
|
| CtrCod | int(11) | NO | MUL | -1 | |
|
||||||
| OfficePhone | char(16) | NO | | NULL | |
|
| Office | varchar(127) | NO | | NULL | |
|
||||||
| LocalAddress | varchar(127) | NO | | NULL | |
|
| OfficePhone | char(16) | NO | | NULL | |
|
||||||
| LocalPhone | char(16) | NO | | NULL | |
|
| LocalAddress | varchar(127) | NO | | NULL | |
|
||||||
| FamilyAddress | varchar(127) | NO | | NULL | |
|
| LocalPhone | char(16) | NO | | NULL | |
|
||||||
| FamilyPhone | char(16) | NO | | NULL | |
|
| FamilyAddress | varchar(127) | NO | | NULL | |
|
||||||
| OriginPlace | varchar(127) | NO | | NULL | |
|
| FamilyPhone | char(16) | NO | | NULL | |
|
||||||
| Birthday | date | NO | | NULL | |
|
| OriginPlace | varchar(127) | NO | | NULL | |
|
||||||
| Comments | text | NO | | NULL | |
|
| Birthday | date | NO | | NULL | |
|
||||||
| Menu | tinyint(4) | NO | MUL | 0 | |
|
| Comments | text | NO | | NULL | |
|
||||||
| SideCols | tinyint(4) | NO | MUL | 3 | |
|
| Menu | tinyint(4) | NO | MUL | 0 | |
|
||||||
| NotifNtfEvents | int(11) | NO | | 0 | |
|
| SideCols | tinyint(4) | NO | MUL | 3 | |
|
||||||
| EmailNtfEvents | int(11) | NO | | 0 | |
|
| NotifNtfEvents | int(11) | NO | | 0 | |
|
||||||
+-----------------+----------------------------------------+------+-----+---------+----------------+
|
| EmailNtfEvents | int(11) | NO | | 0 | |
|
||||||
31 rows in set (0.00 sec)
|
+-------------------+----------------------------------------+------+-----+---------+----------------+
|
||||||
|
32 rows in set (0.00 sec)
|
||||||
*/
|
*/
|
||||||
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_data ("
|
DB_CreateTable ("CREATE TABLE IF NOT EXISTS usr_data ("
|
||||||
"UsrCod INT NOT NULL AUTO_INCREMENT,"
|
"UsrCod INT NOT NULL AUTO_INCREMENT,"
|
||||||
|
@ -2295,6 +2296,7 @@ mysql> DESCRIBE usr_data;
|
||||||
"Language CHAR(2) NOT NULL,"
|
"Language CHAR(2) NOT NULL,"
|
||||||
"Photo CHAR(43) NOT NULL,"
|
"Photo CHAR(43) NOT NULL,"
|
||||||
"PhotoVisibility ENUM('user','course','system','world') NOT NULL DEFAULT 'user',"
|
"PhotoVisibility ENUM('user','course','system','world') NOT NULL DEFAULT 'user',"
|
||||||
|
"ProfileVisibility ENUM('user','course','system','world') NOT NULL DEFAULT 'user',"
|
||||||
"CtyCod INT NOT NULL DEFAULT -1,"
|
"CtyCod INT NOT NULL DEFAULT -1,"
|
||||||
"InsCtyCod INT NOT NULL DEFAULT -1,"
|
"InsCtyCod INT NOT NULL DEFAULT -1,"
|
||||||
"InsCod INT NOT NULL DEFAULT -1,"
|
"InsCod INT NOT NULL DEFAULT -1,"
|
||||||
|
|
|
@ -388,7 +388,7 @@ void Enr_UpdateUsrData (struct UsrData *UsrDat)
|
||||||
sprintf (Query,"UPDATE usr_data"
|
sprintf (Query,"UPDATE usr_data"
|
||||||
" SET Password='%s',"
|
" SET Password='%s',"
|
||||||
"Surname1='%s',Surname2='%s',FirstName='%s',Sex='%s',"
|
"Surname1='%s',Surname2='%s',FirstName='%s',Sex='%s',"
|
||||||
"Layout='%u',Theme='%s',IconSet='%s',Language='%s',PhotoVisibility='%s',"
|
"Layout='%u',Theme='%s',IconSet='%s',Language='%s',PhotoVisibility='%s',ProfileVisibility='%s',"
|
||||||
"CtyCod='%ld',"
|
"CtyCod='%ld',"
|
||||||
"LocalAddress='%s',LocalPhone='%s',FamilyAddress='%s',FamilyPhone='%s',OriginPlace='%s',Birthday='%04u-%02u-%02u',Comments='%s'"
|
"LocalAddress='%s',LocalPhone='%s',FamilyAddress='%s',FamilyPhone='%s',OriginPlace='%s',Birthday='%04u-%02u-%02u',Comments='%s'"
|
||||||
" WHERE UsrCod='%ld'",
|
" WHERE UsrCod='%ld'",
|
||||||
|
@ -400,6 +400,7 @@ void Enr_UpdateUsrData (struct UsrData *UsrDat)
|
||||||
Ico_IconSetId[UsrDat->Prefs.IconSet],
|
Ico_IconSetId[UsrDat->Prefs.IconSet],
|
||||||
Txt_STR_LANG_ID[UsrDat->Prefs.Language],
|
Txt_STR_LANG_ID[UsrDat->Prefs.Language],
|
||||||
Pri_VisibilityDB[UsrDat->PhotoVisibility],
|
Pri_VisibilityDB[UsrDat->PhotoVisibility],
|
||||||
|
Pri_VisibilityDB[UsrDat->ProfileVisibility],
|
||||||
UsrDat->CtyCod,
|
UsrDat->CtyCod,
|
||||||
UsrDat->LocalAddress,UsrDat->LocalPhone,
|
UsrDat->LocalAddress,UsrDat->LocalPhone,
|
||||||
UsrDat->FamilyAddress,UsrDat->FamilyPhone,UsrDat->OriginPlace,
|
UsrDat->FamilyAddress,UsrDat->FamilyPhone,UsrDat->OriginPlace,
|
||||||
|
|
23
swad_photo.c
23
swad_photo.c
|
@ -776,29 +776,10 @@ void Pho_RemoveUsrFromTableClicksWithoutPhoto (long UsrCod)
|
||||||
|
|
||||||
bool Pho_ShowUsrPhotoIsAllowed (struct UsrData *UsrDat,char *PhotoURL)
|
bool Pho_ShowUsrPhotoIsAllowed (struct UsrData *UsrDat,char *PhotoURL)
|
||||||
{
|
{
|
||||||
bool ICanSeePhoto = false;
|
bool ICanSeePhoto;
|
||||||
bool ItsMe = Gbl.Usrs.Me.UsrDat.UsrCod == UsrDat->UsrCod;
|
|
||||||
|
|
||||||
/***** Check if I can see the other's photo *****/
|
/***** Check if I can see the other's photo *****/
|
||||||
switch (UsrDat->PhotoVisibility)
|
ICanSeePhoto = Pri_ShowIsAllowed (UsrDat->PhotoVisibility,UsrDat->UsrCod);
|
||||||
{
|
|
||||||
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
|
|
||||||
if (ItsMe || // I always can see my photo
|
|
||||||
Gbl.Usrs.Me.LoggedRole == Rol_ROLE_SYS_ADM) // A system admin always can see any user's photo
|
|
||||||
ICanSeePhoto = true;
|
|
||||||
else
|
|
||||||
ICanSeePhoto = Usr_CheckIfUsrSharesAnyOfMyCrsWithDifferentRole (UsrDat->UsrCod); // Both users share the same course but whit different role
|
|
||||||
break;
|
|
||||||
case Pri_VISIBILITY_COURSE: // Visible by users sharing courses with me
|
|
||||||
ICanSeePhoto = Usr_CheckIfUsrSharesAnyOfMyCrs (UsrDat->UsrCod); // Both users share the same course
|
|
||||||
break;
|
|
||||||
case Pri_VISIBILITY_SYSTEM: // Visible by any user logged in platform
|
|
||||||
ICanSeePhoto = Gbl.Usrs.Me.Logged;
|
|
||||||
break;
|
|
||||||
case Pri_VISIBILITY_WORLD: // Public, visible by all the people, even unlogged visitors
|
|
||||||
ICanSeePhoto = true;
|
|
||||||
break;
|
|
||||||
}
|
|
||||||
|
|
||||||
/***** Photo is shown if I can see it, and it exists *****/
|
/***** Photo is shown if I can see it, and it exists *****/
|
||||||
return ICanSeePhoto ? Pho_BuildLinkToPhoto (UsrDat,PhotoURL,true) :
|
return ICanSeePhoto ? Pho_BuildLinkToPhoto (UsrDat,PhotoURL,true) :
|
||||||
|
|
|
@ -51,8 +51,9 @@ typedef enum
|
||||||
void Pri_PutLinkToChangeMyPrivacy (void);
|
void Pri_PutLinkToChangeMyPrivacy (void);
|
||||||
void Pri_EditMyPrivacy (void);
|
void Pri_EditMyPrivacy (void);
|
||||||
|
|
||||||
void Pri_PutFormVisibility (Act_Action_t Action,Pri_Visibility_t CurrentVisibilityInDB);
|
|
||||||
Pri_Visibility_t Pri_GetVisibilityFromStr (const char *Str);
|
Pri_Visibility_t Pri_GetVisibilityFromStr (const char *Str);
|
||||||
bool Pri_GetParamVisibility (void);
|
bool Pri_GetParamVisibility (void);
|
||||||
|
|
||||||
|
bool Pri_ShowIsAllowed (Pri_Visibility_t Visibility,long OtherUsrCod);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
|
@ -3064,9 +3064,6 @@ void Rec_GetUsrExtraDataFromRecordForm (struct UsrData *UsrDat)
|
||||||
if (UnsignedNum <= Usr_SEX_MALE)
|
if (UnsignedNum <= Usr_SEX_MALE)
|
||||||
UsrDat->Sex = (Usr_Sex_t) UnsignedNum;
|
UsrDat->Sex = (Usr_Sex_t) UnsignedNum;
|
||||||
|
|
||||||
/***** Get whether photo is public from form *****/
|
|
||||||
UsrDat->PhotoVisibility = Pri_GetParamVisibility ();
|
|
||||||
|
|
||||||
/***** Get country code *****/
|
/***** Get country code *****/
|
||||||
Par_GetParToText ("OthCtyCod",LongStr,1+10);
|
Par_GetParToText ("OthCtyCod",LongStr,1+10);
|
||||||
UsrDat->CtyCod = Str_ConvertStrCodToLongCod (LongStr);
|
UsrDat->CtyCod = Str_ConvertStrCodToLongCod (LongStr);
|
||||||
|
|
42
swad_text.c
42
swad_text.c
|
@ -27049,6 +27049,27 @@ const char *Txt_Public_open_educational_resource_OER_for_everyone =
|
||||||
"Público, recurso educacional aberto (OER) para todos";
|
"Público, recurso educacional aberto (OER) para todos";
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_Public_profile =
|
||||||
|
#if L==0
|
||||||
|
"Perfil públic";
|
||||||
|
#elif L==1
|
||||||
|
"Öffentliches Benutzer-Profile";
|
||||||
|
#elif L==2
|
||||||
|
"Public profile";
|
||||||
|
#elif L==3
|
||||||
|
"Perfil público";
|
||||||
|
#elif L==4
|
||||||
|
"Profil public";
|
||||||
|
#elif L==5
|
||||||
|
"Perfil público"; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"Profilo pubblico";
|
||||||
|
#elif L==7
|
||||||
|
"Profil publiczny";
|
||||||
|
#elif L==8
|
||||||
|
"Perfil público";
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_Public_views =
|
const char *Txt_Public_views =
|
||||||
#if L==0
|
#if L==0
|
||||||
"Accessos públics";
|
"Accessos públics";
|
||||||
|
@ -42726,6 +42747,27 @@ const char *Txt_The_visibility_of_your_photo_has_changed =
|
||||||
"The visibility of your photo has changed."; // Necessita de tradução
|
"The visibility of your photo has changed."; // Necessita de tradução
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
const char *Txt_The_visibility_of_your_public_profile_has_changed =
|
||||||
|
#if L==0
|
||||||
|
"La visibilidad de su perfil público ha cambiado."; // Necessita traduccio
|
||||||
|
#elif L==1
|
||||||
|
"The visibility of your public profile has changed."; // Need Übersetzung
|
||||||
|
#elif L==2
|
||||||
|
"The visibility of your public profile has changed.";
|
||||||
|
#elif L==3
|
||||||
|
"La visibilidad de su perfil público ha cambiado.";
|
||||||
|
#elif L==4
|
||||||
|
"The visibility of your public profile has changed."; // Besoin de traduction
|
||||||
|
#elif L==5
|
||||||
|
"La visibilidad de su perfil público ha cambiado."; // Okoteve traducción
|
||||||
|
#elif L==6
|
||||||
|
"The visibility of your public profile has changed."; // Bisogno di traduzione
|
||||||
|
#elif L==7
|
||||||
|
"The visibility of your public profile has changed."; // Potrzebujesz tlumaczenie
|
||||||
|
#elif L==8
|
||||||
|
"The visibility of your public profile has changed."; // Necessita de tradução
|
||||||
|
#endif
|
||||||
|
|
||||||
const char *Txt_The_whole_course =
|
const char *Txt_The_whole_course =
|
||||||
#if L==0
|
#if L==0
|
||||||
"Toda la asignatura"; // Necessita traduccio
|
"Toda la asignatura"; // Necessita traduccio
|
||||||
|
|
71
swad_user.c
71
swad_user.c
|
@ -238,7 +238,8 @@ void Usr_ResetUsrDataExceptUsrCodAndIDs (struct UsrData *UsrDat)
|
||||||
UsrDat->EmailConfirmed = false;
|
UsrDat->EmailConfirmed = false;
|
||||||
|
|
||||||
UsrDat->Photo[0] = '\0';
|
UsrDat->Photo[0] = '\0';
|
||||||
UsrDat->PhotoVisibility = Pri_VISIBILITY_DEFAULT;
|
UsrDat->PhotoVisibility =
|
||||||
|
UsrDat->ProfileVisibility = Pri_VISIBILITY_DEFAULT;
|
||||||
|
|
||||||
UsrDat->CtyCod = -1L;
|
UsrDat->CtyCod = -1L;
|
||||||
UsrDat->OriginPlace[0] = '\0';
|
UsrDat->OriginPlace[0] = '\0';
|
||||||
|
@ -388,7 +389,7 @@ void Usr_GetUsrDataFromUsrCod (struct UsrData *UsrDat)
|
||||||
|
|
||||||
/***** Get user's data from database *****/
|
/***** Get user's data from database *****/
|
||||||
sprintf (Query,"SELECT EncryptedUsrCod,Password,Surname1,Surname2,FirstName,Sex,"
|
sprintf (Query,"SELECT EncryptedUsrCod,Password,Surname1,Surname2,FirstName,Sex,"
|
||||||
"Layout,Theme,IconSet,Language,Photo,PhotoVisibility,"
|
"Layout,Theme,IconSet,Language,Photo,PhotoVisibility,ProfileVisibility,"
|
||||||
"CtyCod,InsCtyCod,InsCod,DptCod,CtrCod,Office,OfficePhone,"
|
"CtyCod,InsCtyCod,InsCod,DptCod,CtrCod,Office,OfficePhone,"
|
||||||
"LocalAddress,LocalPhone,FamilyAddress,FamilyPhone,OriginPlace,Birthday,Comments,"
|
"LocalAddress,LocalPhone,FamilyAddress,FamilyPhone,OriginPlace,Birthday,Comments,"
|
||||||
"Menu,SideCols,NotifNtfEvents,EmailNtfEvents"
|
"Menu,SideCols,NotifNtfEvents,EmailNtfEvents"
|
||||||
|
@ -468,36 +469,37 @@ void Usr_GetUsrDataFromUsrCod (struct UsrData *UsrDat)
|
||||||
|
|
||||||
/* Get rest of data */
|
/* Get rest of data */
|
||||||
strncpy (UsrDat->Photo,row[10],sizeof (UsrDat->Photo)-1);
|
strncpy (UsrDat->Photo,row[10],sizeof (UsrDat->Photo)-1);
|
||||||
UsrDat->PhotoVisibility = Pri_GetVisibilityFromStr (row[11]);
|
UsrDat->PhotoVisibility = Pri_GetVisibilityFromStr (row[11]);
|
||||||
UsrDat->CtyCod = Str_ConvertStrCodToLongCod (row[12]);
|
UsrDat->ProfileVisibility = Pri_GetVisibilityFromStr (row[12]);
|
||||||
UsrDat->InsCtyCod = Str_ConvertStrCodToLongCod (row[13]);
|
UsrDat->CtyCod = Str_ConvertStrCodToLongCod (row[13]);
|
||||||
UsrDat->InsCod = Str_ConvertStrCodToLongCod (row[14]);
|
UsrDat->InsCtyCod = Str_ConvertStrCodToLongCod (row[14]);
|
||||||
|
UsrDat->InsCod = Str_ConvertStrCodToLongCod (row[15]);
|
||||||
|
|
||||||
UsrDat->Tch.DptCod = Str_ConvertStrCodToLongCod (row[15]);
|
UsrDat->Tch.DptCod = Str_ConvertStrCodToLongCod (row[16]);
|
||||||
UsrDat->Tch.CtrCod = Str_ConvertStrCodToLongCod (row[16]);
|
UsrDat->Tch.CtrCod = Str_ConvertStrCodToLongCod (row[17]);
|
||||||
strncpy (UsrDat->Tch.Office ,row[17],sizeof (UsrDat->Tch.Office )-1);
|
strncpy (UsrDat->Tch.Office ,row[18],sizeof (UsrDat->Tch.Office )-1);
|
||||||
strncpy (UsrDat->Tch.OfficePhone,row[18],sizeof (UsrDat->Tch.OfficePhone)-1);
|
strncpy (UsrDat->Tch.OfficePhone,row[19],sizeof (UsrDat->Tch.OfficePhone)-1);
|
||||||
|
|
||||||
strncpy (UsrDat->LocalAddress ,row[19],sizeof (UsrDat->LocalAddress )-1);
|
strncpy (UsrDat->LocalAddress ,row[20],sizeof (UsrDat->LocalAddress )-1);
|
||||||
strncpy (UsrDat->LocalPhone ,row[20],sizeof (UsrDat->LocalPhone )-1);
|
strncpy (UsrDat->LocalPhone ,row[21],sizeof (UsrDat->LocalPhone )-1);
|
||||||
strncpy (UsrDat->FamilyAddress ,row[21],sizeof (UsrDat->FamilyAddress )-1);
|
strncpy (UsrDat->FamilyAddress ,row[22],sizeof (UsrDat->FamilyAddress )-1);
|
||||||
strncpy (UsrDat->FamilyPhone ,row[22],sizeof (UsrDat->FamilyPhone )-1);
|
strncpy (UsrDat->FamilyPhone ,row[23],sizeof (UsrDat->FamilyPhone )-1);
|
||||||
strncpy (UsrDat->OriginPlace ,row[23],sizeof (UsrDat->OriginPlace )-1);
|
strncpy (UsrDat->OriginPlace ,row[24],sizeof (UsrDat->OriginPlace )-1);
|
||||||
strcpy (StrBirthday,
|
strcpy (StrBirthday,
|
||||||
row[24] ? row[24] :
|
row[25] ? row[25] :
|
||||||
"0000-00-00");
|
"0000-00-00");
|
||||||
Usr_GetUsrCommentsFromString (row[25] ? row[25] :
|
Usr_GetUsrCommentsFromString (row[26] ? row[26] :
|
||||||
"",
|
"",
|
||||||
UsrDat); // Get the comments comunes a todas the courses
|
UsrDat); // Get the comments comunes a todas the courses
|
||||||
|
|
||||||
/* Get menu */
|
/* Get menu */
|
||||||
UsrDat->Prefs.Menu = Mnu_MENU_DEFAULT;
|
UsrDat->Prefs.Menu = Mnu_MENU_DEFAULT;
|
||||||
if (sscanf (row[26],"%u",&UnsignedNum) == 1)
|
if (sscanf (row[27],"%u",&UnsignedNum) == 1)
|
||||||
if (UnsignedNum < Mnu_NUM_MENUS)
|
if (UnsignedNum < Mnu_NUM_MENUS)
|
||||||
UsrDat->Prefs.Menu = (Mnu_Menu_t) UnsignedNum;
|
UsrDat->Prefs.Menu = (Mnu_Menu_t) UnsignedNum;
|
||||||
|
|
||||||
/* Get if user wants to show side columns */
|
/* Get if user wants to show side columns */
|
||||||
if (sscanf (row[27],"%u",&UsrDat->Prefs.SideCols) == 1)
|
if (sscanf (row[28],"%u",&UsrDat->Prefs.SideCols) == 1)
|
||||||
{
|
{
|
||||||
if (UsrDat->Prefs.SideCols > Lay_SHOW_BOTH_COLUMNS)
|
if (UsrDat->Prefs.SideCols > Lay_SHOW_BOTH_COLUMNS)
|
||||||
UsrDat->Prefs.SideCols = Cfg_DEFAULT_COLUMNS;
|
UsrDat->Prefs.SideCols = Cfg_DEFAULT_COLUMNS;
|
||||||
|
@ -506,10 +508,10 @@ void Usr_GetUsrDataFromUsrCod (struct UsrData *UsrDat)
|
||||||
UsrDat->Prefs.SideCols = Cfg_DEFAULT_COLUMNS;
|
UsrDat->Prefs.SideCols = Cfg_DEFAULT_COLUMNS;
|
||||||
|
|
||||||
/* Get on which events I want to be notified by e-mail */
|
/* Get on which events I want to be notified by e-mail */
|
||||||
if (sscanf (row[28],"%u",&UsrDat->Prefs.NotifNtfEvents) != 1)
|
if (sscanf (row[29],"%u",&UsrDat->Prefs.NotifNtfEvents) != 1)
|
||||||
UsrDat->Prefs.NotifNtfEvents = (unsigned) -1; // 0xFF..FF
|
UsrDat->Prefs.NotifNtfEvents = (unsigned) -1; // 0xFF..FF
|
||||||
|
|
||||||
if (sscanf (row[29],"%u",&UsrDat->Prefs.EmailNtfEvents) != 1)
|
if (sscanf (row[30],"%u",&UsrDat->Prefs.EmailNtfEvents) != 1)
|
||||||
UsrDat->Prefs.EmailNtfEvents = 0;
|
UsrDat->Prefs.EmailNtfEvents = 0;
|
||||||
if (UsrDat->Prefs.EmailNtfEvents >= (1 << Ntf_NUM_NOTIFY_EVENTS)) // Maximum binary value for NotifyEvents is 000...0011...11
|
if (UsrDat->Prefs.EmailNtfEvents >= (1 << Ntf_NUM_NOTIFY_EVENTS)) // Maximum binary value for NotifyEvents is 000...0011...11
|
||||||
UsrDat->Prefs.EmailNtfEvents = 0;
|
UsrDat->Prefs.EmailNtfEvents = 0;
|
||||||
|
@ -7428,3 +7430,30 @@ void Usr_ShowUserProfile (void)
|
||||||
Usr_RequestUserProfile ();
|
Usr_RequestUserProfile ();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/*****************************************************************************/
|
||||||
|
/******************** Change my public profile visibility ********************/
|
||||||
|
/*****************************************************************************/
|
||||||
|
|
||||||
|
void Usr_ChangeProfileVisibility (void)
|
||||||
|
{
|
||||||
|
extern const char *Pri_VisibilityDB[Pri_NUM_OPTIONS_PRIVACY];
|
||||||
|
extern const char *Txt_The_visibility_of_your_public_profile_has_changed;
|
||||||
|
char Query[128];
|
||||||
|
|
||||||
|
/***** Get param with public/private photo *****/
|
||||||
|
Gbl.Usrs.Me.UsrDat.ProfileVisibility = Pri_GetParamVisibility ();
|
||||||
|
|
||||||
|
/***** Store public/private photo in database *****/
|
||||||
|
sprintf (Query,"UPDATE usr_data SET ProfileVisibility='%s'"
|
||||||
|
" WHERE UsrCod='%ld'",
|
||||||
|
Pri_VisibilityDB[Gbl.Usrs.Me.UsrDat.ProfileVisibility],
|
||||||
|
Gbl.Usrs.Me.UsrDat.UsrCod);
|
||||||
|
DB_QueryUPDATE (Query,"can not update your preference about public profile visibility");
|
||||||
|
|
||||||
|
/***** Show alert *****/
|
||||||
|
Lay_ShowAlert (Lay_SUCCESS,Txt_The_visibility_of_your_public_profile_has_changed);
|
||||||
|
|
||||||
|
/***** Show form again *****/
|
||||||
|
Pri_EditMyPrivacy ();
|
||||||
|
}
|
||||||
|
|
|
@ -128,6 +128,7 @@ struct UsrData
|
||||||
bool EmailConfirmed;
|
bool EmailConfirmed;
|
||||||
char Photo [Cry_LENGTH_ENCRYPTED_STR_SHA256_BASE64+1]; // Name of public link to photo
|
char Photo [Cry_LENGTH_ENCRYPTED_STR_SHA256_BASE64+1]; // Name of public link to photo
|
||||||
Pri_Visibility_t PhotoVisibility; // Who can see user's photo
|
Pri_Visibility_t PhotoVisibility; // Who can see user's photo
|
||||||
|
Pri_Visibility_t ProfileVisibility; // Who can see user's public profile
|
||||||
long CtyCod; // Country
|
long CtyCod; // Country
|
||||||
char OriginPlace [Cns_MAX_BYTES_STRING+1];
|
char OriginPlace [Cns_MAX_BYTES_STRING+1];
|
||||||
struct Date Birthday;
|
struct Date Birthday;
|
||||||
|
@ -325,5 +326,6 @@ void Usr_GetAndShowNumUsrsInPlatform (Rol_Role_t Role);
|
||||||
|
|
||||||
void Usr_RequestUserProfile (void);
|
void Usr_RequestUserProfile (void);
|
||||||
void Usr_ShowUserProfile (void);
|
void Usr_ShowUserProfile (void);
|
||||||
|
void Usr_ChangeProfileVisibility (void);
|
||||||
|
|
||||||
#endif
|
#endif
|
||||||
|
|
Loading…
Reference in New Issue