Merge pull request #11650 from RocketChat/release-0.68.3

Release 0.68.3
pull/11764/head 0.68.3
Diego Sampaio 7 years ago committed by GitHub
commit 90be09e4f7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
  1. 2
      .docker/Dockerfile.rhel
  2. 58
      .github/history.json
  3. 4
      .sandstorm/sandstorm-pkgdef.capnp
  4. 2
      .travis/snap.sh
  5. 25
      HISTORY.md
  6. 2
      package.json
  7. 14
      packages/meteor-accounts-saml/saml_server.js
  8. 8
      packages/rocketchat-channel-settings/client/views/channelSettings.html
  9. 6
      packages/rocketchat-i18n/i18n/de-AT.i18n.json
  10. 6
      packages/rocketchat-i18n/i18n/de.i18n.json
  11. 1
      packages/rocketchat-i18n/i18n/en.i18n.json
  12. 30
      packages/rocketchat-i18n/i18n/pt-BR.i18n.json
  13. 20
      packages/rocketchat-i18n/i18n/pt.i18n.json
  14. 2
      packages/rocketchat-lib/rocketchat.info
  15. 13
      packages/rocketchat-lib/server/functions/getFullUserData.js
  16. 2
      server/methods/loadHistory.js

@ -1,6 +1,6 @@
FROM registry.access.redhat.com/rhscl/nodejs-8-rhel7
ENV RC_VERSION 0.68.2
ENV RC_VERSION 0.68.3
MAINTAINER buildmaster@rocket.chat

@ -17692,6 +17692,64 @@
]
}
]
},
"0.68.3": {
"node_version": "8.11.3",
"npm_version": "5.6.0",
"pull_requests": [
{
"pr": "11639",
"title": "[FIX] Missing chat history for users without permission `preview-c-room`",
"userLogin": "Hudell",
"milestone": "0.68.3",
"contributors": [
"Hudell"
]
},
{
"pr": "11625",
"title": "[FIX] User info APIs not returning customFields correctly",
"userLogin": "MarcosSpessatto",
"milestone": "0.68.3",
"contributors": [
"MarcosSpessatto",
"sampaiodiego",
"web-flow"
]
},
{
"pr": "11631",
"title": "[FIX] Prune translations in German",
"userLogin": "rndmh3ro",
"milestone": "0.68.3",
"contributors": [
"rndmh3ro",
"sampaiodiego",
"web-flow"
]
},
{
"pr": "11635",
"title": "[FIX] Prune translation on room info panel",
"userLogin": "sampaiodiego",
"milestone": "0.68.3",
"contributors": [
"sampaiodiego",
"web-flow"
]
},
{
"pr": "11642",
"title": "[FIX] SAML login not working when user has multiple emails",
"userLogin": "Hudell",
"milestone": "0.68.3",
"contributors": [
"Hudell",
"sampaiodiego",
"web-flow"
]
}
]
}
}
}

@ -19,9 +19,9 @@ const pkgdef :Spk.PackageDefinition = (
appTitle = (defaultText = "Rocket.Chat"),
appVersion = 91, # Increment this for every release.
appVersion = 92, # Increment this for every release.
appMarketingVersion = (defaultText = "0.68.2"),
appMarketingVersion = (defaultText = "0.68.3"),
# Human-readable representation of appVersion. Should match the way you
# identify versions of your app in documentation and marketing.

@ -17,7 +17,7 @@ elif [[ $TRAVIS_TAG ]]; then
RC_VERSION=$TRAVIS_TAG
else
CHANNEL=edge
RC_VERSION=0.68.2
RC_VERSION=0.68.3
fi
echo "Preparing to trigger a snap release for $CHANNEL channel"

@ -1,4 +1,29 @@
# 0.68.3
`2018-08-01 · 5 🐛 · 4 👩💻👨💻`
### Engine versions
- Node: `8.11.3`
- NPM: `5.6.0`
### 🐛 Bug fixes
- Missing chat history for users without permission `preview-c-room` ([#11639](https://github.com/RocketChat/Rocket.Chat/pull/11639))
- User info APIs not returning customFields correctly ([#11625](https://github.com/RocketChat/Rocket.Chat/pull/11625))
- Prune translations in German ([#11631](https://github.com/RocketChat/Rocket.Chat/pull/11631) by [@rndmh3ro](https://github.com/rndmh3ro))
- Prune translation on room info panel ([#11635](https://github.com/RocketChat/Rocket.Chat/pull/11635))
- SAML login not working when user has multiple emails ([#11642](https://github.com/RocketChat/Rocket.Chat/pull/11642))
### 👩💻👨💻 Contributors 😍
- [@rndmh3ro](https://github.com/rndmh3ro)
### 👩💻👨💻 Core Team 🤓
- [@Hudell](https://github.com/Hudell)
- [@MarcosSpessatto](https://github.com/MarcosSpessatto)
- [@sampaiodiego](https://github.com/sampaiodiego)
# 0.68.2
`2018-07-31 · 1 🐛 · 2 👩💻👨💻`

@ -1,7 +1,7 @@
{
"name": "Rocket.Chat",
"description": "The Ultimate Open Source WebChat Platform",
"version": "0.68.2",
"version": "0.68.3",
"author": {
"name": "Rocket.Chat",
"url": "https://rocket.chat/"

@ -103,8 +103,8 @@ Accounts.registerLoginHandler(function(loginRequest) {
}
if (loginResult && loginResult.profile && loginResult.profile.email) {
const email = RegExp.escape(loginResult.profile.email);
const emailRegex = new RegExp(`^${ email }$`, 'i');
const emailList = Array.isArray(loginResult.profile.email) ? loginResult.profile.email : [loginResult.profile.email];
const emailRegex = new RegExp(emailList.map(email => `^${ RegExp.escape(email) }$`).join('|'), 'i');
let user = Meteor.users.findOne({
'emails.address': emailRegex
});
@ -114,10 +114,12 @@ Accounts.registerLoginHandler(function(loginRequest) {
name: loginResult.profile.cn || loginResult.profile.username,
active: true,
globalRoles: ['user'],
emails: [{
address: loginResult.profile.email,
verified: true
}]
emails: emailList.map(email => {
return {
address: email,
verified: true
};
})
};
if (Accounts.saml.settings.generateUsername === true) {

@ -362,15 +362,15 @@
<div class="mail-messages__instructions-text">
{{#unless filesOnly}}
{{#unless excludePinned}}
{{_ "RetentionPolicy_RoomWarning" purgeTimeout}}
{{_ "RetentionPolicy_RoomWarning" time=purgeTimeout}}
{{else}}
{{_ "RetentionPolicy_RoomWarning_Unpinned" purgeTimeout}}
{{_ "RetentionPolicy_RoomWarning_Unpinned" time=purgeTimeout}}
{{/unless}}
{{else}}
{{#unless excludePinned}}
{{_ "RetentionPolicy_RoomWarning_FilesOnly" purgeTimeout}}
{{_ "RetentionPolicy_RoomWarning_FilesOnly" time=purgeTimeout}}
{{else}}
{{_ "RetentionPolicy_RoomWarning_UnpinnedFilesOnly" purgeTimeout}}
{{_ "RetentionPolicy_RoomWarning_UnpinnedFilesOnly" time=purgeTimeout}}
{{/unless}}
{{/unless}}
</div>

@ -1126,7 +1126,7 @@
"File_exceeds_allowed_size_of_bytes": "Die Datei ist größer als das erlaubte Maximum von __size__ Bytes",
"File_name_Placeholder": "Dateien suchen...",
"File_not_allowed_direct_messages": "Dateifreigabe in direkten Nachrichten nicht erlaubt.",
"File_removed_by_prune": "Die Datei wurde mit der Prune entfernt",
"File_removed_by_prune": "Die Datei wurde entfernt",
"File_removed_by_automatic_prune": "Datei wurde durch automatische Bereinigung entfernt",
"File_type_is_not_accepted": "Feldtyp nicht akzeptiert.",
"File_uploaded": "Datei hochgeladen",
@ -2013,8 +2013,8 @@
"Profile_details": "Profildetails",
"Profile_picture": "Profilbild",
"Profile_saved_successfully": "Das Profil wurde erfolgreich gespeichert",
"Prune": "Pflaume",
"Prune_finished": "Prune beendet",
"Prune": "Löschen",
"Prune_finished": "Löschen beendet",
"Prune_Messages": "Nachrichten löschen",
"Prune_Modal": "Möchten Sie diese Nachrichten wirklich löschen? Bereinigte Nachrichten können nicht wiederhergestellt werden.",
"Prune_Warning_all": "Dadurch werden alle% s in% s gelöscht!",

@ -1126,7 +1126,7 @@
"File_exceeds_allowed_size_of_bytes": "Die Datei ist größer als das erlaubte Maximum von __size__ Bytes",
"File_name_Placeholder": "Dateien suchen...",
"File_not_allowed_direct_messages": "Dateiaustausch ist in direkten Nachrichten nicht möglich.",
"File_removed_by_prune": "Die Datei wurde mit der Prune entfernt",
"File_removed_by_prune": "Die Datei wurde entfernt",
"File_removed_by_automatic_prune": "Datei wurde durch automatische Bereinigung entfernt",
"File_type_is_not_accepted": "Dateityp wir nicht akzeptiert.",
"File_uploaded": "Datei hochgeladen",
@ -2013,8 +2013,8 @@
"Profile_details": "Profildetails",
"Profile_picture": "Profilbild",
"Profile_saved_successfully": "Das Profil wurde erfolgreich gespeichert",
"Prune": "Pflaume",
"Prune_finished": "Prune beendet",
"Prune": "Löschen",
"Prune_finished": "Löschen beendet",
"Prune_Messages": "Nachrichten löschen",
"Prune_Modal": "Möchten Sie diese Nachrichten wirklich löschen? Bereinigte Nachrichten können nicht wiederhergestellt werden.",
"Prune_Warning_all": "Dadurch werden alle% s in% s gelöscht!",

@ -1127,7 +1127,6 @@
"File_name_Placeholder": "Search files...",
"File_not_allowed_direct_messages": "File sharing not allowed in direct messages.",
"File_removed_by_prune": "File removed by prune",
"File_removed_by_automatic_prune": "File removed by automatic prune",
"File_type_is_not_accepted": "File type is not accepted.",
"File_uploaded": "File uploaded",
"FileUpload": "File Upload",

@ -21,7 +21,6 @@
"Accessing_permissions": "Acessando permissões",
"Account_SID": "SID da Conta",
"Accounts": "Contas",
"RetentionPolicy_RoomWarning": "lero __duration__ opa",
"Accounts_Admin_Email_Approval_Needed_Default": "<p>O usuário <b>[nome] ([email])</b>foi registrado.</p><p>Verifique \"Administração ->Usuários\" para ativá-lo ou excluí-lo.</p>",
"Accounts_Admin_Email_Approval_Needed_Subject_Default": "Um novo usuário se registrou e precisa de aprovação",
"Accounts_Admin_Email_Approval_Needed_With_Reason_Default": "<p>O usuário <b>[nome] ([email])</b>foi registrado.</p><p>Razão: <b>[razão]</b></p><p>Verifique \"Administração ->Usuários\" para ativá-lo ou excluí-lo.</p>",
@ -1127,8 +1126,7 @@
"File_exceeds_allowed_size_of_bytes": "O arquivo excede o tamanho permitido de __size__ bytes",
"File_name_Placeholder": "Procurar arquivos...",
"File_not_allowed_direct_messages": "Compartilhamento de arquivos não está permitido em mensagens diretas.",
"File_removed_by_prune": "Arquivo removido por ameixa seca",
"File_removed_by_automatic_prune": "Arquivo removido por remoção automática",
"File_removed_by_prune": "Arquivo removido por remoção automática",
"File_type_is_not_accepted": "Tipo do arquivo não é aceito.",
"File_uploaded": "Arquivo carregado",
"FileUpload": "Upload de Arquivos",
@ -2014,18 +2012,18 @@
"Profile_details": "Detalhes de perfil",
"Profile_picture": "Foto do perfil",
"Profile_saved_successfully": "Perfil salvo com sucesso",
"Prune": "Ameixa seca",
"Prune_finished": "Ameixa terminada",
"Prune_Messages": "Mensagens de poda",
"Prune": "Remoção em massa",
"Prune_finished": "Remoção terminada",
"Prune_Messages": "Remoção de Mensagens",
"Prune_Modal": "Tem certeza de que deseja remover essas mensagens? As mensagens limpas não podem ser recuperadas.",
"Prune_Warning_all": "Isso excluirá todos os% s em% s!",
"Prune_Warning_before": "Isso excluirá todos os% s em% s antes de% s.",
"Prune_Warning_after": "Isso excluirá todos os% s em% s depois de% s.",
"Prune_Warning_between": "Isso excluirá todos os% s em% s entre% s e% s.",
"Pruning_messages": "Podando mensagens ...",
"Prune_Warning_all": "Isso excluirá todos os %s em %s!",
"Prune_Warning_before": "Isso excluirá todos os %s em %s antes de %s.",
"Prune_Warning_after": "Isso excluirá todos os %s em %s depois de %s.",
"Prune_Warning_between": "Isso excluirá todos os %s em %s entre %s e %s.",
"Pruning_messages": "Removendo mensagens ...",
"Pruning_files": "Removendo arquivos ...",
"messages_pruned": "mensagens podadas",
"files_pruned": "arquivos podados",
"messages_pruned": "mensagens removidas",
"files_pruned": "arquivos removidos",
"Public": "Público",
"Public_Channel": "Canal público",
"Public_Community": "Comunidade",
@ -2144,12 +2142,12 @@
"RetentionPolicy_MaxAge_Channels": "A idade máxima da mensagem nos canais",
"RetentionPolicy_MaxAge_Groups": "Duração máxima da mensagem em grupos privados",
"RetentionPolicy_MaxAge_DMs": "Duração máxima da mensagem em mensagens diretas",
"RetentionPolicy_MaxAge_Description": "Podar todas as mensagens mais antigas que esse valor, em dias",
"RetentionPolicy_MaxAge_Description": "Remover todas as mensagens mais antigas que esse valor, em dias",
"RetentionPolicy_Precision": "Precisão do temporizador",
"RetentionPolicy_Precision_Description": "Quantas vezes o temporizador de remoção deve ser executado. Configurar isso para um valor mais preciso faz com que os canais com temporizadores de retenção rápidos funcionem melhor, mas podem custar um poder de processamento extra em grandes comunidades.",
"RetentionPolicyRoom_Enabled": "Remover automaticamente mensagens antigas",
"RetentionPolicyRoom_ExcludePinned": "Excluir mensagens fixas",
"RetentionPolicyRoom_FilesOnly": "Apenas arquivos de poda, mantenha mensagens",
"RetentionPolicyRoom_FilesOnly": "Remover apenas arquivos, mantenha mensagens",
"RetentionPolicyRoom_MaxAge": "Idade máxima da mensagem em dias (padrão: __max__)",
"RetentionPolicyRoom_OverrideGlobal": "Substituir política de retenção global",
"RetentionPolicyRoom_ReadTheDocs": "Cuidado! Ajustar essas configurações sem o maior cuidado pode destruir todo o histórico de mensagens. Leia a documentação antes de ativar o recurso em <a href = 'https: //rocket.chat/docs/administrator-guides/retention-policies/'>aqui</a>.",
@ -2781,7 +2779,7 @@
"Yes_hide_it": "Sim, esconder!",
"Yes_leave_it": "Sim, sair!",
"Yes_mute_user": "Sim, silenciar usuário!",
"Yes_prune_them": "Sim, poda-os!",
"Yes_prune_them": "Sim, remova-os!",
"Yes_remove_user": "Sim, remover usuário!",
"Yes_unarchive_it": "Sim, desquite!",
"yesterday": "ontem",

@ -1126,7 +1126,7 @@
"File_exceeds_allowed_size_of_bytes": "O arquivo excede o tamanho permitido de __size__ bytes",
"File_name_Placeholder": "Procurar arquivos...",
"File_not_allowed_direct_messages": "O compartilhamento de arquivos não é permitido em mensagens diretas.",
"File_removed_by_prune": "Arquivo removido por ameixa seca",
"File_removed_by_prune": "Arquivo removido por remoção automática",
"File_removed_by_automatic_prune": "Arquivo removido por remoção automática",
"File_type_is_not_accepted": "O tipo de arquivo não é aceito.",
"File_uploaded": "Arquivo carregado",
@ -2013,18 +2013,18 @@
"Profile_details": "Detalhes de perfil",
"Profile_picture": "Foto do perfil",
"Profile_saved_successfully": "Perfil salvo com sucesso",
"Prune": "Ameixa seca",
"Prune_finished": "Ameixa terminada",
"Prune_Messages": "Mensagens de poda",
"Prune": "Remoção em massa",
"Prune_finished": "Remoção terminada",
"Prune_Messages": "Remoção de Mensagens",
"Prune_Modal": "Tem certeza de que deseja remover essas mensagens? As mensagens limpas não podem ser recuperadas.",
"Prune_Warning_all": "Isto irá apagar todos os %s em %s!",
"Prune_Warning_before": "Isto irá apagar todos os %s em %s antes de %s.",
"Prune_Warning_after": "Isto irá apagar todos os %s em %s depois de %s.",
"Prune_Warning_between": "Isto irá apagar todos os %s em %s entre %s e %s.",
"Pruning_messages": "Podando mensagens ...",
"Pruning_messages": "Removendo mensagens ...",
"Pruning_files": "Removendo arquivos ...",
"messages_pruned": "mensagens podadas",
"files_pruned": "arquivos podados",
"messages_pruned": "mensagens removidas",
"files_pruned": "arquivos removidos",
"Public": "Público",
"Public_Channel": "Canal público",
"Public_Community": "Comunidade",
@ -2143,12 +2143,12 @@
"RetentionPolicy_MaxAge_Channels": "A idade máxima da mensagem nos canais",
"RetentionPolicy_MaxAge_Groups": "Duração máxima da mensagem em grupos privados",
"RetentionPolicy_MaxAge_DMs": "Duração máxima da mensagem em mensagens diretas",
"RetentionPolicy_MaxAge_Description": "Podar todas as mensagens mais antigas que esse valor, em dias",
"RetentionPolicy_MaxAge_Description": "Remover todas as mensagens mais antigas que esse valor, em dias",
"RetentionPolicy_Precision": "Precisão do temporizador",
"RetentionPolicy_Precision_Description": "Quantas vezes o temporizador de remoção deve ser executado. Configurar isso para um valor mais preciso faz com que os canais com temporizadores de retenção rápidos funcionem melhor, mas podem custar um poder de processamento extra em grandes comunidades.",
"RetentionPolicyRoom_Enabled": "Remover automaticamente mensagens antigas",
"RetentionPolicyRoom_ExcludePinned": "Excluir mensagens fixas",
"RetentionPolicyRoom_FilesOnly": "Apenas arquivos de poda, mantenha mensagens",
"RetentionPolicyRoom_FilesOnly": "Remover apenas arquivos, mantenha mensagens",
"RetentionPolicyRoom_MaxAge": "Idade máxima da mensagem em dias (padrão: __max__)",
"RetentionPolicyRoom_OverrideGlobal": "Substituir política de retenção global",
"RetentionPolicyRoom_ReadTheDocs": "Cuidado! Ajustar estas configurações sem as devidas precauções, pode resultar na destruição de todo o histórico de mensagens. Leia a documentação antes de activar o recurso <a href=\"https://rocket.chat/docs/administrator-guides/retention-policies/\">aqui</a>.",
@ -2780,7 +2780,7 @@
"Yes_hide_it": "Sim, esconda!",
"Yes_leave_it": "Sim, sair!",
"Yes_mute_user": "Sim, silenciar o utilizador!",
"Yes_prune_them": "Sim, poda-os!",
"Yes_prune_them": "Sim, remova-os!",
"Yes_remove_user": "Sim, remover utilizador!",
"Yes_unarchive_it": "Sim, desarquive!",
"yesterday": "ontem",

@ -1,3 +1,3 @@
{
"version": "0.68.2"
"version": "0.68.3"
}

@ -37,9 +37,9 @@ RocketChat.settings.get('Accounts_CustomFields', (key, value) => {
}
try {
const customFields = JSON.parse(value.trim());
Object.keys(customFields).forEach(key => {
const element = customFields[key];
const customFieldsOnServer = JSON.parse(value.trim());
Object.keys(customFieldsOnServer).forEach(key => {
const element = customFieldsOnServer[key];
if (element.public) {
publicCustomFields[`customFields.${ key }`] = 1;
}
@ -48,21 +48,20 @@ RocketChat.settings.get('Accounts_CustomFields', (key, value) => {
} catch (e) {
logger.warn(`The JSON specified for "Accounts_CustomFields" is invalid. The following error was thrown: ${ e }`);
}
});
RocketChat.getFullUserData = function({ userId, filter, limit: l }) {
const username = s.trim(filter);
const userToRetrieveFullUserData = RocketChat.models.Users.findOneByUsername(username);
const isMyOwnInfo = userToRetrieveFullUserData && userToRetrieveFullUserData._id === userId;
const viewFullOtherUserInfo = RocketChat.authz.hasPermission(userId, 'view-full-other-user-info');
const limit = !viewFullOtherUserInfo ? 1 : l;
if (!username && limit <= 1) {
return undefined;
}
const _customFields = viewFullOtherUserInfo ? customFields : publicCustomFields;
const _customFields = isMyOwnInfo || viewFullOtherUserInfo ? customFields : publicCustomFields;
const fields = viewFullOtherUserInfo ? { ...defaultFields, ...fullFields, ..._customFields } : { ...defaultFields, ..._customFields };

@ -38,7 +38,7 @@ Meteor.methods({
const canAnonymous = RocketChat.settings.get('Accounts_AllowAnonymousRead');
const canPreview = RocketChat.authz.hasPermission(fromId, 'preview-c-room');
if (room.t === 'c' && !canAnonymous && !canPreview && RocketChat.models.Subscriptions.findOneByRoomIdAndUserId(rid, fromId, { fields: { _id: 1 } })) {
if (room.t === 'c' && !canAnonymous && !canPreview && !RocketChat.models.Subscriptions.findOneByRoomIdAndUserId(rid, fromId, { fields: { _id: 1 } })) {
return false;
}

Loading…
Cancel
Save