diff --git a/controllers/account.go b/controllers/account.go index 9eaae094..8e969360 100644 --- a/controllers/account.go +++ b/controllers/account.go @@ -273,7 +273,8 @@ func (c *ApiController) Signup() { return } - c.Ctx.Input.SetParam("recordUserId", fmt.Sprintf("%s/%s", application.Organization, user.Name)) + c.Ctx.Input.SetParam("recordUserId", user.GetId()) + c.Ctx.Input.SetParam("recordSignup", "true") userId := user.GetId() util.LogInfo(c.Ctx, "API: [%s] is signed up as new user", userId) diff --git a/routers/record.go b/routers/record.go index 2647f199..cccb4432 100644 --- a/routers/record.go +++ b/routers/record.go @@ -15,6 +15,8 @@ package routers import ( + "fmt" + "github.com/beego/beego/context" "github.com/casdoor/casdoor/object" "github.com/casdoor/casdoor/util" @@ -68,6 +70,7 @@ func RecordMessage(ctx *context.Context) { func AfterRecordMessage(ctx *context.Context) { record, err := object.NewRecord(ctx) if err != nil { + fmt.Printf("AfterRecordMessage() error: %s\n", err.Error()) return } @@ -79,7 +82,22 @@ func AfterRecordMessage(ctx *context.Context) { recordSignup := ctx.Input.Params()["recordSignup"] if recordSignup == "true" { record2 := *record - record2.Action = "signup" + record2.Action = "new-user" + + var user *object.User + user, err = object.GetUser(userId) + if err != nil { + fmt.Printf("AfterRecordMessage() error: %s\n", err.Error()) + return + } + if user == nil { + err = fmt.Errorf("the user: %s is not found", userId) + fmt.Printf("AfterRecordMessage() error: %s\n", err.Error()) + return + } + + record.Object = util.StructToJson(user) + util.SafeGoroutine(func() { object.AddRecord(&record2) }) }