Запросы по организациям и пользователям: /departments, /users
/departments
Запросы по организациям.
[AI] GET /departments/count
Получение количества организаций.
// OUT <---
{
"res": 1,
"resText": "",
"count": "22" //количество организаций
}
[t] GET /departments
Получение списка организаций (для которых arm_view = true).
// OUT <---
{
"res": 1,
"resText": "",
"departments": [
{
"id": "3",//id организации
"name": "Власть народу", //название организации
"logo": null, //логотип организации
"arm_view": "t", //отображение ведомства в АРМ губернатора: "t", "f"
"map_extent_id": "268", //id положения карты
"right_id": "0", //служебное значение для MapAdmin, всегда "0"
"users_count": "6", //количество пользователей
"people_dep": "f" //является ли ведомство, ведомством населения: "t", "f"
},
... //следующие элементы списка организаций
]
}
[t] GET /departments/all/{:limit}/{:offset}
Получение списка организаций, где offset — номер первой выводимой в ответе организации, limit — количество выводимых в ответе организаций.
Параметры limit, offset не обязательны.
// OUT <---
{
"res": 1,
"resText": "",
"departments": [
{
"id": "2", //id ведомства/организации
"name": "Отдел Тестирования T", //название ведомства/организации
"logo": "logo_291.jpg", //название файла логотипа
"arm_view": "f", //отображение ведомства в АРМ губернатора: "t", "f"
"map_extent_id": "2", //id положения карты
"right_id": "0", //служебное значение для MapAdmin, всегда "0"
"users_count": "37", //количество пользователей
"people_dep": "f" //является ли ведомство, ведомством населения: "t", "f"
},
... //следующие элементы списка организаций
]
}
[t] GET /departments/arm/{:limit}/{:offset}
Получение списка организаций, видимых в АРМ Губернатора, где offset — номер первой выводимой в ответе организации, limit — количество выводимых в ответе организаций.
Параметры limit, offset не обязательны.
// OUT <---
{
"res": 1,
"resText": "",
"departments": [
{
"id": "2", //id ведомства/организации
"name": "Отдел Тестирования T", //название ведомства/организации
"logo": "logo_291.jpg", //название файла логотипа
"arm_view": "f", //отображение ведомства в АРМ губернатора: "t", "f"
"map_extent_id": "2", //id положения карты
"right_id": "0", //служебное значение для MapAdmin, всегда "0"
"users_count": "37", //количество пользователей
"people_dep": "f" //является ли ведомство, ведомством населения: "t", "f"
},
... //следующие элементы списка организаций
]
}
[AI] GET /departments/:id/name
Получение названия организации по id.
// OUT <---
{
"res": 1,
"resText": "",
"department_name": "Отдел Тестирования" //название организации
}
[AIait*] GET /departments/:id/users
Получение списка пользователей организации, где id — id организации.
// OUT <---
{
"res": 1,
"resText": "",
"users": [
{
"id": "3011", //id пользователя
"login": "admin1439218241106", //логин пользователя
"fio": "Иванов И.И.", //ФИО пользователя
"department_id": "2", //id ведомства, либо null, если пользователь не относится ни к какой организации
"role_id": "10" //id роли пользователя: "6", "7" - обычный пользователь, "10" - админ ведомства, "8" - администратор всех ведомств
},
... //следующие элементы списка пользователей организации
]
}
* Права доступа на выполнение данного запроса для ролей a, i, t зависят от настроек безопасности, прописанных в конфигурационном файле application.conf.
Права доступа на выполнение данного запроса для ролей A, I есть всегда, независимо от настроек. Для роли a (администратора организации):
- доступ есть, если указанный в запросе id организации совпадает с id организации пользователя и в конфигурационном файле application.conf
security.see.users.self.dep.allow.org.admin=true или security.see.users.self.dep.allow.org.user=true, - доступ есть, если указанный в запросе id организации не совпадает с id организации пользователя и в конфигурационном файле application.conf
security.see.users.other.dep.allow.org.admin=true или security.see.users.other.dep.allow.org.user=true, - в остальных случаях для роли a (администратора организации) доступа нет.
Для роли i (инспектора организации):
- доступ есть, если указанный в запросе id организации совпадает с id организации пользователя и в конфигурационном файле application.conf
security.see.users.self.dep.allow.org.inspector=true или security.see.users.self.dep.allow.org.user=true, - доступ есть, если указанный в запросе id организации не совпадает с id организации пользователя и в конфигурационном файле application.conf
security.see.users.other.dep.allow.org.inspector=true или security.see.users.other.dep.allow.org.user=true, - в остальных случаях для роли i (инспектора организации) доступа нет.
Для роли t (авторизованного пользователя, с ролью, отличной от ролей A, I, a, i):
- доступ есть, если указанный в запросе id организации совпадает с id организации пользователя и в конфигурационном файле application.conf
security.see.users.self.dep.allow.org.user=true, - доступ есть, если указанный в запросе id организации не совпадает с id организации пользователя и в конфигурационном файле application.conf
security.see.users.other.dep.allow.org.user=true, - в остальных случаях для роли t (авторизованного пользователя, с ролью, отличной от ролей A, I, a, i) доступа нет.
Связи между организациями и видами работ
[AIai] POST /departments/:id/newstype/:id
Привязка вида работ к организации.
Если указанных вида работ или организации не существует, получаем ошибку 404.
Если связь уже существует, ошибку не получаем (INSERT в таблицу повторно не выполняется).
// OUT <---
{
"res": 1,
"resText": ""
}
[AIai] DELETE /departments/:id/newstype/:id
Удаление связи между видом работ и организацией.
Если указанных вида работ или организации не существует, получаем ошибку 404.
Если связи не существует, получаем ошибку 400.
// OUT <---
{
"res": 1,
"resText": ""
}
/upload/departmentIcons
[t] POST /upload/departmentIcons
Загрузка файлов иконок для организаций.
В запросе на загрузку иконок необходимо:
- указать Content-Disposition: name=»Filedata»,
- передать файл в переменной «Filedata».
Пример загрузки иконки через REST-клиент POSTMAN
Формат ответа при успешной загрузке иконки:
// OUT <---
{
"res": 1,
"resText": "",
"name": "ebb453e8-db16-1004-8f9e-3e07628b8015.jpg" //имя файла, преобразованное с помощью UUID-стандарта идентификации
}
/users
Запросы по пользователям.
[AI] GET /users
Получение списка всех пользователей.
// OUT <---
{
"res": 1,
"resText": "",
"users": [
{
"id": "3011", //id пользователя
"login": "admin1439218241106", //логин пользователя
"fio": "Иванов И.И.", //ФИО пользователя
"department_id": "2", //id ведомства, либо null, если пользователь не относится ни к какой организации
"role_id": "10" //id роли пользователя: "6", "7" - обычный пользователь, "10" - админ ведомства, "8" - администратор всех ведомств
},
... //следующие элементы списка пользователей
]
}
[t] GET /users/current
Получение информации о текущем пользователе.
// OUT <---
{
"res": 1,
"resText": "",
"id": "6", //id пользователя
"login": "ivanov", //логин пользователя
"fio": "Иванов Иван Иванович", //ФИО пользователя
"uvd_department_id": "62", //id ведомства, задания которого будут отображаться в интерфейсе map3d_mcs для AРМ Губернатора
"users_site_type": "2", //принадлежность пользователя ведомству ("1") или организации ("2")
"satellites_view": "t", //видимость спутников в АРМ Губернатора: "t" или "f"
"role_id": "8", //id роли пользователя
"email": "ivanov@gmail.com", //email пользователя
"matrix": "(-0.756602,0.653875,0.00069758),(0.21426,0.246913,0.945054),(0.617775,0.715179,-0.326914),(2.34475e+06,2.7075e+06,5.26909e+06)", //матрица перелета для АРМ Губернатора
"department_id": "1" //id организации пользователя
}
[AI] GET /users/count
Получение количества пользователей.
// OUT <---
{
"res": 1,
"resText": "",
"count": "970" //количество пользователей
}
>
[t] GET /users/standartStore
Получение стандартного хранилища данных для организации, которой принадлежит текущий пользователь. У организации стандартное хранилище данных может отсутствовать.
// OUT <---
{
"res": 1,
"resText": "",
"store": {
"id": "3", //id хранилища данных
"host": "trust.geo4.me", //хост
"port": "5432", //порт
"database": "inf_region" //база данных
}
}
[t] GET /users/standartStore
Получение стандартного хранилища данных для организации, которой принадлежит текущий пользователь. У организации стандартное хранилище данных может отсутствовать.
// OUT <---
{
"res": 1,
"resText": "",
"store": {
"id": "3", //id хранилища данных
"host": "trust.geo4.me", //хост
"port": "5432", //порт
"database": "inf_region" //база данных
}
}
[tA] PATCH/users/:id
Редактирование учетной записи пользователя по id.
// IN --->
{
"email": "test@gmail.com",
"address": "г.Казань, ул.Назарбаева, д.27",
"fio": "Иванов Иван Иванович",
"phone": "8432000555",
"fax": "8432000555",
"inn": "123456789012"
}
// OUT <---
{
"res": 1,
"resText": "",
"id": "6935", //id пользователя
"login": "ivanov_ivan", //логин пользователя
"fio": "Иванов Иван Иванович", //ФИО физического лица или название организации (юридического лица)
"uvd_department_id": "62", //id ведомства, задания которого будут отображаться в интерфейсе map3d_mcs для AРМ Губернатора
"users_site_type": "2", //принадлежность пользователя ведомству ("1") или организации ("2")
"satellites_view": "t", //видимость спутников в АРМ Губернатора: "t" или "f"
"email": "test@gmail.com", //email
"role_id": "10", //id роли пользователя
"matrix": "(-0.756602,0.653875,0.00069758),(0.21426,0.246913,0.945054),(0.617775,0.715179,-0.326914),(2.34475e+06,2.7075e+06,5.26909e+06)", //матрица перелета для АРМ Губернатора
"department_id": "517" //id ведомства/организации
}
[tA] PUT/users/:id
Редактирование учетной записи пользователя по id.
// IN --->
{
"email": "test@gmail.com", //обязательный параметр
"address": "г.Казань, ул.Назарбаева, д.27", //обязательный параметр
"fio": "Иванов Иван Иванович",
"phone": "8432000555",
"fax": "8432000555",
"inn": "123456789012"
}
// OUT <---
{
"res": 1,
"resText": "",
"id": "6935", //id пользователя
"login": "ivanov_ivan", //логин пользователя
"fio": "Иванов Иван Иванович", //ФИО физического лица или название организации (юридического лица)
"uvd_department_id": "62", //id ведомства, задания которого будут отображаться в интерфейсе map3d_mcs для AРМ Губернатора
"users_site_type": "2", //принадлежность пользователя ведомству ("1") или организации ("2")
"satellites_view": "t", //видимость спутников в АРМ Губернатора: "t" или "f"
"email": "test@gmail.com", //email
"role_id": "10", //id роли пользователя
"matrix": "(-0.756602,0.653875,0.00069758),(0.21426,0.246913,0.945054),(0.617775,0.715179,-0.326914),(2.34475e+06,2.7075e+06,5.26909e+06)", //матрица перелета для АРМ Губернатора
"department_id": "517" //id ведомства/организации
}
[A] POST /users
Служебный запрос. Упрощенная схема регистрации пользователей для тестов.
// IN --->
{
"login": "login", //логин
"paswd": "12345", //пароль
"email" : "test@gradoservice.ru", //email, необязательный параметр
"phone": "8432000555", //телефон, необязательный параметр
"ur_fio": "Иванов и КО", //название юр.лица, , необязательный параметр
"ur_address": "Казань", //адрес юр.лица, необязательный параметр
"status": 2, //правовой статус: "1" - юридическое лицо, "2" - физическое лицо, необязательный параметр
"organization_id": 1, //id организации, необязательный параметр
"role_id": 7, //id роли пользователя, необязательный параметр: "6", "7" - обычный пользователь, "10" - админ ведомства, "8" - администратор всех ведомств
"fio": "Иванов И.И." //ФИО пользователя, необязательный параметр
}
// OUT <---
{
"res": 1,
"resText": "",
"user": {
"id": "6391",
"login": "login",
"fio": "Иванов И.И.",
"uvd_department_id": "62", //id ведомства, задания которого будут отображаться в интерфейсе map3d_mcs для AРМ Губернатора
"users_site_type": "2", //принадлежность пользователя ведомству ("1") или организации ("2")
"satellites_view": "t", //видимость спутников в АРМ Губернатора: "t" или "f"
"role_id": "7", //id роли пользователя: "6", "7" - обычный пользователь, "10" - админ ведомства, "8" - администратор всех ведомств
"matrix": "(-0.756602,0.653875,0.00069758),(0.21426,0.246913,0.945054),(0.617775,0.715179,-0.326914),(2.34475e+06,2.7075e+06,5.26909e+06)",//матрица перелета для АРМ Губернатора
"department_id": "1" //id ведомства/организации
}
}
[A] DELETE /users/:id
Удаление пользователя (логическое удаление).
// OUT <---
{
"res": 1,
"resText": ""
}
[A] DELETE /users/:id/hard
Удаление пользователя (физическое удаление для тестов).
// OUT <---
{
"res": 1,
"resText": ""
}