Soru Devils on Rails beta 3'te yönetici kullanıcı oluşturma


Tamam, birisinin bunu, eksik olduğum basit bir şeyle cevapladığında çok aptalca hissedeceğim, ama ... işte burada:

Raylar 3 beta üzerinde yepyeni bir uygulama var ve kimlik doğrulaması için kullanıyorum. Tüm yorumları çalıştırıyorum ve her şey mükemmel çalışıyor. Bir kullanıcı rolü ve yönetici rolü oluşturdum (aşağıdaki talimatları izleyin: https://github.com/plataformatec/devise/wiki/How-To:-Add-an-Admin-Role) ve kendimi ilk kullanıcı olarak kaydettim, ancak nasıl yönetici rolü kullanıcı kaydedebilirim veya oluşturabilirim? Düzenleme görevlilerinden yönlendirme, yönetici rolünü kayıtsız olmamak üzere ayarlıyor ancak kayıt yapamıyorsanız yöneticiyi nasıl oluşturacağınızdan emin değilim ?!

Herhangi bir yardım takdir edilecektir! Teşekkürler!


44
2018-04-25 13:42


Menşei




Cevaplar:


Evet. Aptal hissediyorum.

Eğer başka biri benzer bir boşluğa sahipse. Yönetici kullanıcısını oluşturmak için ray konsolunu kullanmanız yeterlidir:

 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 = 'sample@sample.com'
irb(main):003:1> u.password = 'password'
irb(main):004:1> u.password_confirmation = 'password'
irb(main):005:1> end

Bu yapacak. Şimdi sadece yönetici giriş yolunuzu ziyaret edin ve giriş yapın.


91
2018-05-02 08:15



Oylama, cevabınızın ilk cümlesine atıfta bulunmuyordu. - lbz
Gerçekte, raylar konsolunu kullanarak rayların ne kadarı gerçekte yönetiliyor? Bilirsin, o küçük şeyler, burada bir bayrak alanı var mı? - Bryan Rehbein
Muhtemelen korkunç bir miktar konsolda yönetilmektedir. Biliyorum her zaman kullanırım. Ama Rails uygulamalarımıza erişmek için harika bir yol yarattığımız için @dhh'a teşekkür etmeliyiz. - erskingardner
En son Devise ve ActiveAdmin'den itibaren, AdminUser.create kullanın! Admin.create yerine! Cevap için teşekkürler! - randomor


Gerçekten yapmaya çalıştığınız şey, tohum verisi yaratmak. Bunu yapmanın daha standart bir yolu, tohum kullanıcılarınızı (ve bunları saklıyorsanız, rolleri) db / seeds.rb'ye eklemek olacaktır.

Db / seeds.rb’de exmaple için:

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

O zaman koş:

rake db:seed

13
2018-06-08 09:27



Bunu yapmanın doğru yolu budur. - 0112


Bu, Devise için geçerli olmayabilir (ancak bunu yapacağına inanıyorum), ancak genel olarak bir yönetici kullanıcısını tohumlamak istiyorsanız ancak yönetici şifrenizi kaynak kontrolünde saklamak istemiyorsanız, bunun gibi bir şey yapabilirsiniz ...

@user = User.find_by_email("admin@email.com")

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 = "admin@email.com"
    u.password_digest = "$2a$10$DUv/IUiLB34jhi3j4Z8MwwcaDlBmFe3rvcdXSzPKLzBOAMmD53UqW"
  end

  @user.save(:validate => false)

  # TODO make the user an admin
end

Kullanıcıyı, password_digest öğesini bulmak istediğiniz şifre ile yerel olarak oluşturabilirsiniz.


5
2017-09-12 22:38



şifreyi sindirmek için md5 kullanıyor mu? - fatman13


@Stewart Siz haklısınız. Kullanıcı modelinde yönetici bayrağı kullanmak kabul edilebilir ve birçok yetkilendirme seçeneğiyle birlikte var olabilir. Nasıl göründüğüne dair bir örnek için Cancan Dokümanlar'daki Yetenek sınıfına bir göz atın:

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

Birden fazla yetkilendirme modeline sahip olmak, işlevsellik gerçekten farklıysa ya da yetkilendirme için gerekli olan, anonilere alt etki alanı ekleme gibi gereksinimler farklı olabilir.

Başka bir yaklaşım, kullanıcıyla HABTM rolleri ilişkisi eklemektir. İşte Tony Amoyal tarafından güzel bir öğretici: http://www.tonyamoyal.com/2010/07/28/rails-authentication-with-devise-and-cancan-customizing-devise-controllers/


3
2017-11-08 22:17





admin path'ınıza ekleme / sign_in'i, her ne yaparsanız yapın ...

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


0
2018-04-26 17:47



Muhtemelen kullanmadığınız oopsiler: doğrulanabilir. Yönetici görünümlerini geçersiz kılma konusunda yardım için bu sayfayı deneyin: wiki.github.com/fortuity/subdomain-authentication/... - kinet
Hayır, kullanmadım: admin modelini kurarken doğrulanabilir, dediğim gibi, divanın github sayfasında yer aldığı öğretiyi kullanıyordum. Yardım edebilirsem alt alan kullanmamayı tercih ederim ... - erskingardner


Tabloları doldurmak için uygun bir yol var - db / seed.rb dosya. Sadece içinde kullanıcı oluşturmak için komut dosyasını ekleyin ve çalıştırın:

rake db:seed

Aşağıda örnek görebilirsiniz User model ile email ve username alanlar:

# Inserting default security users
users = {

    admin: {

        username: 'admin',
        email: 'admin@gmail.com',
        password: 'adminpass',
        password_confirmation: 'adminpass',
        is_admin: true
    },

    administrator: {

        username: 'administrator',
        email: 'administrator@gmail.com',
        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

Not, bu doğrulama doğrulamaları burada uygulanmaktadır.

İşte kullanarak daha fazla örnek bulabilirsiniz seed.rb dosya ve İşte raynın rayları attı.


0
2017-07-03 21:20