簡體   English   中英

設計關閉注冊但使用管理員帳戶播種數據庫

[英]Devise close registration but seed database with admin account

我正在尋求完全關閉我的注冊系統( 暫時 ),並且只有1個可以注冊到數據庫或種子化的管理員帳戶。

Devise完全有可能嗎? 還是關閉的注冊也會關閉我的管理員用戶的種子/耙任務?

我目前有一個具有典型devise設置的用戶模型,其中的admin列是布爾值-我目前正在開發列中的列,方法是進入Rails控制台並手動更改它。

任何幫助將是輝煌的!

謝謝

devise Wiki中有詳細的逐步步驟; 但基本上您可以跳過生成注冊路線的操作:

devise_for :users, :skip => :registrations

這將導致無法注冊,從而使它成為單個用戶系統。

這要求使用種子文件或通過控制台創建第一個用戶。

或者,您可以創建自己的控制器來處理注冊,該注冊在第一個用戶之后中斷:

devise_for :users, :controllers => {:registrations => "registrations"}

# app/controllers/registrations_controller.rb
class RegistrationsController < Devise::RegistrationsController
  def create
    if User.any?
      redirect_to root_path, alert: 'Only one user allowed!' and return
    end
    super
  end
end

除非您的Seed / Rake任務執行了諸如使Web瀏覽器自動化之類的真正奇怪的工作,否則這對您的Seed / Rake任務沒有任何影響,因為它們通常涉及直接通過模型來操縱DB,並且根本不會經過控制器:

# Example of seeding an admin user:
admin = User.create_with(surename: 'Doe', forename: 'John').find_or_create_by(email: 'admin@example.com')
admin.add_role(:admin)

您應該能夠刪除設計路線進行注冊,並且仍然可以在用戶中播種。 只要您仍具有會話的設計路由,該用戶便可以登錄/注銷。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM