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

UBER-838: signout button for inactive accounts #3662

Merged
merged 2 commits into from
Sep 6, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions packages/platform/src/lang/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -14,9 +14,9 @@
"WorkspaceNotFound": "Рабочее пространство не найдено",
"InvalidPassword": "Неверный пароль",
"AccountAlreadyExists": "Аккаунт уже существует",
"WorkspaceRateLimit": "Сервер перегружен, Пожалуйста подождите",
"WorkspaceRateLimit": "Сервер перегружен, пожалуйста, подождите",
"AccountAlreadyConfirmed": "Аккаунт уже подтвержден",
"WorkspaceAlreadyExists": "Рабочее пространство уже существует",
"ProductIdMismatch": "Продукт не соответсвует"
"ProductIdMismatch": "Продукт не соответствует"
}
}
4 changes: 2 additions & 2 deletions plugins/recruit-assets/lang/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -122,7 +122,7 @@
},
"status": {
"ApplicationExists": "Кандидат уже существует",
"TalentRequired": "Пожалуйста выберите таланта",
"VacancyRequired": "Пожалуйста выберите вакансию"
"TalentRequired": "Пожалуйста, выберите таланта",
"VacancyRequired": "Пожалуйста, выберите вакансию"
}
}
2 changes: 1 addition & 1 deletion plugins/request-assets/lang/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"Reject": "Отклонить",
"Rejected": "Отклонен",
"Comment": "Комментировать",
"PleaseTypeMessage": "Пожалуйста оставьте комментарий чтобы продолжить...",
"PleaseTypeMessage": "Пожалуйста, оставьте комментарий, чтобы продолжить...",
"NoRequests": "Нет запросов",
"Cancel": "Отменить",
"Cancelled": "Отменен"
Expand Down
8 changes: 4 additions & 4 deletions plugins/tags-assets/lang/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
"CategoryLabel": "Категория",
"TagReferenceLabel": "Тег",
"TagLabel": "Тег",
"TagName": "Пожалуйста введите название {word}",
"TagName": "Пожалуйста, введите название {word}",
"AddTagTooltip": "Добавить/создать {word}",
"AddNowTooltip": "Создать {word}",
"AddTag": "Создать {word}",
Expand All @@ -17,13 +17,13 @@
"SearchCreate": "Название...",
"NoItems": "Отсутствует добавленный {word}",
"TagDescriptionLabel": "Описание",
"TagDescriptionPlaceholder": "Пожалуйста введите описание",
"TagDescriptionPlaceholder": "Пожалуйста, введите описание",
"TagTooltip": "{text}",
"Tags": "Теги",
"SaveLabel": "Сохранить",
"WeightLabel": "Вес",
"WeightPlaceholder": "Пожалуйста введите вес",
"CategoryPlaceholder": "Пожалуйста введите категорию",
"WeightPlaceholder": "Пожалуйста, введите вес",
"CategoryPlaceholder": "Пожалуйста, введите категорию",

"AssetLabel": "Asset",
"CategoryTargetClass": "Категория",
Expand Down
4 changes: 2 additions & 2 deletions plugins/view-assets/lang/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@
"DeleteObject": "Удалить объект",
"DeleteObjectConfirm": "Вы действительно хотите удалить {count, plural, =1 {этот объект} one {этот # объект} few {эти # объекта} other {эти # объектов}}?",
"DeletePopupNoPermissionTitle": "Недостаточно прав для удаления.",
"DeletePopupNoPermissionLabel": "Пожалуйста обратитесь к людям из списка ниже, чтобы они это сделали.",
"DeletePopupNoPermissionLabel": "Пожалуйста, обратитесь к людям из списка ниже, чтобы они это сделали.",
"DeletePopupCreatorLabel": "Создатели объектов (могут удалить лишь те, что были созданы ими):",
"DeletePopupOwnerLabel": "Владельцы (могут удалить все):",
"Archive": "Архивировать",
Expand Down Expand Up @@ -72,7 +72,7 @@
"NewFilteredView": "Новое фильтрованное отображение",
"FilteredViewName": "Имя фильтрованного отображения",
"Then": "Затем",
"ShowPreviewOnClick": "Пожалуйста нажмите чтобы увидеть предпросмотр...",
"ShowPreviewOnClick": "Пожалуйста, нажмите, чтобы увидеть предпросмотр...",
"Shown": "показано {len} результатов {total, plural, =-1 {} other {из #}}",
"Total": "Всего: {total, plural, other{#}}",
"ShowEmptyGroups": "Показывать пустые группы",
Expand Down
2 changes: 1 addition & 1 deletion plugins/workbench-assets/lang/ru.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,7 +16,7 @@
"Join": "Присоединиться",
"BrowseSpaces": "Обзор пространств",
"AccountDisabled": "Аккаунт отключен",
"AccountDisabledDescr": "Пожалуйста свяжитесь с администратором",
"AccountDisabledDescr": "Пожалуйста, свяжитесь с администратором",
"HelpAndSupport": "Помощь",
"HelpCenter": "Центр помощи",
"KeyboardShortcuts": "Сочетания клавиш",
Expand Down
23 changes: 3 additions & 20 deletions plugins/workbench-resources/src/components/AccountPopup.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -15,9 +15,8 @@
<script lang="ts">
import contact, { Employee, PersonAccount, formatName } from '@hcengineering/contact'
import { AccountRole, getCurrentAccount, Ref } from '@hcengineering/core'
import login, { loginId } from '@hcengineering/login'
import { setMetadata } from '@hcengineering/platform'
import presentation, { closeClient, createQuery } from '@hcengineering/presentation'
import login from '@hcengineering/login'
import { createQuery } from '@hcengineering/presentation'
import setting, { SettingsCategory, settingId } from '@hcengineering/setting'
import {
Action,
Expand All @@ -26,17 +25,15 @@
closePanel,
closePopup,
deviceOptionsStore as deviceInfo,
fetchMetadataLocalStorage,
getCurrentLocation,
getCurrentResolvedLocation,
locationToUrl,
navigate,
setMetadataLocalStorage,
showPopup
} from '@hcengineering/ui'
import view from '@hcengineering/view'
import workbench from '../plugin'
import HelpAndSupport from './HelpAndSupport.svelte'
import { signOut } from '../utils'

let items: SettingsCategory[] = []

Expand Down Expand Up @@ -77,20 +74,6 @@
navigate(loc)
}

function signOut (): void {
const tokens = fetchMetadataLocalStorage(login.metadata.LoginTokens)
if (tokens !== null) {
const loc = getCurrentLocation()
delete tokens[loc.path[1]]
setMetadataLocalStorage(login.metadata.LoginTokens, tokens)
}
setMetadata(presentation.metadata.Token, null)
setMetadataLocalStorage(login.metadata.LoginEndpoint, null)
setMetadataLocalStorage(login.metadata.LoginEmail, null)
closeClient()
navigate({ path: [loginId] })
}

function inviteWorkspace (): void {
showPopup(login.component.InviteLink, {})
}
Expand Down
5 changes: 3 additions & 2 deletions plugins/workbench-resources/src/components/Workbench.svelte
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@
import { ActionContext, createQuery, getClient } from '@hcengineering/presentation'
import setting from '@hcengineering/setting'
import support, { SupportStatus } from '@hcengineering/support'
import { locationStorageKeyId } from '@hcengineering/ui'
import { locationStorageKeyId, Button } from '@hcengineering/ui'
import {
AnyComponent,
CompAndProps,
Expand Down Expand Up @@ -64,7 +64,7 @@
import { getContext, onDestroy, onMount, tick } from 'svelte'
import { subscribeMobile } from '../mobile'
import workbench from '../plugin'
import { buildNavModel, workspacesStore } from '../utils'
import { buildNavModel, workspacesStore, signOut } from '../utils'
import AccountPopup from './AccountPopup.svelte'
import AppItem from './AppItem.svelte'
import AppSwitcher from './AppSwitcher.svelte'
Expand Down Expand Up @@ -796,6 +796,7 @@
<div class="flex-col-center justify-center h-full flex-grow">
<h1><Label label={workbench.string.AccountDisabled} /></h1>
<Label label={workbench.string.AccountDisabledDescr} />
<Button label={setting.string.Signout} kind={'link'} size={'small'} on:click={() => signOut()} />
</div>
{/if}

Expand Down
30 changes: 27 additions & 3 deletions plugins/workbench-resources/src/utils.ts
Original file line number Diff line number Diff line change
Expand Up @@ -18,14 +18,22 @@ import type { Class, Client, Doc, Obj, Ref, Space, TxOperations } from '@hcengin
import core from '@hcengineering/core'
import type { Workspace } from '@hcengineering/login'
import type { Asset } from '@hcengineering/platform'
import { getResource } from '@hcengineering/platform'
import { getResource, setMetadata } from '@hcengineering/platform'
import preference from '@hcengineering/preference'
import { getClient } from '@hcengineering/presentation'
import { closePanel, getCurrentLocation, navigate } from '@hcengineering/ui'
import { closeClient, getClient } from '@hcengineering/presentation'
import {
closePanel,
fetchMetadataLocalStorage,
getCurrentLocation,
navigate,
setMetadataLocalStorage
} from '@hcengineering/ui'
import view from '@hcengineering/view'
import type { Application } from '@hcengineering/workbench'
import workbench, { NavigatorModel } from '@hcengineering/workbench'
import { writable } from 'svelte/store'
import login, { loginId } from '@hcengineering/login'
import presentation from '@hcengineering/presentation/src/plugin'

export function classIcon (client: Client, _class: Ref<Class<Obj>>): Asset | undefined {
return client.getHierarchy().getClass(_class).icon
Expand Down Expand Up @@ -181,3 +189,19 @@ export async function buildNavModel (
}
return newNavModel
}

export function signOut (): void {
const tokens = fetchMetadataLocalStorage(login.metadata.LoginTokens)
if (tokens !== null) {
const loc = getCurrentLocation()
const l = loc.path[1]
// eslint-disable-next-line @typescript-eslint/no-dynamic-delete
delete tokens[l]
setMetadataLocalStorage(login.metadata.LoginTokens, tokens)
}
setMetadata(presentation.metadata.Token, null)
setMetadataLocalStorage(login.metadata.LoginEndpoint, null)
setMetadataLocalStorage(login.metadata.LoginEmail, null)
void closeClient()
navigate({ path: [loginId] })
}