OpenWalletKG / OpenWallet

1 stars 0 forks source link

Реализовать права доступа для Role #47

Closed sn0w1eo closed 7 years ago

sn0w1eo commented 7 years ago

Предыстория Системе требуется разграничение прав для операций

Задача Добавить поле Permission в таблицу Role Реализовать в бинарном виде права пользователей системы для следующих операций: 1) ввод ЭД в систему: [Агент0, Агент] DO_EMISSION = 0b0000001 2) покупка ЭД: [Физ.лицо] BUY = 0b0000010 3) продажа ЭД c выводом на банковский счёт: [Все участники системы] SELL = 0b0000100 4) принятие перевода ЭД: [Физ.лицо] ACCEPT_TRANSFER = 0b0001000 5) осуществление перевода ЭД: [Физ.лицо, Агент] DO_TRANSFER = 0b0010000 6) принятие платежа в виде ЭД: [Поставщик] ACCEPT_PAYMENT = 0b0100000 7) осуществление платежа в виде ЭД: [Физ.лицо] DO_PAYMENT = 0b1000000 Обернуть обработку этих констант в классе Role

Методы решения: Собственная реализация

Критерии готовности: 1) Метод can_do_transfer? отвечает true/false на запрос current_user.role.can_do_transfer? 2) Метод can_buy? отвечает true/false на запрос current_user.role.can_buy? 3) Метод can_sell? отвечает true/false на запрос current_user.role.can_sell? 4) Метод can_accept_transfer? отвечает true/false на запрос current_user.role.can_accept_transfer? 5) Метод can_do_transfer? отвечает true/false на запрос current_user.role.can_do_transfer? 6) Метод can_accept_payment? отвечает true/false на запрос current_user.role.can_accept_payment? 7) Метод can_do_payment? отвечает true/false на запрос current_user.role.can_do_payment?