gdmn4's People
gdmn4's Issues
Управление учетными записями
Нам в проекте нужны следующие роли:
- Суперадмин -- видит все. Может делать все, в том числе назначать других Суперадминов.
- Админ организации -- может делать все в рамках своей организации, в том числе назначать других Админов.
- Developer в организации -- обладает всеми правами пользователя, а также может создавать подключения к источникам данных.
- Пользователь в организации -- может вести диалог с системой, просматривать данные.
У нас будут общие наборы данных, доступные любому пользователю системы, и наборы данных, доступные только в рамках какой-то организации.
User stories:
- Пользователь создает учетную запись. Может вести диалог с системой, обращаясь к общим наборам данных.
- Пользователь с учетной записью создает Организацию и становится в ней Админом. При логине пользователь указывает Организацию в которую он логинится. Если не указал -- то, логинится только в свою учетную запись и имеет доступ только к общим наборам данных.
- Пользователь с правами Админа в Организации может высылать инвайты другим пользователям системы для присоединения к Организации. При высылке инвайта указывается роль, которую получит новый пользователь Организации.
Делаем следующее:
Добавляем следующий функционал работы с организациями:
- Пользователь может создавать Организации.
- Организация имеет уникальное название в рамках нашей системы.
- Создав организацию, Пользователь получает права Администратора в этой Организации.
- Пользователь может одновременно входить в несколько Организаций.
- Администратор Организации может добавлять в нее других пользователей системы.
- Администратор может исключать Пользователей из организации.
- Администратор может назначать права Администратора другим Пользователям Организации.
- Пользователь Организации может выйти из Организации.
Добавляем следующий функционал для работы с учетными записями пользователей:
- Пользователь Системы может удалить свою учетную запись.
Интерфейс пользователя:
- На странице Профиль пользователя должна присутствовать кнопка для создания Организации.
- Если Пользователь входит в одну или несколько организаций, то на странице Профиль пользователя должна присутствовать таблица с его организациями. В таблице две колонки: Наименовани организации и Уровень доступа. Уровни доступа: Пользователь, Администратор.
- Если Пользователь имеет уровенень доступа Администратор, то он может перейти к списку пользователей выбранной Организации. В этом списке ему доступны команды: Добавить, Удалить, Сделать Администратором, Сделать Пользователем.
Простейший сигнал
Как мы обсуждали, наша система будет реагировать на определенные сигналы из внешних систем, обрабатывать их, затем отображать в дашборде, генерировать тексты и отсылать их в мессенджер или электронную почту потребителя.
Каждый Сигнал должен быть привязан к определенной Организации или к учетной записи Пользователя.
Создаем простейший сигнал. Пока из всех свойств делаем только:
- Наименование (должно быть уникальным в рамках Организации/учетной записи Пользователя)
- Признак активен/не активен.
Необходимо реализовать:
- Экран со списком (таблицей) сигналов
- Операции: добавления, удаления, редактирования сигнала.
Поправить код
return (
!isLoading && user.userId &&
<>
{/* {
(chatInfo?.owner === userId) &&
<div>
<Input onChange={e => setParticipantId(e.target.value)}/>
<Button onClick={handleAddParticipant}>Add participant</Button>
</div>
} */}
{
chatInfo.participants.includes(user.userId) &&
<>
<h3>{chatInfo.tag}</h3>
<ChatView nlpDialog={nlpDialog} info={{chatId: chatInfo._id, user}}/>
</>
}
</>
)
это лишнее усложнение кода. понятнее написать так:
if (!isLoading && user.userId && chatInfo.participants.includes(user.userId)) {
return(
<>
<h3>{chatInfo.tag}</h3>
<ChatView nlpDialog={nlpDialog} info={{chatId: chatInfo._id, user}}/>
</>
)
}
return null;
и если дальше смотреть, то заголовок чата должен быть внутри компонента ChatView, а не отдельно снаружи.
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.