Пользовательская регистрация Spree - Ошибка авторизации администратора

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

Добавление имени в Spree Devise регистрация

Кажется, что на стороне фронта все работает. Однако теперь я получаю предупреждение об ошибке авторизации, когда пытаюсь получить доступ к своему администратору.

Вот журнал консоли:

Started GET "/admin/orders" for ::1 at 2015-07-21 13:25:16 -0500
Processing by Spree::Admin::OrdersController#index as HTML
  Spree::Preference Load (0.3ms)  SELECT  "spree_preferences".* FROM "spree_preferences" WHERE "spree_preferences"."key" = $1 LIMIT 1  [["key", "spree/backend_configuration/locale"]]
  Spree::User Load (0.5ms)  SELECT  "spree_users".* FROM "spree_users" WHERE "spree_users"."deleted_at" IS NULL AND "spree_users"."id" = $1  ORDER BY "spree_users"."id" ASC LIMIT 1  [["id", 6]]
   (0.7ms)  SELECT COUNT(*) FROM "spree_roles" INNER JOIN "spree_roles_users" ON "spree_roles"."id" = "spree_roles_users"."role_id" WHERE "spree_roles_users"."user_id" = $1 AND "spree_roles"."name" = $2  [["user_id", 6], ["name", "admin"]]
Redirected to http://localhost:3000/unauthorized
Completed 302 Found in 88ms (ActiveRecord: 4.1ms)

Я попытался переопределить приложение /controllers/spree/admin/users_controller_decorator.rb

module Spree
  module Admin
   UsersController.class_eval do

    private
     def user_params
         params.require(:user).permit(:email, :password, :password_confirmation, :spree_role_ids, :name, :surname, :birthdate)

     end

   end
  end
end

2 ответа

Решение

Вы не можете назначить роль администратора любому пользователю со стороны веб-интерфейса. Пожалуйста, зарегистрируйте пользователя с внешнего интерфейса и измените его роль с внутреннего.

Когда вы регистрируете пользователя из внешнего интерфейса, это простой пользователь, он не является администратором или у него нет прав администратора, поэтому вы столкнулись с этой проблемой.

Если вы хотите создать пользователя с правами администратора, просто зайдите в панель администратора и дайте разрешения этим пользователям.

Это команда по умолчанию для создания администратора, запустите эту команду в консоли

bundle exec rake spree_auth:admin:create

Спасибо

Другие вопросы по тегам