Как правильно реализовать данный функционал.?
Есть пользователи с разными ролями и есть страница "Профиль пользователя"
Нужно сделать так что бы каждая роль могла просмотреть свой профиль.
Но только администратор мог редактировать свой профиль.
На данный момент я сделал что для просмотра профиля существует одна страница а для редактирования другая страница, но как реализовать это все на одной странице, потому что очень много кода который повторяется
Вариант с тем что скрыть кнопку обновления не корректен так как останутся поля которые можно редактировать в пределах странниц до ее перегрузки - что очень некрасиво А выключать каждое поле если роль пользователя ниже определенной как то очень грязно получается
Как это реализуется на продвинутом уровне, а не на уровне быдло кода когда пойдет то что бы просто работало.
Постарался как можно детальнее объяснить суть вопроса.
Не нужно писать код, просто подскажите в каком направлении думать что бы лучше реализовать данное.
Спасибо
UPDATED
На данный момент я нашел решение с помощью js если у меня роль текущего юзера ниже нужной я запускаю след код
var form = document.getElementById("form_user_profile");
var elements = form.elements;
for (var i = 0, len = elements.length; i < len; ++i) {
elements[i].disabled = true;
}
Но насколько это правильно?
Самый правильный способ это разграничение по правам. У тебя к примеру есть роли и есть права вот ты и проверяешь не роль, а права к примеру будет условие, что аккаунт администратора может редактировать только пользователь с ролью администратор.
Для примера можешь посмотреть как это реализовано в разных пакетах. К примеру https://github.com/z-song/laravel-admin тут неплохая реализация разграничения по правам.
Кофе для программистов: как напиток влияет на продуктивность кодеров?
Рекламные вывески: как привлечь внимание и увеличить продажи
Стратегії та тренди в SMM - Технології, що формують майбутнє сьогодні
Выделенный сервер, что это, для чего нужен и какие характеристики важны?
Современные решения для бизнеса: как облачные и виртуальные технологии меняют рынок
Судари и сударыни, помогите советомКак сделать класс НЕ наследуемым (PHP) ?? Гугление по ключевым словам "не наследуемый класс PHP", "какие бывают...
стоит версия php56 mac os, ставил через brew, при запуске php -S localhost:8000 заводится сервер, читает indexhtml, но как только доходит дело до чтения кода php сервер...
Есть потребность в том, чтобы моя программа имела полноценную поддержку Windows XP
создать клас Лист и унаследовав от него клас Стекв листе только два метода add и remove