Мета
Даний веб-сервіс (WS) розроблено для оновлення методів автентифікації.
Специфікація
Авторизація
Перевірити валідність токену доступу
Повернути (401, 'Invalid access token') в разі неуспішних перевірок
Перевірити, що токен дійсний
в разі помилки - повернути (401, 'Invalid access token')
Перевірити скоупи користувача на можливість виконання даної дії (scope = 'authentication_method:write_pis')
Повернути (403, 'Your scope does not allow to access this resource. Missing allowances: authentication_method:write_pis') в разі невалідних скоупів
Перевірити, що токен містисть person_id
в разі помилки - повернути (401, 'Invalid access token')
Перевірити персону
Отримати
person_id
з токену (x-person-id
хедер)Перевірити статус персони, що він активний (status = ‘active' & is_active = 'true’)
в разі помилки - повернути 404 ('Person is not found')
Перевірити довірену особу та взаємозв'язок
Якщо персона юридично не дієздатна - система має переконатись, що її дані оновлюються довіреною особою та є зареєстрований та верифікований взаємозв'язок.
Отримати applicant_person_id
з токену, порівняти цого до person_id
з токену:
якщо рівний - перевірити, що персона має бути не авторизована як довірена особа, що вона не відповідає наступним правилам:
вік персони < no_self_registration_age глобальному параметру;
що вік персони між значенням no_self_registration_age та person_full_legal_capacity_age глобальних параметрів та персона не має документу з типом з конфігураційного параметру PIS_PERSON_LEGAL_CAPACITY_DOCUMENT_TYPES;
вік персони > person_full_legal_capacity_age глобального параметру та існує хоча б один взаємозв'язок активний та погоджений з довіреною особою з персоною (викорисовуючи наступний процес /wiki/spaces/PCAB/pages/17415995422 з person_id = person з запиту - очікується відповідь
:ok, :approved
)в разі помилки - повернути 409 (‘Request must be authorized by confidant person’)
Якщо не рівний - перевірити взаємозв'язок по наступним крокам:
Перевірити, що зареєстрований взаємозв'язок між
person_id
таapplicant_person_id
(MPI.confidant_person_relationships)Перевірити, що взаємозв'язок є VERIFIED
в разі помилки - повернути 409 (‘Can’t confirm relationship’)
Перевірити, що існує
applicant_person_id
(status = 'active' & is_active = 'true') та має будь-який verification_status але неNOT_VERIFIED
в разі помилки - повернути 409 (‘Confidant person not found or is not verified’)
Перевірити запит
Перевірити метод автентифікації. il.authentication_method_request.auth_methos_current.type = THIRD_PERSON or ОТР
в разі помилки - повернути 403 ('Only THIRD_PERSON or ОТР authentication method types could be updated')
Перевірити, що метод автентифікації належить персоні
в разі помилки - повернути 404 ('Such authentication method does not belong to this person')
Перевірити, що auth_method активний (person_authentication_methods.ended_at > now())
в разі помилки - повернути 422 ('Authentication method isn’t active')
Перевірити, що інша особа оновлена
в разі помилки - повернути 422 ('Only alias can be updated')
Сервісна логіка
Отримати person_id з токену (x-person-id хедер).
Оновити метод автентифікації персони
Відобразити відповідь у відповідності до специфікації.