Skip to content

Commit 866c506

Browse files
authored
feat(ABAC): Disable message actions (#6767)
1 parent a4f8a94 commit 866c506

File tree

28 files changed

+137
-105
lines changed

28 files changed

+137
-105
lines changed

app/containers/ActionSheet/Item.tsx

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ export const Item = React.memo(({ item, hide }: IActionSheetItem) => {
2626
hide();
2727
item?.onPress();
2828
} else {
29-
EventEmitter.emit(LISTENER, { message: I18n.t('You_dont_have_permission_to_perform_this_action') });
29+
EventEmitter.emit(LISTENER, { message: item?.disabledReason || I18n.t('You_dont_have_permission_to_perform_this_action') });
3030
}
3131
};
3232

app/containers/ActionSheet/Provider.tsx

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,7 @@ export type TActionSheetOptionsItem = {
1414
onPress: () => void;
1515
right?: () => React.ReactElement;
1616
enabled?: boolean;
17+
disabledReason?: string;
1718
};
1819

1920
export type TActionSheetOptions = {

app/containers/MessageActions/index.tsx

Lines changed: 10 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -442,7 +442,8 @@ const MessageActions = React.memo(
442442
title: I18n.t('Reply_in_direct_message'),
443443
icon: 'arrow-back',
444444
onPress: () => handleReplyInDM(message),
445-
enabled: permissions.hasCreateDirectMessagePermission
445+
enabled: permissions.hasCreateDirectMessagePermission && !room.abacAttributes,
446+
disabledReason: room.abacAttributes && I18n.t('ABAC_disabled_action_reason')
446447
});
447448
}
448449

@@ -454,19 +455,24 @@ const MessageActions = React.memo(
454455
enabled: permissions.hasCreateDiscussionOtherUserPermission
455456
});
456457

458+
// Forward
457459
if (compareServerVersion(serverVersion, 'greaterThanOrEqualTo', '6.2.0') && !videoConfBlock) {
458460
options.push({
459461
title: I18n.t('Forward'),
460462
icon: 'arrow-forward',
461-
onPress: () => handleShareMessage(message)
463+
onPress: () => handleShareMessage(message),
464+
enabled: !room.abacAttributes,
465+
disabledReason: room.abacAttributes && I18n.t('ABAC_disabled_action_reason')
462466
});
463467
}
464468

465-
// Permalink
469+
// Get link
466470
options.push({
467471
title: I18n.t('Get_link'),
468472
icon: 'link',
469-
onPress: () => handlePermalink(message)
473+
onPress: () => handlePermalink(message),
474+
enabled: !room.abacAttributes,
475+
disabledReason: room.abacAttributes && I18n.t('ABAC_disabled_action_reason')
470476
});
471477

472478
// Copy

app/i18n/locales/ar.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
"A11y_in_app_notification": "رسالة جديدة من {{name}}: {{message}}",
99
"A11y_incoming_call_dismiss": "تجاهل",
1010
"A11y_incoming_call_swipe_down_to_view_options": "اسحب لأسفل لعرض الخيارات",
11+
"ABAC_disabled_action_reason": "غير متاح في الغرف المدارة بواسطة ABAC",
12+
"ABAC_managed": "مدار بواسطة ABAC",
13+
"ABAC_managed_description": "فقط المستخدمون المتوافقون لديهم حق الوصول إلى الغرف التي يتم التحكم فيها بالوصول المستند إلى السمات. تحدد السمات الوصول إلى الغرفة.",
14+
"ABAC_room_attributes": "سمات الغرفة",
1115
"Accessibility": "إمكانية الوصول",
1216
"Accessibility_and_Appearance": "إمكانية الوصول والمظهر",
1317
"Accessibility_statement": "بيان الوصول",
@@ -629,8 +633,5 @@
629633
"Your_invite_link_will_never_expire": "لن تنتهي صلاحية رابط الدعوة الخاص بك",
630634
"Your_password_is": "كلمة المرور الخاصة بك هي",
631635
"Your_Password_Must_Have": "يجب أن تحتوي كلمة المرور الخاصة بك على:",
632-
"Your_workspace": "مساحة عملك",
633-
"ABAC_room_attributes": "سمات الغرفة",
634-
"ABAC_managed": "مدار بواسطة ABAC",
635-
"ABAC_managed_description": "فقط المستخدمون المتوافقون لديهم حق الوصول إلى الغرف التي يتم التحكم فيها بالوصول المستند إلى السمات. تحدد السمات الوصول إلى الغرفة."
636+
"Your_workspace": "مساحة عملك"
636637
}

app/i18n/locales/bn-IN.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
"A11y_in_app_notification": "{{name}} থেকে নতুন বার্তা: {{message}}",
1313
"A11y_incoming_call_dismiss": "বন্ধ করুন",
1414
"A11y_incoming_call_swipe_down_to_view_options": "নির্বাচনগুলি দেখতে নিচে সোয়াইপ করুন",
15+
"ABAC_disabled_action_reason": "ABAC-পরিচালিত রুমগুলিতে উপলব্ধ নয়",
16+
"ABAC_managed": "ABAC দ্বারা পরিচালিত",
17+
"ABAC_managed_description": "শুধুমাত্র অনুগত ব্যবহারকারীদের অ্যাট্রিবিউট-ভিত্তিক অ্যাক্সেস নিয়ন্ত্রিত রুমগুলিতে অ্যাক্সেস আছে। অ্যাট্রিবিউটগুলি রুমের অ্যাক্সেস নির্ধারণ করে।",
18+
"ABAC_room_attributes": "রুমের বৈশিষ্ট্য",
1519
"accept": "গ্রহণ করুন",
1620
"Accessibility": "অ্যাক্সেসিবিলিটি",
1721
"Accessibility_and_Appearance": "অ্যাক্সেসিবিলিটি ও চেহারা",
@@ -892,8 +896,5 @@
892896
"Your_invite_link_will_never_expire": "আপনার আমন্ত্রণ লিঙ্কটি কখনও মেয়াদ শেষ হবে না।",
893897
"Your_password_is": "আপনার পাসওয়ার্ড হল",
894898
"Your_Password_Must_Have": "আপনার পাসওয়ার্ড থাকতে হবে:",
895-
"Your_workspace": "আপনার ওয়ার্কস্পেস",
896-
"ABAC_room_attributes": "রুমের বৈশিষ্ট্য",
897-
"ABAC_managed": "ABAC দ্বারা পরিচালিত",
898-
"ABAC_managed_description": "শুধুমাত্র অনুগত ব্যবহারকারীদের অ্যাট্রিবিউট-ভিত্তিক অ্যাক্সেস নিয়ন্ত্রিত রুমগুলিতে অ্যাক্সেস আছে। অ্যাট্রিবিউটগুলি রুমের অ্যাক্সেস নির্ধারণ করে।"
899+
"Your_workspace": "আপনার ওয়ার্কস্পেস"
899900
}

app/i18n/locales/cs.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
"A11y_in_app_notification": "Nová zpráva od {{name}}: {{message}}",
1313
"A11y_incoming_call_dismiss": "Zavřít",
1414
"A11y_incoming_call_swipe_down_to_view_options": "Přejetím dolů zobrazíte možnosti",
15+
"ABAC_disabled_action_reason": "Není k dispozici v místnostech spravovaných systémem ABAC",
16+
"ABAC_managed": "Spravováno ABAC",
17+
"ABAC_managed_description": "Pouze vyhovující uživatelé mají přístup k místnostem řízeným přístupem na základě atributů. Atributy určují přístup k místnosti.",
18+
"ABAC_room_attributes": "Atributy místnosti",
1519
"accept": "Akceptovat",
1620
"Accessibility": "Přístupnost",
1721
"Accessibility_and_Appearance": "Přístupnost a vzhled",
@@ -967,8 +971,5 @@
967971
"Your_password_is": "Vaše heslo je",
968972
"Your_Password_Must_Have": "Vaše heslo musí mít:",
969973
"Your_push_was_sent_to_s_devices": "Vaše push byla odeslána do {{s}} zařízení",
970-
"Your_workspace": "Váš pracovní prostor",
971-
"ABAC_room_attributes": "Atributy místnosti",
972-
"ABAC_managed": "Spravováno ABAC",
973-
"ABAC_managed_description": "Pouze vyhovující uživatelé mají přístup k místnostem řízeným přístupem na základě atributů. Atributy určují přístup k místnosti."
974+
"Your_workspace": "Váš pracovní prostor"
974975
}

app/i18n/locales/de.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
"A11y_in_app_notification": "Neue Nachricht von {{name}}: {{message}}",
1313
"A11y_incoming_call_dismiss": "Verwerfen",
1414
"A11y_incoming_call_swipe_down_to_view_options": "Nach unten wischen, um Optionen anzuzeigen",
15+
"ABAC_disabled_action_reason": "Nicht verfügbar in ABAC-verwalteten Räumen",
16+
"ABAC_managed": "ABAC verwaltet",
17+
"ABAC_managed_description": "Nur konforme Benutzer haben Zugriff auf attributbasierte zugriffsgesteuerte Räume. Attribute bestimmen den Raumzugriff.",
18+
"ABAC_room_attributes": "Raumattribute",
1519
"accept": "Annehmen",
1620
"Accessibility": "Barrierefreiheit",
1721
"Accessibility_and_Appearance": "Barrierefreiheit & Erscheinungsbild",
@@ -882,8 +886,5 @@
882886
"Your_invite_link_will_never_expire": "Ihr Einladungs-Link wird niemals ablaufen.",
883887
"Your_password_is": "Ihr Passwort lautet",
884888
"Your_Password_Must_Have": "Ihr Passwort muss:",
885-
"Your_workspace": "Ihr Arbeitsbereich",
886-
"ABAC_room_attributes": "Raumattribute",
887-
"ABAC_managed": "ABAC verwaltet",
888-
"ABAC_managed_description": "Nur konforme Benutzer haben Zugriff auf attributbasierte zugriffsgesteuerte Räume. Attribute bestimmen den Raumzugriff."
889+
"Your_workspace": "Ihr Arbeitsbereich"
889890
}

app/i18n/locales/en.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
"A11y_in_app_notification": "New message from {{name}}: {{message}}",
1313
"A11y_incoming_call_dismiss": "Dismiss",
1414
"A11y_incoming_call_swipe_down_to_view_options": "Swipe down to view options",
15+
"ABAC_disabled_action_reason": "Not available in ABAC-managed rooms",
16+
"ABAC_managed": "ABAC managed",
17+
"ABAC_managed_description": "Only compliant users have access to attribute-based access controlled rooms. Attributes determine room access.",
18+
"ABAC_room_attributes": "Room attributes",
1519
"accept": "Accept",
1620
"Accessibility": "Accessibility",
1721
"Accessibility_and_Appearance": "Accessibility & appearance",
@@ -995,8 +999,5 @@
995999
"Your_invite_link_will_never_expire": "Your invite link will never expire.",
9961000
"Your_password_is": "Your password is",
9971001
"Your_Password_Must_Have": "Your password must have:",
998-
"Your_push_was_sent_to_s_devices": "Your push was sent to {{s}} devices",
999-
"ABAC_room_attributes": "Room attributes",
1000-
"ABAC_managed": "ABAC managed",
1001-
"ABAC_managed_description": "Only compliant users have access to attribute-based access controlled rooms. Attributes determine room access."
1002+
"Your_push_was_sent_to_s_devices": "Your push was sent to {{s}} devices"
10021003
}

app/i18n/locales/es.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -8,6 +8,10 @@
88
"A11y_in_app_notification": "Nuevo mensaje de {{name}}: {{message}}",
99
"A11y_incoming_call_dismiss": "Descartar",
1010
"A11y_incoming_call_swipe_down_to_view_options": "Desliza hacia abajo para ver opciones",
11+
"ABAC_disabled_action_reason": "No disponible en salas gestionadas por ABAC",
12+
"ABAC_managed": "Gestionado por ABAC",
13+
"ABAC_managed_description": "Solo los usuarios compatibles tienen acceso a las salas controladas por acceso basado en atributos. Los atributos determinan el acceso a la sala.",
14+
"ABAC_room_attributes": "Atributos de la sala",
1115
"Accessibility": "Accesibilidad",
1216
"Accessibility_and_Appearance": "Accesibilidad y apariencia",
1317
"Accessibility_statement": "Declaración de accesibilidad",
@@ -448,8 +452,5 @@
448452
"you_were_mentioned": "has sido mencionado",
449453
"You_will_not_be_able_to_recover_this_message": "¡No podrás recuperar este mensaje!",
450454
"Your_certificate": "Tu certificado",
451-
"Your_Password_Must_Have": "Su contraseña debe tener:",
452-
"ABAC_room_attributes": "Atributos de la sala",
453-
"ABAC_managed": "Gestionado por ABAC",
454-
"ABAC_managed_description": "Solo los usuarios compatibles tienen acceso a las salas controladas por acceso basado en atributos. Los atributos determinan el acceso a la sala."
455+
"Your_Password_Must_Have": "Su contraseña debe tener:"
455456
}

app/i18n/locales/fi.json

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,10 @@
1212
"A11y_in_app_notification": "Uusi viesti {{name}}: {{message}}",
1313
"A11y_incoming_call_dismiss": "Hylkää",
1414
"A11y_incoming_call_swipe_down_to_view_options": "Pyyhkäise alas nähdäksesi vaihtoehdot",
15+
"ABAC_disabled_action_reason": "Ei saatavilla ABAC-hallituissa huoneissa",
16+
"ABAC_managed": "ABAC-hallittu",
17+
"ABAC_managed_description": "Vain yhteensopivilla käyttäjillä on pääsy attribuuttipohjaisesti hallittuihin huoneisiin. Attribuutit määrittävät huoneen pääsyn.",
18+
"ABAC_room_attributes": "Huoneen attribuutit",
1519
"Accessibility": "Saavutettavuus",
1620
"Accessibility_and_Appearance": "Saavutettavuus ja ulkonäkö",
1721
"Accessibility_statement": "Saavutettavuusilmoitus",
@@ -854,8 +858,5 @@
854858
"Your_invite_link_will_never_expire": "Kutsulinkkisi ei vanhene.",
855859
"Your_password_is": "Salasanasi on",
856860
"Your_Password_Must_Have": "Salasanasi on oltava:",
857-
"Your_workspace": "Työtilasi",
858-
"ABAC_room_attributes": "Huoneen attribuutit",
859-
"ABAC_managed": "ABAC-hallittu",
860-
"ABAC_managed_description": "Vain yhteensopivilla käyttäjillä on pääsy attribuuttipohjaisesti hallittuihin huoneisiin. Attribuutit määrittävät huoneen pääsyn."
861+
"Your_workspace": "Työtilasi"
861862
}

0 commit comments

Comments
 (0)