forked from RocketChat/Rocket.Chat
-
Notifications
You must be signed in to change notification settings - Fork 1
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Service Accounts Notifications and broadcast added (#64)
* [NEW] Service Account Admin Settings and Configuration files added * [NEW] Service Account Admin Settings and Configuration files added * [NEW] Service Account Admin Settings and Configuration files added * [NEW] Service Account Admin Settings and Configuration files added * Service Account Creation dialog added * [NEW] Service Account Creation method * Service Account owner username update method added * Fixed CLI errors * Fixed CLI errors * Service Account creation heading fixed * Service Account broadcast room callback added * Service Account creation method refactored * Service Account Callback completed * Typos fixed * CLI errors fixed * [NEW] Service Account one-tap login complete * Callbacks modified * Service Accounts directory tab added * Refactored creation method and added tests * CLI errors fixed * CLI errors fixed * Bugs fixed * [NEW] Service Accounts Login method * Typo fixed * CLI errors fixed * CLI errors fixed * [New] Service Account directory feature * CLI errors fixed * UsernameExists meteor method fixed * Sync commit * [NEW] Service Account subscription method added * [NEW] Service Account Broadcast Feature Added * [NEW] Service Account Broadcast Feature Added * [NEW] Service account subscription sidenav type * Broadcast Room name change handled * Lint errors fixed * getLoginToken method refactored * Console statements removed * Sidebar header permission modified * Merge branch service-accounts * Added service account directory search translation key * Subscribers count added * [NEW] Service Account sidenav type * Unread counter added in popver * Get linked service account method added * Partial rate limiter added * Added unread counter * Fixed CLI errors * Broadcast feature added * [FIX] Custom status displayed on room leader panel (RocketChat#14958) * [FIX] LDAP login with customField sync (RocketChat#14808) Closes RocketChat#14661 * [FIX] Prevent error on trying insert message with duplicated id (RocketChat#14945) * [FIX] OTR key icon missing on messages (RocketChat#14953) * [FIX] Method `getUsersOfRoom` not returning offline users if limit is not defined (RocketChat#14753) * [IMPROVE] Remove too specific helpers isFirefox() and isChrome() (RocketChat#14963) * [FIX] Jump to message missing in Starred Messages (RocketChat#14949) * [IMPROVE] Update tabs markup (RocketChat#14964) * [FIX] Loading indicator positioning (RocketChat#14968) * Remove broken markup * Recover lost class * [FIX] load more messages (RocketChat#14967) * [FIX] eternal loading file list (RocketChat#14952) * [FIX] 50 custom emoji limit (RocketChat#14951) * Bump jquery from 3.3.1 to 3.4.0 in /packages/rocketchat-livech… (RocketChat#14922) Bumps [jquery](https://github.com/jquery/jquery) from 3.3.1 to 3.4.0. - [Release notes](https://github.com/jquery/jquery/releases) - [Commits](jquery/jquery@3.3.1...3.4.0) Signed-off-by: dependabot[bot] <[email protected]> * [FIX] Allow storing the navigation history of unregistered Livechat visitors (RocketChat#14970) * Remove validations before storing visitor navigation history. * Removed unused imports. * Update GPG key * [FIX] Wrong label order on room settings (RocketChat#14960) * [FIX] Chrome doesn't load additional search results when botto… (RocketChat#14965) * fix scroll * fix review * ops * [IMPROVEMENT] patch to improve emoji render (RocketChat#14722) * path to improve emoji render * Apply suggestions from code review Co-Authored-By: Tasso Evangelista <[email protected]> * Regression: patch to improve emoji render (RocketChat#14980) This reverts commit b395b50. * [FIX] Users staying online after logout (RocketChat#14966) * Remove unused dependency (lokijs) (RocketChat#14973) * Bump juice version to 5.2.0 (RocketChat#14974) * Bump node-rsa version to 1.0.5 (RocketChat#14976) * Bump photoswipe version to 4.1.3 (RocketChat#14977) * Remove unused Meteor dependency (yasinuslu:blaze-meta) (RocketChat#14971) * Bump marked from 0.5.2 to 0.6.1 (RocketChat#14969) * Bump marked from 0.5.2 to 0.6.1 Bumps [marked](https://github.com/markedjs/marked) from 0.5.2 to 0.6.1. - [Release notes](https://github.com/markedjs/marked/releases) - [Commits](markedjs/marked@v0.5.2...v0.6.1) Signed-off-by: dependabot[bot] <[email protected]> * Update package-lock * [IMPROVE] Federation routes RocketChat#14972 * [IMPROVE] Extract federation config to its own file (RocketChat#14992) * Revert "[IMPROVE] Federation routes RocketChat#14972" * Extract federation config logic to its own file * Service account configurable approval process * Improve Docker compose readability (RocketChat#14457) * [FIX] Not being able to mention users with "all" and "here" usernames - do not allow users register that usernames (RocketChat#14468) * [FIX] Custom User Status throttled by rate limiter (RocketChat#15001) * [FIX] CustomOauth Identity Step errors displayed in HTML format (RocketChat#15000) * Service account message alert added * Lint errors fixed * fixed browseChannels method * fixed browseChannels method
- Loading branch information
1 parent
62fca65
commit e4ef980
Showing
61 changed files
with
564 additions
and
256 deletions.
There are no files selected for viewing
Binary file not shown.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -71,7 +71,6 @@ raix:handlebar-helpers | |
rocketchat:push | ||
raix:ui-dropped-event | ||
todda00:friendly-slugs | ||
yasinuslu:blaze-meta | ||
|
||
tap:i18n | ||
[email protected] | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -70,7 +70,7 @@ konecty:[email protected] | |
konecty:[email protected] | ||
konecty:[email protected]_3 | ||
konecty:[email protected] | ||
konecty:user-presence@2.4.0 | ||
konecty:user-presence@2.5.0 | ||
[email protected] | ||
[email protected] | ||
littledata:[email protected] | ||
|
@@ -159,4 +159,3 @@ [email protected] | |
[email protected] | ||
[email protected] | ||
[email protected] | ||
yasinuslu:[email protected] |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,74 @@ | ||
import mem from 'mem'; | ||
|
||
import { getWorkspaceAccessToken } from '../../cloud/server'; | ||
import { FederationKeys } from '../../models/server'; | ||
import { settings } from '../../settings/server'; | ||
import * as SettingsUpdater from './settingsUpdater'; | ||
import { logger } from './logger'; | ||
|
||
const defaultConfig = { | ||
hub: { | ||
active: null, | ||
url: null, | ||
}, | ||
peer: { | ||
uniqueId: null, | ||
domain: null, | ||
url: null, | ||
public_key: null, | ||
}, | ||
cloud: { | ||
token: null, | ||
}, | ||
}; | ||
|
||
const getConfigLocal = () => { | ||
const _enabled = settings.get('FEDERATION_Enabled'); | ||
|
||
if (!_enabled) { return defaultConfig; } | ||
|
||
// If it is enabled, check if the settings are there | ||
const _uniqueId = settings.get('FEDERATION_Unique_Id'); | ||
const _domain = settings.get('FEDERATION_Domain'); | ||
const _discoveryMethod = settings.get('FEDERATION_Discovery_Method'); | ||
const _hubUrl = settings.get('FEDERATION_Hub_URL'); | ||
const _peerUrl = settings.get('Site_Url'); | ||
|
||
if (!_domain || !_discoveryMethod || !_hubUrl || !_peerUrl) { | ||
SettingsUpdater.updateStatus('Could not enable, settings are not fully set'); | ||
|
||
logger.setup.error('Could not enable Federation, settings are not fully set'); | ||
|
||
return defaultConfig; | ||
} | ||
|
||
logger.setup.info('Updating settings...'); | ||
|
||
// Normalize the config values | ||
return { | ||
hub: { | ||
active: _discoveryMethod === 'hub', | ||
url: _hubUrl.replace(/\/+$/, ''), | ||
}, | ||
peer: { | ||
uniqueId: _uniqueId, | ||
domain: _domain.replace('@', '').trim(), | ||
url: _peerUrl.replace(/\/+$/, ''), | ||
public_key: FederationKeys.getPublicKeyString(), | ||
}, | ||
cloud: { | ||
token: getWorkspaceAccessToken(), | ||
}, | ||
}; | ||
}; | ||
|
||
export const getConfig = mem(getConfigLocal); | ||
|
||
const updateValue = () => mem.clear(getConfig); | ||
|
||
settings.get('FEDERATION_Enabled', updateValue); | ||
settings.get('FEDERATION_Unique_Id', updateValue); | ||
settings.get('FEDERATION_Domain', updateValue); | ||
settings.get('FEDERATION_Status', updateValue); | ||
settings.get('FEDERATION_Discovery_Method', updateValue); | ||
settings.get('FEDERATION_Hub_URL', updateValue); |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,31 @@ | ||
import { metrics } from '../../../../metrics'; | ||
import { Notifications } from '../../../../notifications'; | ||
|
||
export function shouldNotifyServiceAccountOwner({ | ||
statusConnection, | ||
hasMentionToAll, | ||
hasMentionToHere, | ||
isHighlighted, | ||
hasMentionToUser, | ||
hasReplyToThread, | ||
roomType, | ||
}) { | ||
if (statusConnection === 'online') { | ||
return false; | ||
} | ||
return roomType === 'd' || hasMentionToAll || hasMentionToHere || isHighlighted || hasMentionToUser || hasReplyToThread; | ||
} | ||
|
||
export function notifyServiceAccountOwner(receiver, ownerId, message, room) { | ||
metrics.notificationsSent.inc({ notification_type: 'sa' }); | ||
Notifications.notifyUser(ownerId, 'sa-notification', { | ||
payload: { | ||
_id: message._id, | ||
rid: message.rid, | ||
sender: message.u, | ||
receiver: receiver.username, | ||
type: room.t, | ||
name: room.name, | ||
}, | ||
}); | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.