簡體   English   中英

Activeadmin自定義過濾器加密屬性

[英]Activeadmin custom filter encrypted attribute

我正在嘗試使用過濾器搜索加密字段。

例如,假設在Rails控制台中,我可以執行以下操作:

u = User.find_by_email(“ someone@example.com”)

並獲得用戶。

但是,如果我這樣獲得用戶:

u = User.find(1)

返回的對象具有加密的電子郵件屬性。 也就是說,我仍然可以通過以下方式獲取該用戶的電子郵件:

電子郵件

但是,我不知道如何讓Activeadmin / meta_search發揮其魔力來通過電子郵件進行過濾。

有什么想法嗎?

我不確定您是如何加密電子郵件字段的,或者為什么呢,是否可以防止黑客將其捕獲到數據庫中? 如果您不希望在數據庫中公開某個屬性,但是希望能夠在Controller或Model層中進行搜索,則應創建一個虛擬屬性。 這可以使用Ruby attr方法完成,並且電子郵件應在創建時存儲。

attr_accessible :email, :email_encrypted

attr_reader :email

def email=(email)
  @email = email
  self.email_encrypted = ENCRYPTION.create(email)
end

ENCRYPTION是您使用的任何加密庫,例如BCRYPT。

暫無
暫無

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

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