Как правильно реализовать данный функционал.?
Есть пользователи с разными ролями и есть страница "Профиль пользователя"
Нужно сделать так что бы каждая роль могла просмотреть свой профиль.
Но только администратор мог редактировать свой профиль.
На данный момент я сделал что для просмотра профиля существует одна страница а для редактирования другая страница, но как реализовать это все на одной странице, потому что очень много кода который повторяется
Вариант с тем что скрыть кнопку обновления не корректен так как останутся поля которые можно редактировать в пределах странниц до ее перегрузки - что очень некрасиво А выключать каждое поле если роль пользователя ниже определенной как то очень грязно получается
Как это реализуется на продвинутом уровне, а не на уровне быдло кода когда пойдет то что бы просто работало.
Постарался как можно детальнее объяснить суть вопроса.
Не нужно писать код, просто подскажите в каком направлении думать что бы лучше реализовать данное.
Спасибо
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 тут неплохая реализация разграничения по правам.
Айфон мало держит заряд, разбираемся с проблемой вместе с AppLab
Перевод документов на английский язык: Важность и ключевые аспекты
Судари и сударыни, помогите советомКак сделать класс НЕ наследуемым (PHP) ?? Гугление по ключевым словам "не наследуемый класс PHP", "какие бывают...
стоит версия php56 mac os, ставил через brew, при запуске php -S localhost:8000 заводится сервер, читает indexhtml, но как только доходит дело до чтения кода php сервер...
Есть потребность в том, чтобы моя программа имела полноценную поддержку Windows XP
создать клас Лист и унаследовав от него клас Стекв листе только два метода add и remove