fix(invites): код приглашения не подменяется слабым при отказе crypto/rand

Вместо предсказуемого запасного кода ручка возвращает 500: приглашение —
это доступ к серверу, маскировать отказ источника энтропии нельзя.
This commit is contained in:
2026-09-19 23:33:59 +03:00
parent 61a84bfeae
commit 63bf1e63b5
5 changed files with 84 additions and 13 deletions
+68
View File
@@ -183,6 +183,7 @@
"empty": "This server has no visible channels yet.",
"select": "Open channel {{name}}",
"add": "Create a channel",
"settings": "Server settings",
"create": {
"title": "New channel",
"name": "Channel name",
@@ -214,6 +215,13 @@
"user": {
"panelLabel": "User panel",
"settings": "User settings",
"menu": {
"label": "User menu",
"open": "Open the user menu",
"account": "Account settings",
"guilds": "Server settings",
"status": "Status"
},
"logout": "Sign out",
"loggingOut": "Signing out…",
"statusLabel": "Status: {{status}}",
@@ -240,6 +248,11 @@
"settings": {
"title": "Settings",
"back": "Back to app",
"switcher": {
"label": "Settings sections",
"account": "Server settings",
"servers": "My servers"
},
"tabs": {
"label": "Settings sections",
"profile": "Profile",
@@ -331,6 +344,61 @@
"memberCount": "{{count}} members",
"adminBadge": "admin",
"mainBadge": "main"
},
"servers": {
"pickerLabel": "My servers",
"empty": "You have no servers yet.",
"emptyTitle": "No servers yet",
"emptyHint": "Join the instance main server or create your own — its settings will show up here.",
"select": "Open settings of the server {{name}}",
"notFound": "The server was not found among the ones you can access.",
"readOnlyHint": "Only the owner and members with ADMINISTRATOR or MANAGE_GUILD can edit this.",
"general": {
"title": "General",
"description": "Every member sees the server name and description.",
"name": "Server name",
"guildDescription": "Description",
"descriptionPlaceholder": "What this server is about",
"saved": "Server settings saved."
},
"nickname": {
"title": "My profile on this server",
"description": "The nickname is visible on this server only.",
"label": "Nickname",
"placeholder": "Leave empty to reset the nickname",
"current": "Current nickname:",
"none": "not set",
"saved": "Nickname saved."
},
"members": {
"title": "Members",
"description": "The first {{limit}} members of the server.",
"empty": "No members found.",
"roles": "Roles: {{roles}}",
"more": "The full member list with roles arrives in the next phases."
},
"roles": {
"title": "Roles",
"description": "Role colour and position. Role management arrives in the next phases.",
"empty": "This server has no roles yet.",
"position": "Position {{position}}",
"default": "default"
},
"danger": {
"title": "Danger zone",
"description": "These actions cannot be undone.",
"leaveOwnerHint": "The owner cannot leave their own server: transfer ownership or delete the server first.",
"leaveHint": "Leave the server and lose access to its channels.",
"leave": "Leave server",
"leaveConfirmTitle": "Leave the server?",
"leaveConfirmBody": "You will leave “{{name}}”. You can come back with an invite.",
"leaveConfirm": "Leave",
"deleteHint": "Delete the server together with its channels, roles and members.",
"delete": "Delete server",
"deleteConfirmTitle": "Delete the server?",
"deleteConfirmBody": "“{{name}}” will be deleted permanently.",
"deleteConfirm": "Delete"
}
}
}
}