Djorkaeff Alexandre
3c9017a62d
[NEW] E2E Encryption ( #2394 )
...
* Add E2EKey to Subscription Model
* Install react-native-simple-crypto
* Install bytebuffer
* Add translations
* CreateChannel Encrypted toggle
* Request E2E_Enabled setting
* Add some E2E API methods
* POC E2E Encryption
* Garbage remove
* Remove keys cleaner
* Android cast JWK -> PKCS1
* Initialize E2E when Login Success
* Add some translations
* Add e2e property to Message model
* Send Encrypted messages
* (iOS) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* (Android) PKCS1 -> JWK & e2e.setUserPublicAndPrivateKeys
* Create an encrypted channel
* Fix app crashing on RoomsList
* Create room key
* Set Room E2E Key (Android)
* Edit room encrypted
* Show encrypted icon on messages
* logEvents
* Decrypt pending subscriptions & messages
* Handle user cancel e2e password entry
* E2ESavePasswordView
* Update Snapshot
* Add encrypted props to message on Send
* Thread messages encryption
* E2E -> Encryption
* Share Extension: Share encrypted text
* (POC) Search messages on Encrypted room
* Provide room key to new users
* Request roomKey on stream-notify-room-users
* Add e2eKeyId to Room Model
* (WIP) E2E Encryption Screens
* Remove encryption subscription file
* Move E2E_Enable to Server Model
* Encryption List Banner
* Move Encryption init to Sagas
* Show banner only when enabled
* Use RocketChat/react-native-simple-crypto
* Search on WM only when is an Encrypted channel
* (WIP) Encryption Banner
* Encryption banner
* Patch -> Fork
* Improve send encrypted message
* Update simple-crypto
* Not decrypt already decrypted messages
* Add comments
* Change eslint disable to inline
* Improve code
* Remove comment
* Some fixes
* (WIP) Encryption Screens
* Improve sub find
* Resend an encrypted message
* Fix comment
* Code improvements
* Hide e2e buttons on features if it is not enabled
* InApp notifications of a encrypted room
* Encryption stop logic
* Edit encrypted message
* DB batch on decryptPending
* Encryption ready client
* Comments
* Handle getRoomInstance errors
* Multiple messages decrypt
* Remove unnecessary try/catch
* Fix decrypt all messages history
* Just add a questionmark
* Fix some subscriptions missing decrypt
* Disable request key logic
* Fix unicode emojis
* Fix e2ekey request
* roomId -> subscription
* Decrypt subscription after merge
* E2ERoom -> EncryptionRoom
* Fix infinite loading
* Handle import key errors
* Handle request key errors
* Move e2eRequestRoomKey to Rocket.Chat
* WIP handshake when key should be requested
* Add search messages explanation
* Remove some TODO and update comments
* Improvements
* Dont show message hash to user
* Handle key request & prevent multiple calls
* Request E2EKey on decryptSubscription that doesn't exists on database yet
* Insert decrypted subscription
* Fix crash after login
* Decrypt sub when receive the key
* Decrypt pending messages of a room
* Encrypted as a switch
* Buffer to Base64 URI Safe
* Add a relevant comment
* Prevent import key without a privateKey
* Prevent create a new instance when client is not ready
* Update simple-crypto & remove replace trick
* More comments
* Remove useless comment
* Remove useless try/catch
* I18n all E2E screens
* E2ESavePassword -> E2ESaveYourPassword
* Prevent multiple views on message when is not encrypted
* Fix encryption toggle not working sometimes
* follow some suggestions
* dont rotate icons
* remove unnecessary condition
* remove unreachable event
* create channel comment
* disable no-bitwise rule for entire file
* loadKeys -> persistKeys
* getMasterKey -> generateMasterKey
* explicit difference between E2EKey & e2eKeyId
* roomId -> rid
* group columns
* Remove server selector
* missing log events
* remove comment
* use stored public key
* update simple-crypto & remove base64-js patch
* add some logs
* remove unreachable condition
* log errors
* handle errors on provide key directly on subscription
* Downgrade RocketChat/react-native-simple-crypto
* improve get room instance
* migration of older apps
* check encrypted status before send a message
* wait client ready
* use our own base64-js
* add more jest tests
* explain return
* remove unncessary stop
* thrown error to caller
* remove superfluous checks
* use Encryption property
* change ready state logic
* ready -> establishing
* encryption.room -> encryptionRoom
* EncryptionRoom -> Room
* add documentation
* wait establishing before provide a room key
* remove superfluous condition
* improve error handling logic
* fallback e2ekey set
* remove no longer necessary check
* remove e.g.
* improve getRoomInstance
* import from index
* use batch
* fix a comment
* decrypt tmsg
* dont show hash when message is encrypted
* Fix detox
* Apply suggestions from code review
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-09-11 11:31:38 -03:00
Diego Mello
b06bf7fcb5
[IMPROVEMENT] Verify Enterprise status on Omnichannel ( #2399 )
...
* Add enterpriseModules on Redux
* Fetch enterprise modules and put on redux
* hasLicense
* Clear modules
* Hide omnichannel rooms
* Minor refactor
* Hide omnichannel toggle
* Check license on user status
* Apply on search
* lint
* Look for 'livechat-enterprise'
* One module is enough to enable the features
* Unhide omnichannel rooms
* Sort tweaks
* Move omnichannel toggle to RoomsListView
* Remove omnichannel toggle from SettingsView
* Fix toggle
* Ask to enable omnichannel
* Lint
* Fix issues found on review
2020-08-21 10:38:50 -03:00
Djorkaeff Alexandre
cb5c914570
[IMPROVEMENT] Add deep link to Jitsi calls ( #2223 )
...
* [WIP] Jitsi Deep Links
* [WIP] Add app links
* save uniqueID servers database
* add serverInfoKey of uniqueID
* search server by call url
* open jitsi deeplink poc
* improve jitsi url
* fix
* improve comment
* add missing android scheme
* handle host not found
* Allow app links to be matched on parseDeepLinking
* Fix push notification of a call
* Minor fix
Co-authored-by: Diego Mello <diegolmello@gmail.com>
2020-07-30 14:25:52 -03:00
Diego Mello
61afa86c0e
[NEW] Passcode and biometric unlock ( #2059 )
...
* Update expo libs
* Configure expo-local-authentication
* ScreenLockedView
* Authenticate server change
* Auth on app resume
* localAuthentication util
* Add servers.lastLocalAuthenticatedSession column
* Save last session date on background
* Use our own version of app state redux
* Fix libs
* Remove inactive
* ScreenLockConfigView
* Apply on saved data
* Auto lock option label
* Starting passcode
* Basic passcode flow working
* Change passcode
* Check if biometry is enrolled
* Use fork
* Migration
* Patch expo-local-authentication
* Use async storage
* Styling
* Timer
* Refactor
* Lock orientation portrait when not on tablet
* share extension
* Deep linking
* Share extension
* Refactoring passcode
* use state
* Stash
* Refactor
* Change passcode
* Animate dots on error
* Matching passcodes
* Shake
* Remove lib
* Delete button
* Fade animation on modal
* Refactoring
* ItemInfo
* I18n
* I18n
* Remove unnecessary prop
* Save biometry column
* Raise time to lock to 30 seconds
* Vibrate on wrong confirmation passcode
* Reset attempts and save last authentication on local passcode confirmation
* Remove inline style
* Save last auth
* Fix header blink
* Change function name
* Fix android modal
* Fix vibration permission
* PasscodeEnter calls biometry
* Passcode on the state
* Biometry button on PasscodeEnter
* Show whole passcode
* Secure passcode
* Save passcode with promise to prevent empty passcodes and immediately lock
* Patch expo-local-authentication
* I18n
* Fix biometry being called every time
* Blur screen on app inactive
* Revert "Blur screen on app inactive"
This reverts commit a4ce812934
.
* Remove immediately because of how Activities work on Android
* Pods
* New layout
* stash
* Layout refactored
* Fix icons
* Force set passcode from server
* Lint
* Improve permission message
* Forced passcode subtitle
* Disable based on admin's choice
* Require local authentication on login success
* Refactor
* Update tests
* Update react-native-device-info to fix notch
* Lint
* Fix modal
* Fix icons
* Fix min auto lock time
* Review
* keep enabled on mobile
* fix forced by admin when enable unlock with passcode
* use DEFAULT_AUTO_LOCK when manual enable screenLock
* fix check has passcode
* request biometry on first password
* reset auto time lock when disabled on server
Co-authored-by: Djorkaeff Alexandre <djorkaeff.unb@gmail.com>
2020-05-08 14:04:37 -03:00
Diego Mello
9ba37107c7
[CHORE] Migrate to Watermelon ( #1171 )
...
* Install
* Create subscriptions
* Subscription observing and sorting
* Saving last message
* Stash
* Stash
* stash
* Stash
* Rooms list listing :)
* Animated set state
* Search working
* Fix load rooms on login
* stash db class
* set active db with path
* Remove db on logout
* stash
* Created updateMessages
* Inserting/updating threads
* Persisting thread messages
* Removed unused list
* Loading messages from watermelon
* Debounce updates and rerender message
* optional fields
* Fix realm conflict issues
* Fix some render issues
* stash
* List mount
* stash
* fix message id
* Fix tmsg
* - Save subscription.rid as id on watermelon and _id as _id
- Send room as param to room view
* Throttle room updates
* stash
* comment removeClippedSubviews
* Fetch thread name
* try/catch updateMessages
* Show loading while RoomView.init is still running
* stash
* Fix updateMessages
* Threads
* Delete message
* Permalink
* Pin
* Star
* Report
* MessageActions refactor
* Edit message
* Reply message
* Add reaction
* Auto translate
* Fix connection issues
* Mark message as error if something happened on the call
* Error actions
* get custom emoji
* Always run console.log when __DEV__
* Try to create serversDB
* Don't call updateMessages. Execute that entire logic for one message id instead.
* Refactor update messages
* ServersDB User [Realm -> Watermelon]
* Fix models
* Custom emojis
* Custom emojis on emoji picker
* Frequently used emojis
* Fix add reaction on message
* stash
* Fix
* Read messages
* Fix thread
* Fetch thread header
* Follow/unfollow thread
* Fix thread
* Upload file
* Thread tweak
* Realm -> Watermelon [Share Extension]
* Add RoomsUpdatedAt to Servers Table
* Settings
* Settings
* Fix logout
* SendFileMessage ServersDB
* ServersDB on serverDropdown
* Remove serversDB from Realm
* Load thread messages
* Delete message
* Improve getSettings
* Improve
* Remove subscription
* Remove update
* Update room via socket
* Small refactor
* Fix logout and improve migration
* Refactor updateMessages
* Improve migration
* Remove unnecessary update
* Revert remove runAfterInteractions
* Fix serverDropdown
* Fix merge
* Init room actions Watermelon
* Room actions Watermelon
* Remove realm on room members
* Room swipe -> Watermelon
* Fix hideChannel
* Get roles watermelon
* Get permissions watermelon
* Users typing + memory db
* Auto translate watermelon
* New Message View
* Selected Users View
* try/catch
* Get Slash Commands watermelon
* Slash Commands message box
* Custom emojis message box
* Get rooms message box
* Room info view
* Room info edit
* Save active users
* Small refactor
* Message Actions
* hasPermission await
* last hasPermission fix
* Active users on redux
* Add user roles
* Users typing on redux and remove memory db
* Fix saga delay
* Fix few issues
* Fix slash commands preview
* Draft message
* Add muted
* Unread count watermelon
* Remove realm
* Fiz RoomItem rerenders
* Remove realm config
* Rerender status update on RoomItem
* Refactor RoomsListView
* Fix load missed messages
* Fix room update
* Message refactor
* Fixing lint
* removeClippedSubviews on iOS only
* Added few interaction managers
* Fix few rerenders
* Fix RoomItem status typo
* Fix RoomView.SCU
* Fix broadcast
* Fix user status on RoomActionsView
* Fix RocketChat.hasPermission
* Fix database inconsistencies
* Fix few update issues
* Add rxjs and remove with observables
* Fix tests
* Remove subscriptions
* Fix RoomsListView SCU
* Change database structure and set all schemas to 1
* Fix RoomsListView search
* Fixed errors, removed rerenders and added animation
* Fixed a few errors
* Fix lint
* Fix issues caught by LGTM
* fix ios build
* Fix load unjoined channel messages
* Log on database path on startup
* Fix join channel
* Remove react-native-realm-path
* Set user status on login.user reducer
* Fix status not rendering on RoomsListView
* Fix few reducers
* Fix users going offline
* Never use "watermelon" term directly. Replaced by "database"
* Fix custom emoji
* Creating room from app must update roomUpdatedAt
* Log subscribeRoom start
* Fix room subscribe right after creating a DM
* Refactor is read only on messages actions
* Fix typo
* Fix typo
* Review
* Fix schema
* Fix muted & freq emoji & unpin & unstar
* Remove throttleTime to room info & fix reset on edit room
* Fix openServerDropdown spec & Fix unarchive
* Fix MessageAction
* Refactor RoomInfoEditView
* Remove unnecessary condition
* Remove unnecessary condition
* Remove unnecessary condition
* Remove get database
* Rename Command.js to SlashCommand.js
* Create sanitizer util
* Fix indentation
* Create subscription.t index
* Refactor queries on RoomsListView
* Create subscription.name index
* Fix getPermissions
* Fix indentation
* Add missing await
* Fix rocketchat.hasPermission
* Unnecessary change
* Star, pin e delete message refactored
* Refactor customEmojis reducer
* Remove code
* Remove logs
* Remove throttle
* Call this.init on foreground focus on RoomView
* Bump servers schema migration
* Always mark message as sent after a success
* Fetch only messages needed on updateMessages
* Just leave a comment for now
* Fetch only subscriptions returned by fetch
* Set room param on RoomView header in find room
* Update kotlin
* Fix auto translate constructor
* Fix few setState on constructor
* Fix empty room image blinking while mounting
* Improve fetch/persist execution for custom emojis, permissions and settings
* Query only user tapped on RoomMembersView
* Fix typo on canOpenRoom
2019-09-16 17:26:32 -03:00