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: {
type: 'valueAsBoolean'
},
E2E_Enabled_Default_PrivateRooms: {
type: 'valueAsBoolean'
},
Accounts_Directory_DefaultView: {
type: 'valueAsString'
},

View File

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

View File

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

View File

@ -68,13 +68,29 @@ export interface IFormData {
const CreateChannelView = () => {
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 {
control,
handleSubmit,
formState: { isDirty },
setValue
} = 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'>>();
@ -84,15 +100,6 @@ const CreateChannelView = () => {
const { colors } = useTheme();
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(() => {
sendLoadingEvent({ visible: isFetching });
}, [isFetching]);
@ -154,6 +161,7 @@ const CreateChannelView = () => {
createPrivateChannelPermission={createPrivateChannelPermission}
isTeam={isTeam}
setValue={setValue}
e2eEnabledDefaultPrivateRooms={e2eEnabledDefaultPrivateRooms}
/>
</View>
{users.length > 0 ? (