自定义 Spree 设计注册 - 管理员授权失败
Custom Spree Devise Registration - Admin Authorization Failure
我添加了名字、姓氏和生日字段来设计注册。
这是我原来问题的link。
Adding name to Spree Devise registration
前端似乎一切正常。但是,当我尝试访问我的管理员时,我现在收到 授权失败 警报。
这是控制台日志:
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" = 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" = 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" = AND "spree_roles"."name" = [["user_id", 6], ["name", "admin"]]
Redirected to http://localhost:3000/unauthorized
Completed 302 Found in 88ms (ActiveRecord: 4.1ms)
我试图覆盖 app/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
您不能从前端向任何用户分配管理员角色。
请从前端注册用户并从后端更改其角色。
当您从前端注册用户时,这是一个简单的用户,他不是管理员,或者他没有管理员权限,这就是您遇到此问题的原因。
如果您想创建一个具有管理员访问权限的用户,那么您只需转到管理面板并向该用户授予权限。
这是创建管理员的默认命令,运行控制台中的此命令
bundle exec rake spree_auth:admin:create
谢谢
我添加了名字、姓氏和生日字段来设计注册。 这是我原来问题的link。
Adding name to Spree Devise registration
前端似乎一切正常。但是,当我尝试访问我的管理员时,我现在收到 授权失败 警报。
这是控制台日志:
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" = 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" = 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" = AND "spree_roles"."name" = [["user_id", 6], ["name", "admin"]]
Redirected to http://localhost:3000/unauthorized
Completed 302 Found in 88ms (ActiveRecord: 4.1ms)
我试图覆盖 app/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
您不能从前端向任何用户分配管理员角色。 请从前端注册用户并从后端更改其角色。
当您从前端注册用户时,这是一个简单的用户,他不是管理员,或者他没有管理员权限,这就是您遇到此问题的原因。
如果您想创建一个具有管理员访问权限的用户,那么您只需转到管理面板并向该用户授予权限。
这是创建管理员的默认命令,运行控制台中的此命令
bundle exec rake spree_auth:admin:create
谢谢