2015-04-16 4 views
0

При попытке собрать частичную форму, в которой размещены все входы для создания пользователя, у меня есть несколько вопросов по этому вопросу.Редактирование пользователя для Laravel App

Поля формы: first_name, last_name, email, password, password_confirmation, user_role_id.

Создавать и редактировать форму можно ТОЛЬКО для администратора. Форма отлично работает на стороне создания, но я пытаюсь придумать, как обращаться с редактированием. Прямо сейчас поле пароля, очевидно, пустое из-за поведения по умолчанию Laravel, скрывающего ввод пароля из пользовательской модели.

Чтобы администратор мог отредактировать пользователя, что мне делать, чтобы приспособиться к этому. Поскольку, возможно, просто изменился адрес электронной почты или имя, а затем нажатие кнопки отправки не будет иметь значения для пароля. Продолжаю ли я и не скрываю поле пароля.

Также, если ситуация, когда администратор изменяет роль пользователя на что-то еще, пока этот пользователь в настоящее время зарегистрирован. Что мне делать с тем, что может включить/запретить пользователю доступ к частям приложения на основе того, когда они вошли в систему с этой предыдущей ролью.

ответ

1

Надеюсь, я правильно понимаю вашу проблему. Если нет, пожалуйста, дайте мне знать.

Что касается пароля, то, что я делал ранее, это оставить поля ввода password и confirm_password пустыми. Тогда, если в первом поле пароля есть что-то в нем, я предполагаю, что вы хотите изменить пароль. Затем я проверяю, чтобы оба пароля совпадали и соответствующим образом обновили пользователя.

Что касается изменения ролей, я не знаю о какой-либо встроенной функции от Laravel для принудительного входа пользователя в систему при следующем доступе к аутентифицированной странице. Но это, вероятно, то, что вы хотели бы сделать. Либо укажите, что пользователь снова войдет в систему, либо просто дождитесь окончания их сеанса и снова должен войти в систему.

Мне любопытно посмотреть, как другие справились с этой ситуацией.

1

Я бы использовал базу данных для хранения сеансов, таким образом вы можете удалить данные сеанса для определенных пользователей, что заставит их повторно аутентифицироваться при следующем запросе.

Вам необходимо будет использовать фильтр для проверки наличия данных сеанса в базе данных перед обработкой запроса. Если нет, перенаправляйтесь на логин.

Поэтому, когда администратор изменяет роль для пользователя, если эта информация не сохраняется в сеансе для пользователя, не требуется повторная проверка, если роль проверяется непосредственно из db. Если роль равна в сеансе пользователей и этот сеанс находится в базе данных, вы можете удалить сеанс для пользователя из базы данных, заставляя их переходить к следующему запросу, получая им новую роль. Это работает, только если у вас есть соответствующие фильтры для проверки информации о сеансе пользователя.

Смежные вопросы