45 lines
3.9 KiB
Markdown
45 lines
3.9 KiB
Markdown
# ZenDesk Access Controller
|
||
|
||
## Управление правами доступа
|
||
|
||
Идея - написать программу(Web приложение), которая будет выдавать права пользователям системы по запросу самого
|
||
пользователя. Например, из 12 человек 3 сейчас работают с правами админа, по окончании рабочей смены они сдают
|
||
свои права (освобождают места) и другие пользователи могут запросить эти права в свое пользование.
|
||
Оставшиеся 9 человек получают права легкого агента - без прав редактирования, а только чтение.
|
||
Из технологий - программа должна взаимодействовать с api системы Zendesk(система обращений клиентов - жалобы),
|
||
проверять авторизованного пользователя на права(будет возможность менять права напрямую из Zendesk - нужна
|
||
синхронизация прав с приоритетом у Zendesk). Если руками в самом Zendesk права у пользователя отобрали или наоборот
|
||
присвоили, то наша программа обновляет статус пользователя в соответствии с данными синхронизации
|
||
(например, раз в минуту). Так же в идеале должна быть проверка, что пользователь сайта существует на сайте
|
||
Zendesk(по токену). Сэндбокс Zendesk нам предоставит моя компания, библиотеку для работы с api уже подсказали.
|
||
Сама программа (наша) будет обладать админскими правами и реализовывать контроль и выдачу прав другим пользователям.
|
||
|
||
*Итого:*
|
||
1. Реализовать авторизацию пользователей с проверкой по API на существование такого пользователя
|
||
2. Реализовать интерфейс со статистикой рабочих мест(занято, свободно, кто занимает)
|
||
3. Реализовать логирование действий(когда взял права, когда отдал - запись в файл и БД)
|
||
4. Реализовать передачу прав приложением по запросу от пользователя и замену прав пользователя
|
||
у которого права отбираются внутри Zendesk (на легкий агент)
|
||
5. Реализовать синхронизацию по API на проверку прав(не менялись ли в системе Zendesk)
|
||
6. Реализовать возможность добавить большее количество админских прав
|
||
7. Реализовать возможность добавления легких агентов(права только на просмотр)
|
||
8. Реализовать на общей странице текущую информацию о пользователе - текущие права, карточка пользователя
|
||
|
||
|
||
## Технологический стек:
|
||
- Python 3
|
||
- Django 3
|
||
|
||
|
||
## Quickstart
|
||
```bash
|
||
pip install --upgrade pip
|
||
pip install -r requirements.txt
|
||
./manage.py migrate
|
||
./manage.py shell -c "from django.contrib.auth import get_user_model; get_user_model().objects.create_superuser('vasya', '1@abc.net', 'promprog')"
|
||
./manage.py runserver
|
||
```
|
||
|
||
## Read more
|
||
- Zenpy: [http://docs.facetoe.com.au](http://docs.facetoe.com.au)
|