fix: properly set new room to be encrypted according to server settings (#5176)

Co-authored-by: Reinaldo Neto <reinaldonetof@hotmail.com>
This commit is contained in:
Aviad Pineles 2023-09-12 16:07:11 +03:00 committed by GitHub
parent 9f8799d729
commit cc553b05f6
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
4 changed files with 30 additions and 13 deletions

View File

@ -102,6 +102,9 @@ export const defaultSettings = {
E2E_Enable: { E2E_Enable: {
type: 'valueAsBoolean' type: 'valueAsBoolean'
}, },
E2E_Enabled_Default_PrivateRooms: {
type: 'valueAsBoolean'
},
Accounts_Directory_DefaultView: { Accounts_Directory_DefaultView: {
type: 'valueAsString' type: 'valueAsString'
}, },

View File

@ -21,7 +21,8 @@ const serverInfoKeys = [
'Force_Screen_Lock', 'Force_Screen_Lock',
'Force_Screen_Lock_After', 'Force_Screen_Lock_After',
'uniqueID', 'uniqueID',
'E2E_Enable' 'E2E_Enable',
'E2E_Enabled_Default_PrivateRooms'
]; ];
// these settings are used only on onboarding process // these settings are used only on onboarding process
@ -85,6 +86,9 @@ const serverInfoUpdate = async (serverInfo: IPreparedSettings[], iconSetting: IS
if (setting._id === 'E2E_Enable') { if (setting._id === 'E2E_Enable') {
return { ...allSettings, E2E_Enable: setting.valueAsBoolean }; return { ...allSettings, E2E_Enable: setting.valueAsBoolean };
} }
if (setting._id === 'E2E_Enabled_Default_PrivateRooms') {
return { ...allSettings, E2E_Enabled_Default_PrivateRooms: setting.valueAsBoolean };
}
return allSettings; return allSettings;
}, {}); }, {});

View File

@ -13,16 +13,18 @@ export const RoomSettings = ({
isTeam, isTeam,
setValue, setValue,
createChannelPermission, createChannelPermission,
createPrivateChannelPermission createPrivateChannelPermission,
e2eEnabledDefaultPrivateRooms
}: { }: {
isTeam: boolean; isTeam: boolean;
setValue: UseFormSetValue<IFormData>; setValue: UseFormSetValue<IFormData>;
createChannelPermission: boolean; createChannelPermission: boolean;
createPrivateChannelPermission: boolean; createPrivateChannelPermission: boolean;
e2eEnabledDefaultPrivateRooms: boolean;
}) => { }) => {
const [type, setType] = useState(true); const [type, setType] = useState(true);
const [readOnly, setReadOnly] = useState(false); const [readOnly, setReadOnly] = useState(false);
const [encrypted, setEncrypted] = useState(false); const [encrypted, setEncrypted] = useState(e2eEnabledDefaultPrivateRooms);
const [broadcast, setBroadcast] = useState(false); const [broadcast, setBroadcast] = useState(false);
const { encryptionEnabled } = useAppSelector(state => ({ const { encryptionEnabled } = useAppSelector(state => ({

View File

@ -68,13 +68,29 @@ export interface IFormData {
const CreateChannelView = () => { const CreateChannelView = () => {
const [createChannelPermission, createPrivateChannelPermission] = usePermissions(['create-c', 'create-p']); const [createChannelPermission, createPrivateChannelPermission] = usePermissions(['create-c', 'create-p']);
const { isFetching, useRealName, users, e2eEnabledDefaultPrivateRooms } = useAppSelector(
state => ({
isFetching: state.createChannel.isFetching,
users: state.selectedUsers.users,
useRealName: state.settings.UI_Use_Real_Name as boolean,
e2eEnabledDefaultPrivateRooms: state.encryption.enabled && (state.settings.E2E_Enabled_Default_PrivateRooms as boolean)
}),
shallowEqual
);
const { const {
control, control,
handleSubmit, handleSubmit,
formState: { isDirty }, formState: { isDirty },
setValue setValue
} = useForm<IFormData>({ } = useForm<IFormData>({
defaultValues: { channelName: '', broadcast: false, encrypted: false, readOnly: false, type: createPrivateChannelPermission } defaultValues: {
channelName: '',
broadcast: false,
encrypted: e2eEnabledDefaultPrivateRooms,
readOnly: false,
type: createPrivateChannelPermission
}
}); });
const navigation = useNavigation<StackNavigationProp<ChatsStackParamList, 'CreateChannelView'>>(); const navigation = useNavigation<StackNavigationProp<ChatsStackParamList, 'CreateChannelView'>>();
@ -84,15 +100,6 @@ const CreateChannelView = () => {
const { colors } = useTheme(); const { colors } = useTheme();
const dispatch = useDispatch(); const dispatch = useDispatch();
const { isFetching, useRealName, users } = useAppSelector(
state => ({
isFetching: state.createChannel.isFetching,
users: state.selectedUsers.users,
useRealName: state.settings.UI_Use_Real_Name as boolean
}),
shallowEqual
);
useEffect(() => { useEffect(() => {
sendLoadingEvent({ visible: isFetching }); sendLoadingEvent({ visible: isFetching });
}, [isFetching]); }, [isFetching]);
@ -154,6 +161,7 @@ const CreateChannelView = () => {
createPrivateChannelPermission={createPrivateChannelPermission} createPrivateChannelPermission={createPrivateChannelPermission}
isTeam={isTeam} isTeam={isTeam}
setValue={setValue} setValue={setValue}
e2eEnabledDefaultPrivateRooms={e2eEnabledDefaultPrivateRooms}
/> />
</View> </View>
{users.length > 0 ? ( {users.length > 0 ? (