سؤال

لدي نموذج مستخدم يتم التحكم فيه بواسطة ACL9.

في UsersController:

#ACL9 related stuff
before_filter :load_user, :only => [:show]
  access_control do
    allow :owner, :of => :user, :to => [:show]
  end

def load_user
  user = User.find(params[:id])
end

في ApplicationController:

rescue_from 'Acl9::AccessDenied', :with => :access_denied

def access_denied
  authenticate_user! # a method from Devise
end

لا توجد مشكلة في كتابة عنوان URL لتسجيل الدخول إلى صفحة http://localhost:3000/users/sign_in, ، ولكن هذه مشكلة عندما أقوم على سبيل المثال بكتابة في صفحة المستخدم أولاً ، والتي أتوقع إعادة توجيهها لتسجيل الصفحة تلقائيًا من خلال المنطق أعلاه.

http://localhost:3000/users/1 => لا نهائي إعادة توجيه الجحيم. يحاول إعادة التوجيه إلى users/1 مرة أخرى بدلاً من التوجيه إلى users/sign_in.

هل لدى أي شخص رأي حول ما قد يحدث خطأ؟

هل كانت مفيدة؟

المحلول

أعتقد أنه يجب ألا تستخدم ACL9 في استنباط وحدة تحكم المستخدم. نظرًا لأنك لم تتم مصادقتك ، فلن يكون لديك حقوق ولن تصدق: د. قد ترغب في منع المستخدمين من حذف ، لذلك يجب أن يكون مثل:

access_control :only => [:destroy] do
      allow :admin
end

بالنسبة للمستخدمين Controller ، يجب عليك الكتابة فوق Access_Control إذا كنت ترغب في تركه كما هو الحال في وحدة تحكم التطبيق.

مرخصة بموجب: CC-BY-SA مع الإسناد
لا تنتمي إلى StackOverflow
scroll top