2016-11-22 56 views
0

根據the docs,Grails提供了一些「對持久性沒有影響,但可以自定義腳手架」的約束。其中之一是password約束。下面是我如何使用它:如何從Grails腳手架視圖隱藏密碼字段?

class User { 

    String username 
    String password 

    static constraints = { 
     username blank: false 
     password blank: false, password: true 
    } 
} 

與腳手架組合,這具有編輯視圖使用專門的密碼輸入我的密碼字段(這是罰款)的作用,但指數並顯示視圖仍顯示密碼以純文本(根本不好)。有沒有辦法在創建和編輯視圖中使用密碼字段只有,或者至少在其他視圖上使用星號或其他字符遮罩?否則我想知道這個約束的真正好處是什麼。我試圖指定display: false, editable: true作爲額外的限制,但無濟於事。要解決這個

回答

0

的一種方法是使用經領域customized field rendering插件:

  • 創建一個文件夾grails-app\views\_fields\user\password
  • 把兩個文件這個文件夾中:_displayWidget.gsp_displayWrapper.gsp
  • 輸入<g:each in="${0..value.length()}">&bull;</g:each>到這兩個文件

密碼字段不會從索引和顯示視圖中消失,但至少你不會再看到它的價值,而是一個子彈點的面具。根據屬性約束,創建和編輯視圖仍然使用密碼輸入小部件。

+0

如果您的密碼以明文形式存儲在您的數據庫中,我認爲您應該放置固定數量的子彈,否則這是矛盾的,因爲您想隱藏密碼,但是您給出了有關此密碼(其大小)的指示。但我當然希望你存儲一個加密的密碼(例如bcrypt)。 – Nico