2021-02-28 17:27:07 +03:00
2021-02-25 18:24:14 +03:00
2021-02-18 11:44:13 +03:00
2021-02-28 17:27:07 +03:00
2021-02-18 20:51:34 +03:00
2021-02-04 20:01:35 +03:00
2021-02-04 20:01:35 +03:00
2021-02-10 19:16:27 +03:00
2021-02-16 12:28:08 +03:00

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

sudo apt install make
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

Description
No description provided
Readme 2.8 MiB
Languages
Python 70.3%
HTML 14.3%
JavaScript 11.4%
SCSS 2.4%
CSS 0.8%
Other 0.8%