2010-04-25 10 views
44

ठीक बनाना, मैं शायद काफी गूंगा महसूस करने के लिए जब कोई एक साधारण बात यह है कि मैं याद कर रहा हूँ के साथ इस एक जवाब देता है, लेकिन जा रहा हूँ ... यहाँ जाता है:रेल बीटा पर वसीयत में एक व्यवस्थापक उपयोगकर्ता 3

मैं रेल 3 बीटा पर एक नया ऐप मिला है और मैं प्रमाणीकरण के लिए तैयार हूं। मैंने सभी टिप्पणियां चलाई हैं और सब कुछ इस समय पूरी तरह से काम कर रहा है। मैंने एक उपयोगकर्ता भूमिका और एक व्यवस्थापक भूमिका बनाई है (इन निर्देशों का पालन करें: https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-Role) और मैंने खुद को पहले उपयोगकर्ता के रूप में पंजीकृत कर लिया है, लेकिन मैं पंजीकरण कैसे कर सकता हूं या व्यवस्थापक भूमिका उपयोगकर्ता कैसे बना सकता हूं? Devise guys से दिशानिर्देश व्यवस्थापक भूमिका निभाने योग्य नहीं हैं लेकिन मुझे यकीन नहीं है कि अगर आप पंजीकरण नहीं कर सकते हैं तो आप व्यवस्थापक कैसे बना सकते हैं ?!

किसी भी मदद की सराहना की जाएगी! धन्यवाद!

उत्तर

91

हाँ है/sign_in। मुझेमूक होने का अनुभव हो रहा है।

यदि किसी और के पास एक समान वापीड पल है। व्यवस्थापक उपयोगकर्ता बनाने के लिए बस रेल कंसोल का उपयोग करें:

➡ rails c 
Loading development environment (Rails 3.0.0.beta3) 
irb(main):001:0> admin = Admin.create! do |u| 
irb(main):002:1* u.email = '[email protected]' 
irb(main):003:1> u.password = 'password' 
irb(main):004:1> u.password_confirmation = 'password' 
irb(main):005:1> end 

यह ऐसा करेगा। अब बस पथ में अपने व्यवस्थापक चिह्न पर जाएं और साइन इन करें।

+23

वोट अप आपके उत्तर की पहली वाक्य का जिक्र नहीं कर रहा था। – lbz

+3

हकीकत में, रेलवे कंसोल का उपयोग करके वास्तव में कितनी रेल साइट प्रबंधित की जाती है? आप जानते हैं, उन मामूली चीज़ों, यहां एक झंडा क्षेत्र है? –

+0

शायद कंसोल के माध्यम से एक भयानक राशि प्रबंधित की जाती है। मुझे पता है कि मैं इसे हर समय इस्तेमाल करता हूं। लेकिन मुझे लगता है कि हमें अपने रेल ऐप तक पहुंचने के लिए इस तरह का शानदार तरीका बनाने के लिए @ डीएचएच का शुक्रिया अदा करना चाहिए। – erskingardner

0

कोशिश appending अपने व्यवस्थापक पथ, जो कुछ भी आप सेट इसे करने के लिए ... मेरा

http://yoursite.com/admin/sign_in?unauthenticated=true

+0

ओह, आपने संभवतः उपयोग नहीं किया: प्रामाणिक। व्यवस्थापक दृश्यों को ओवरराइड करने में सहायता के लिए इस पृष्ठ को आज़माएं: http://wiki.github.com/fortuity/subdomain-authentication/tutorial-walkthrough – kinet

+0

नहीं, मैंने इसका उपयोग नहीं किया: व्यवस्थापक मॉडल को तैयार करने के साथ प्रमाणीकरण योग्य, जैसे मैंने कहा, मैं ट्यूटोरियल का उपयोग कर रहा था कि विभाजन उनके जीथब पेज पर है। अगर मैं इसकी मदद कर सकता हूं तो मैं सबडोमेन का उपयोग नहीं करना चाहूंगा ... – erskingardner

3

@ स्टीवर्ट आप सही हैं। उपयोगकर्ता मॉडल में एक व्यवस्थापक ध्वज का उपयोग स्वीकार्य है और अभी भी कई प्राधिकरण विकल्पों के साथ सह-अस्तित्व में है। इस कैसे दिखाई दे सकती का एक उदाहरण के लिए कैनकैन डॉक्स में क्षमता वर्ग पर एक नज़र डालें: कई प्राधिकरण मॉडल होने

def initialize(user) 
    if user.admin? 
    can :manage, :all 
    else 
    can :read, :all 
    end 
end 

उपयोगी हो सकता है अगर कार्यक्षमता वास्तव में अलग है या अगर इस तरह के रूप में जोड़ने प्राधिकरण के लिए आवश्यकताओं, लेखक के लिए सबडोमेन अलग है।

एक और तरीका है अपने उपयोगकर्ता को एक एचएबीटीएम भूमिका संबंध जोड़ने के लिए। टोनी अमीर द्वारा एक अच्छा ट्यूटोरियल यहां दिया गया है: http://www.tonyamoyal.com/2010/07/28/rails-authentication-with-devise-and-cancan-customizing-devise-controllers/

5

यह डेविस पर लागू नहीं हो सकता है (लेकिन मुझे विश्वास है कि यह होगा), लेकिन सामान्य रूप से यदि आप एक व्यवस्थापक उपयोगकर्ता को बीज बनाना चाहते हैं लेकिन अपना व्यवस्थापक पासवर्ड स्टोर नहीं करना चाहते हैं स्रोत नियंत्रण में है, तो आप कुछ इस तरह कर सकते हैं ...

@user = User.find_by_email("[email protected]") 

unless @user 
    # We are going to bypass both our assignment protection and validation 
    # so we aren't storing the password in source control. 
    # 
    # This doesn't replace the need to change the password occasionaly, both 
    # on the site and in source control. 
    @user = User.create do |u| 
    u.name = "Admin User" 
    u.email = "[email protected]" 
    u.password_digest = "$2a$10$DUv/IUiLB34jhi3j4Z8MwwcaDlBmFe3rvcdXSzPKLzBOAMmD53UqW" 
    end 

    @user.save(:validate => false) 

    # TODO make the user an admin 
end 

आप पासवर्ड आप password_digest लगाना चाहते हैं के साथ स्थानीय स्तर पर उपयोगकर्ता बना सकते हैं।

+0

पासवर्ड पचाने के लिए md5 का उपयोग तैयार करता है? – fatman13

13

आप वास्तव में क्या करने की कोशिश कर रहे हैं वह बीज डेटा बना रहा है। यह करने के लिए (और भूमिकाओं अगर तुम उन्हें भंडारण कर रहे हैं) अपने बीज उपयोगकर्ताओं को जोड़ने के db से होगा एक और अधिक मानक तरीका/seeds.rb

db/seeds.rb में उदाहरण के लिए:

roles = Role.create([{name: 'super_admin'}, {name: 'staff'}, {name:'customer'}]) 
users = User.create([{email: '[email protected]', first_name: 'super', last_name: 'admin', password: '@dmin123', password_confirmation: '@dmin123', role: roles[0]}]) 

तब चलाएँ:

rake db:seed 
+1

यह करने का यह सही तरीका है। – 0112

0

तालिकाओं को आबाद करने के लिए सुविधाजनक तरीका है - db/seed.rb फ़ाइल।नीचे आप email और username क्षेत्रों के साथ User मॉडल के उदाहरण देख सकते हैं

rake db:seed 

:

# Inserting default security users 
users = { 

    admin: { 

     username: 'admin', 
     email: '[email protected]', 
     password: 'adminpass', 
     password_confirmation: 'adminpass', 
     is_admin: true 
    }, 

    administrator: { 

     username: 'administrator', 
     email: '[email protected]', 
     password: 'administrator', 
     password_confirmation: 'administrator', 
     is_admin: true 
    } 
} 

users.each do |user, data| 

    user = User.new(data) 

    unless User.where(email: user.email).exists? 
    user.save! 
    end 
end 

ध्यान दें, कि वसीयत सत्यापन यहाँ लागू होते हैं बस इसे में उपयोगकर्ताओं और रन बनाने के लिए स्क्रिप्ट जोड़ने।

Here आप seed.rb फ़ाइल और here का उपयोग करने के अधिक उदाहरण ढूंढ सकते हैं रेयान की रेल कास्ट है।

संबंधित मुद्दे