Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Biometrics in new settings #18258

Merged
merged 13 commits into from
Jan 9, 2024
Merged

Biometrics in new settings #18258

merged 13 commits into from
Jan 9, 2024

Conversation

clauxx
Copy link
Member

@clauxx clauxx commented Dec 20, 2023

fixes #18204

Summary

Added the Password setting screen and the Enable Biometric functionality. In order to enable biometrics from the settings, the user has to enter their password first.

Platforms

  • Android
  • iOS

Areas that maybe impacted

Functional
  • settings
  • login
  • biometrics

Steps to test

  • Open Status
  • Open settings
  • Go to "Password"
  • Toggle biometrics

status: ready

@clauxx clauxx self-assigned this Dec 20, 2023
@clauxx clauxx force-pushed the feat/biometrics-new-settings branch from da32288 to b12bb6a Compare December 20, 2023 14:32
@status-im-auto
Copy link
Member

status-im-auto commented Dec 20, 2023

Jenkins Builds

Click to see older builds (33)
Commit #️⃣ Finished (UTC) Duration Platform Result
b12bb6a #2 2023-12-20 14:33:00 ~40 sec android 📄log
b12bb6a #2 2023-12-20 14:33:06 ~43 sec android-e2e 📄log
b12bb6a #2 2023-12-20 14:33:06 ~44 sec ios 📄log
b12bb6a #2 2023-12-20 14:34:52 ~2 min tests 📄log
✔️ f605fb7 #3 2023-12-20 14:47:54 ~5 min tests 📄log
✔️ 9e146d5 #4 2023-12-20 14:53:14 ~4 min tests 📄log
✔️ 9e146d5 #4 2023-12-20 14:55:19 ~6 min ios 📱ipa 📲
✔️ 9e146d5 #4 2023-12-20 14:55:56 ~6 min android 🤖apk 📲
✔️ 9e146d5 #4 2023-12-20 14:55:56 ~7 min android-e2e 🤖apk 📲
✔️ 4bec538 #5 2023-12-20 15:50:09 ~3 min tests 📄log
✔️ 4bec538 #5 2023-12-20 15:52:08 ~5 min ios 📱ipa 📲
✔️ 4bec538 #5 2023-12-20 15:53:35 ~7 min android-e2e 🤖apk 📲
✔️ 4bec538 #5 2023-12-20 15:53:50 ~7 min android 🤖apk 📲
✔️ 8e016f9 #6 2023-12-21 09:06:49 ~5 min tests 📄log
✔️ 8e016f9 #6 2023-12-21 09:10:31 ~8 min android-e2e 🤖apk 📲
✔️ 8e016f9 #6 2023-12-21 09:10:33 ~8 min android 🤖apk 📲
✔️ 8e016f9 #6 2023-12-21 09:13:45 ~12 min ios 📱ipa 📲
✔️ 530907d #8 2023-12-21 09:54:35 ~4 min tests 📄log
✔️ 530907d #8 2023-12-21 09:57:22 ~7 min android 🤖apk 📲
✔️ 530907d #8 2023-12-21 09:57:36 ~7 min android-e2e 🤖apk 📲
✔️ 530907d #8 2023-12-21 10:02:04 ~11 min ios 📱ipa 📲
✔️ 03b5d5d #10 2023-12-21 15:12:24 ~4 min tests 📄log
✔️ 03b5d5d #10 2023-12-21 15:14:00 ~6 min ios 📱ipa 📲
✔️ 03b5d5d #10 2023-12-21 15:14:35 ~6 min android-e2e 🤖apk 📲
✔️ 03b5d5d #10 2023-12-21 15:15:47 ~7 min android 🤖apk 📲
✔️ cb61bfd #11 2023-12-21 15:40:29 ~4 min tests 📄log
✔️ cb61bfd #11 2023-12-21 15:43:21 ~7 min android-e2e 🤖apk 📲
✔️ cb61bfd #11 2023-12-21 15:44:09 ~8 min android 🤖apk 📲
✔️ cb61bfd #11 2023-12-21 15:48:41 ~12 min ios 📱ipa 📲
✔️ 131552e #12 2023-12-22 11:30:53 ~4 min tests 📄log
✔️ 131552e #12 2023-12-22 11:32:26 ~6 min ios 📱ipa 📲
✔️ 131552e #12 2023-12-22 11:32:36 ~6 min android 🤖apk 📲
✔️ 131552e #12 2023-12-22 11:33:55 ~7 min android-e2e 🤖apk 📲
Commit #️⃣ Finished (UTC) Duration Platform Result
✔️ 5dd53e0 #13 2023-12-22 12:33:39 ~4 min tests 📄log
✔️ 5dd53e0 #13 2023-12-22 12:36:09 ~6 min android-e2e 🤖apk 📲
✔️ 5dd53e0 #13 2023-12-22 12:36:22 ~6 min android 🤖apk 📲
✔️ 5dd53e0 #13 2023-12-22 12:39:53 ~10 min ios 📱ipa 📲
✔️ 852e246 #14 2024-01-09 07:45:18 ~5 min tests 📄log
✔️ 852e246 #14 2024-01-09 07:45:22 ~5 min ios 📱ipa 📲
✔️ 852e246 #14 2024-01-09 07:45:56 ~6 min android-e2e 🤖apk 📲
✔️ 852e246 #14 2024-01-09 07:47:11 ~7 min android 🤖apk 📲

@clauxx clauxx changed the title Feat/biometrics new settings Biometrics in new settings Dec 20, 2023
@clauxx clauxx marked this pull request as draft December 20, 2023 14:34
@@ -28,6 +29,12 @@
:FaceID (i18n/label :t/biometric-faceid)
(i18n/label :t/biometric-touchid)))

(defn get-icon-by-type
[biometric-type]
(case biometric-type
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

we generally prefer condp = as case does not pick up compile time errors, in this case you can probably just use an (if, though I take the idea is that we will have more eventually

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yes, in case we would like to differentiate touch id with fingerprint or the face biometrics on android in the future

(rf/reg-event-fx
:standard-auth/reset-login-password
(fn [{:keys [db]}]
{:db (update-in db [:profile/login] dissoc :password :error)}))
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

looks like you can use update (update db :profile/login dissoc...)

@clauxx clauxx marked this pull request as ready for review December 20, 2023 14:42
@clauxx clauxx requested a review from cammellos December 20, 2023 15:04
Copy link
Contributor

@mohsen-ghafouri mohsen-ghafouri left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Well done. LGTM :)

Copy link
Member

@smohamedjavid smohamedjavid left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Nice work! @clauxx 🚀

:action :selector
:action-props {:disabled? (not supported?)
:on-change press-handler
:checked? (and supported? enabled?)}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

biometric-on? let var can be re-used here.

Comment on lines 71 to 73
{:style {:padding-horizontal 20
:padding-bottom 8
:padding-top 12}}
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Styles can be moved to style.cljs.

@mariia-skrypnyk mariia-skrypnyk self-assigned this Dec 21, 2023
@clauxx
Copy link
Member Author

clauxx commented Dec 21, 2023

Nice work! @clauxx 🚀

Thanks @smohamedjavid! Addressed your comments

@status-im-auto
Copy link
Member

71% of end-end tests have passed

Total executed tests: 48
Failed tests: 8
Expected to fail tests: 6
Passed tests: 34
IDs of failed tests: 702777,703133,702851,703086,704615,702936,703391,702947 
IDs of expected to fail tests: 702732,702894,702783,703503,702731,702808 

Failed tests (8)

Click to expand
  • Rerun failed tests

  • Class TestActivityMultipleDevicePR:

    1. test_navigation_jump_to, id: 702936

    Device 2: Tap on found: Button
    Device 2: Attempt 0 is successful clicking close-activity-center

    Test setup failed: activity_center/test_activity_center.py:227: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:383: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:150: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:147: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:155: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Device sessions

    2. test_activity_center_reply_read_unread_delete_filter_swipe, id: 702947

    Test setup failed: activity_center/test_activity_center.py:227: in prepare_devices
        self.home_2.handle_contact_request(self.username_1)
    ../views/home_view.py:383: in handle_contact_request
        chat_element.accept_contact_request()
    ../views/home_view.py:150: in accept_contact_request
        self.handle_cr("accept-contact-request")
    ../views/home_view.py:147: in handle_cr
        ).wait_for_rendering_ended_and_click()
    ../views/base_element.py:155: in wait_for_rendering_ended_and_click
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 2: Button by xpath:`//*[contains(@text, 'user1')]/ancestor::*[@content-desc='activity']/*[@content-desc="accept-contact-request"]` is not found on the screen after wait_for_visibility_of_element
    



    Class TestCommunityOneDeviceMerged:

    1. test_restore_multiaccount_with_waku_backup_remove_switch, id: 703133

    Device 1: Logging out
    Device 1: Scrolling down to LogoutButton

    critical/chats/test_public_chat_browsing.py:192: in test_restore_multiaccount_with_waku_backup_remove_switch
        profile.logout()
    ../views/profile_view.py:479: in logout
        self.logout_dialog.logout_button.click()
    ../views/base_element.py:443: in click
        self.find_element().click()
    ../views/base_element.py:435: in find_element
        raise NoSuchElementException(
     Device 1: `LogoutButton` by `xpath`:`//*[@text="Log out" or @text="LOG OUT"]` not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_send_image_save_and_share, id: 703391

    Device 2: Find Button by accessibility id: image-0
    Device 2: Click system back button

    critical/chats/test_1_1_public_chats.py:455: in test_1_1_chat_send_image_save_and_share
        self.errors.verify_no_errors()
    base_test_case.py:191: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message about saving a photo is not shown for sender.
    E    Message about saving a photo is not shown for receiver.
    



    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_add_contact_field_validation, id: 702777

    Device 2: Logging out
    Device 2: Scrolling down to LogoutButton

    activity_center/test_activity_center.py:145: in test_add_contact_field_validation
        self.profile_2.logout()
    ../views/profile_view.py:479: in logout
        self.logout_dialog.logout_button.click()
    ../views/base_element.py:443: in click
        self.find_element().click()
    ../views/base_element.py:435: in find_element
        raise NoSuchElementException(
     Device 2: `LogoutButton` by `xpath`:`//*[@text="Log out" or @text="LOG OUT"]` not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Device sessions

    2. test_activity_center_contact_request_accept_swipe_mark_all_as_read, id: 702851

    Device 2: Logging out
    Device 2: Scrolling down to LogoutButton

    activity_center/test_activity_center.py:93: in test_activity_center_contact_request_accept_swipe_mark_all_as_read
        self.profile_2.logout()
    ../views/profile_view.py:479: in logout
        self.logout_dialog.logout_button.click()
    ../views/base_element.py:443: in click
        self.find_element().click()
    ../views/base_element.py:435: in find_element
        raise NoSuchElementException(
     Device 2: `LogoutButton` by `xpath`:`//*[@text="Log out" or @text="LOG OUT"]` not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception
    



    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_mark_all_messages_as_read, id: 703086

    Device 1: Looking for chat: 'general'
    Device 1: Click system back button

    critical/chats/test_public_chat_browsing.py:755: in test_community_mark_all_messages_as_read
        community_1_element.long_press_until_element_is_shown(mark_as_read_button)
    ../views/base_element.py:318: in long_press_until_element_is_shown
        element = self.find_element()
    ../views/home_view.py:74: in find_element
        self.wait_for_visibility_of_element(20)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 1: ChatElement by xpath:`//*[@content-desc='chat-name-text'][starts-with(@text,'open community')]/..` is not found on the screen after wait_for_visibility_of_element; also Unexpected Alert is shown: 'Feature not implemented.'; 
     RemoteDisconnected
    



    Device sessions

    2. test_community_edit_delete_message_when_offline, id: 704615

    Device 1: Could not reach home view by pressing system back button
    Device 1: Find CommunitiesTab by accessibility id: communities-stack-tab

    critical/chats/test_public_chat_browsing.py:773: in test_community_edit_delete_message_when_offline
        self.home_1.communities_tab.click()
    ../views/base_element.py:90: in click
        self.find_element().click()
    ../views/base_element.py:79: in find_element
        raise NoSuchElementException(
     Device 1: CommunitiesTab by accessibility id: `communities-stack-tab` is not found on the screen; For documentation on this error, please visit: https://www.selenium.dev/documentation/webdriver/troubleshooting/errors#no-such-element-exception; also Unexpected Alert is shown: 'Feature not implemented.'
    



    Device sessions

    Expected to fail tests (6)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_pin_messages, id: 702732

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Pin feature is in development]]

    2. test_group_chat_offline_pn, id: 702808

    Device 3: Looking for a message by text: message from old member
    Device 3: Looking for a message by text: message from new member

    critical/chats/test_group_chat.py:324: in test_group_chat_offline_pn
        self.errors.verify_no_errors()
    base_test_case.py:191: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Messages PN was not fetched from offline 
    

    [[Data delivery issue]]

    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_discovery, id: 703503

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Curated communities not loading, https://github.com//issues/17852]]

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_is_shown_message_sent_delivered_from_offline, id: 702783

    Device 2: Find Text by xpath: //*[starts-with(@text,'test message')]/ancestor::android.view.ViewGroup[@content-desc='chat-item']
    Device 2: Tap on found: Text

    critical/chats/test_1_1_public_chats.py:612: in test_1_1_chat_is_shown_message_sent_delivered_from_offline
        self.errors.verify_no_errors()
    base_test_case.py:191: in verify_no_errors
        pytest.fail('\n '.join([self.errors.pop(0) for _ in range(len(self.errors))]))
     Message was not delivered after resending from offline
    E    Message status was not changed to Delivered, it's Sending after back up online! 
    

    [[Data delivery issue]]

    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_pin_messages, id: 702731

    Test is not run, e2e blocker  
    

    [[reason: [NOTRUN] Pin feature is in development]]

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_contact_block_unblock_offline, id: 702894

    Device 1: Find ProfileButton by accessibility id: open-profile
    Device 1: Wait for element Button for max 30s and click when it is available

    critical/chats/test_public_chat_browsing.py:687: in test_community_contact_block_unblock_offline
        profile_1.contacts_button.wait_and_click()
    ../views/base_element.py:96: in wait_and_click
        self.wait_for_visibility_of_element(sec)
    ../views/base_element.py:139: in wait_for_visibility_of_element
        raise TimeoutException(
     Device 1: Button by accessibility id:`contacts-button` is not found on the screen after wait_for_visibility_of_element 
    

    [[Message can be missed after unblock: https://github.com//issues/16873]]

    Device sessions

    Passed tests (34)

    Click to expand

    Class TestGroupChatMultipleDeviceMergedNewUI:

    1. test_group_chat_mute_chat, id: 703495
    Device sessions

    2. test_group_chat_send_image_save_and_share, id: 703297
    Device sessions

    3. test_group_chat_reactions, id: 703202
    Device sessions

    4. test_group_chat_join_send_text_messages_push, id: 702807
    Device sessions

    Class TestCommunityMultipleDeviceMergedTwo:

    1. test_community_markdown_support, id: 702809
    Device sessions

    2. test_community_hashtag_links_to_community_channels, id: 702948
    Device sessions

    3. test_community_mentions_push_notification, id: 702786
    Device sessions

    4. test_community_leave, id: 702845
    Device sessions

    5. test_community_join_when_node_owner_offline, id: 703629
    Device sessions

    Class TestDeepLinksOneDevice:

    1. test_links_open_universal_links_from_chat, id: 704613
    Device sessions

    2. test_links_deep_links, id: 702775
    Device sessions

    Class TestCommunityOneDeviceMerged:

    1. test_community_copy_and_paste_message_in_chat_input, id: 702742
    Device sessions

    2. test_community_undo_delete_message, id: 702869
    Device sessions

    3. test_community_navigate_to_channel_when_relaunch, id: 702846
    Device sessions

    4. test_community_mute_community_and_channel, id: 703382
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUiTwo:

    1. test_1_1_chat_delete_via_long_press_relogin, id: 702784
    Device sessions

    2. test_1_1_chat_mute_chat, id: 703496
    Device sessions

    Class TestActivityMultipleDevicePRTwo:

    1. test_activity_center_mentions, id: 702957
    Device sessions

    2. test_activity_center_admin_notification_accept_swipe, id: 702958
    Device sessions

    Class TestOneToOneChatMultipleSharedDevicesNewUi:

    1. test_1_1_chat_emoji_send_reply_and_open_link, id: 702782
    Device sessions

    2. test_1_1_chat_text_message_delete_push_disappear, id: 702733
    Device sessions

    3. test_1_1_chat_push_emoji, id: 702813
    Device sessions

    4. test_1_1_chat_non_latin_messages_stack_update_profile_photo, id: 702745
    Device sessions

    5. test_1_1_chat_edit_message, id: 702855
    Device sessions

    6. test_1_1_chat_message_reaction, id: 702730
    Device sessions

    Class TestActivityCenterContactRequestMultipleDevicePR:

    1. test_activity_center_contact_request_decline, id: 702850
    Device sessions

    Class TestCommunityMultipleDeviceMerged:

    1. test_community_several_images_send_reply, id: 703194
    Device sessions

    2. test_community_one_image_send_reply, id: 702859
    Device sessions

    3. test_community_emoji_send_copy_paste_reply, id: 702840
    Device sessions

    4. test_community_message_delete, id: 702839
    Device sessions

    5. test_community_message_send_check_timestamps_sender_username, id: 702838
    Device sessions

    6. test_community_links_with_previews_github_youtube_twitter_gif_send_enable, id: 702844
    Device sessions

    7. test_community_message_edit, id: 702843
    Device sessions

    8. test_community_unread_messages_badge, id: 702841
    Device sessions

    @smohamedjavid
    Copy link
    Member

    @clauxx - I checked the PR build. There was a crash on opening the app for login for a profile with the biometric login, and it got disabled later.

    '[__NSPlaceholderDictionary initWithObjects:forKeys:count:]: attempt to insert nil object from objects[3]' was thrown while invoking setInternetCredentialsForServer on target RNKeychainManager with params (
        0xed0f3859b0de9835fbca5c119b02e2e773ff7e137c5c5b8ba0991233710e016c,
        0xed0f3859b0de9835fbca5c119b02e2e773ff7e137c5c5b8ba0991233710e016c,
        "<null>",
            {
        },
        288,
        289
    )
    

    This comes from react-native-keychain. I guess the authentication type is not cleaned up in the keychain.
    :keychain/get-auth-method fx returns biometric on opening the app.

    (rf/defn login-with-biometric-if-available
    {:events [:profile.login/login-with-biometric-if-available]}
    [_ key-uid]
    {:keychain/get-auth-method [key-uid
    #(rf/dispatch [:profile.login/get-auth-method-success % key-uid])]})
    (rf/defn get-auth-method-success
    {:events [:profile.login/get-auth-method-success]}
    [{:keys [db]} auth-method key-uid]
    (merge {:db (assoc db :auth-method auth-method)}
    (when (= auth-method keychain/auth-method-biometric)
    {:keychain/password-hash-migration
    {:key-uid key-uid
    :callback (fn []
    (rf/dispatch [:biometric/authenticate
    {:on-success #(rf/dispatch [:profile.login/biometric-success])
    :on-fail #(rf/dispatch
    [:profile.login/biometric-auth-fail %])}]))}})))

    (rf/dispatch [:hide-bottom-sheet])
    (rf/dispatch [:standard-auth/reset-login-password])
    (rf/dispatch [:biometric/enable
    (security/mask-data password)]))})))
    Copy link
    Contributor

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    @clauxx if you take a look at on-auth-success the password is already hashed etc 👍

    Copy link
    Contributor

    @J-Son89 J-Son89 Dec 21, 2023

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    It depends if the password is from biometrics or password etc

    Copy link
    Member Author

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    I'm just masking it here, so no hashing involved. Maybe it should be masked inside authorize before it's passed to on-auth-success, otherwise the whole purpose is kinda lost.

    @mariia-skrypnyk
    Copy link

    @mariia-skrypnyk @smohamedjavid This should fix it. Can you try it out again?

    It's working perfectly! 🚀 Thanks @clauxx

    Great job ! @clauxx
    iOS checked!

    @mariia-skrypnyk
    Copy link

    ISSUE 3 Touch ID toggle in the Profile Settings has two different names

    Preconditions: Android device with set fingerprint

    Steps:

    1. Install Android PR App
    2. Go trough onboarding-> choose Maybe Later on Biometrics screen
    3. Go to Profile -> Password
    4. Actual result: Toggle is "Fingerprint"
    5. Go to the device settings and delete fingerprint (or all if you have more than 1)
    6. Enter Password

    Actual result: Fingerprint toggle has Touch ID naming
    photo_2023-12-22_11-12-03

    Comment on lines 122 to +124
    :on-auth-success (fn [entered-password]
    (prn entered-password)
    (rf/dispatch [:wallet/derive-address-and-add-account
    {:sha3-pwd entered-password
    {:sha3-pwd (security/safe-unmask-data entered-password)
    Copy link
    Member Author

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    @J-Son89 I added the change to mask the pwd inside authorize's on-auth-success to avoid the password hash getting leaked e.g. as it would in line 122 (prn entered-password), as it's still sensitive info.

    @clauxx
    Copy link
    Member Author

    clauxx commented Dec 22, 2023

    @Francesca-G please have a look. FYI we agreed to handle the issues mentioned by @mariia-skrypnyk in a follow-up.

    Copy link

    @Francesca-G Francesca-G left a comment

    Choose a reason for hiding this comment

    The reason will be displayed to describe this comment to others. Learn more.

    The toggle has a different "On" style than design

    Implementation:

    Screenshot 2023-12-22 alle 16 32 09

    Design:

    Screenshot 2023-12-22 alle 16 32 02

    Besides that it looks good to me :)

    @clauxx clauxx merged commit fb13c30 into develop Jan 9, 2024
    6 checks passed
    @clauxx clauxx deleted the feat/biometrics-new-settings branch January 9, 2024 08:25
    briansztamfater pushed a commit that referenced this pull request Jan 11, 2024
    * feat: added biometrics setting to new-settings
    
    * fix: fix renaming issues from status-im2
    
    * ref: addressed @cammellos' review comments
    
    * fix: open password settings in a modal
    
    * ref: addressed review comments
    
    * fix: disabling biometric clears auth-method from keychain
    
    * chore: quo/overlay seqs the childrend so need to add keys
    
    * fix: don't pass the password unmasked between events to avoid leaks
    @mariia-skrypnyk mariia-skrypnyk added anothers-profile https://www.notion.so/Silhouettes-08d57f036b43473b904bfd3f1b2a76aa Tested - OK test cases added and removed Tested - OK test cases added anothers-profile https://www.notion.so/Silhouettes-08d57f036b43473b904bfd3f1b2a76aa labels Mar 4, 2024
    Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
    Projects
    Archived in project
    Archived in project
    Development

    Successfully merging this pull request may close these issues.

    Enable biometric in settings
    9 participants