2011-06-21 54 views
0

我剛將spring安全插件添加到我的grails應用程序中。我對添加用戶及其相關角色有疑問。我能夠在引導程序中正確執行它,但想知道如何在GSP頁面中執行此操作。我有一個與相應的字段的gsp頁面。當被引用時,它調用save方法。我的用戶域控制器擴展了SecUser。下面是例子:如何在彈簧安全核心中添加用戶

class User extends SecUser { 

    String fname 
    String lname 
    Date dateCreated 
    Date lastUpdated 

    static constraints = { 
     fname  (blank:false) 
     lname  (blank:false) 
    } 
    String toString(){ 
     fname & " " & lname 
    } 
} 

當用戶保存,它僅保存在用戶域,而不是SecUser項目。有沒有人有一個示例GSP和控制器代碼來保存所有的用戶數據?

回答

0

我看出你有兩個問題:

  1. 如何在您的用戶類來創建一個CRUD(包括GSP)
  2. 如何保持你的類和數據及其繼承的字段

對於第一個問題: 要創建GSP和您需要在用戶類上具有CRUD的所有內容,我建議您使用腳手架。如果將爲你照顧這一切。

從UserController中只用下面的代碼移除所有或創建另一控制器:

class UserController { 
    static scaffold = User 
} 

然後,導航到UserController中({your_app} /用戶/指數)和一切應該在那裏。

如果你想有一個實際控制人及其GSPS並修改它們是如何工作,使用Grails命令:grails generate-all your.package.User

對於第二個問題:

除非有一個與你的SecUser類問題(瞬態例如字段),從SecUser繼承所有字段應該通過User.save()保存

讓我知道如何去,

文森特Giguère

+0

感謝這有所幫助。對不起,我沒有早點檢查過。我不知道這是必需的 – jason

0

您是否使用包含的腳本來生成您的用戶類?

的grails S2-快速啓動 DOMAIN_CLASS_PACKAGE USER_CLASS_NAME ROLE_CLASS_NAME [REQUESTMAP_CLASS_NAME]

例如。

Grails的S2-快速入門com.yourapp用戶權限

當我這樣做,在我的Grails應用程序,所產生的User類沒有延伸SecUser。

+0

我想你可能會混淆我的問題。現在我使用下面的代碼在我的引導程序中添加用戶:def newUser = new mgr.User(username:「newUser」,password:springSecurityService。encodePassword( 「管理員」),FNAME: 「傑森」,L-NAME: 「L-NAME」,dateCreate:今天,LASTUPDATED:今天,啓用:真)\t \t newUser.save()\t SecUserSecRole.create NEWUSER,adminRole我的問題是,我如何在我的GSP和控制器文件中添加用戶? – jason

+0

感謝您的回覆。不,我想擴展SecUser。當我添加安全核心時,我已經有一個用戶域,所以我只想擴展它。問題是,當我生成視圖時,創建和編輯視圖不會爲角色添加任何內容。我能夠編寫自己的代碼來添加用戶,但是當我想刪除用戶時,我無法找到如何讓用戶的SecUser和SecRole刪除(我知道用戶的主鍵,但是這似乎不足以刪除)任何幫助將是偉大的 – jason