本文整理匯總了Golang中github.com/app-kit/go-appkit.User.SetIsActive方法的典型用法代碼示例。如果您正苦於以下問題:Golang User.SetIsActive方法的具體用法?Golang User.SetIsActive怎麽用?Golang User.SetIsActive使用的例子?那麽, 這裏精選的方法代碼示例或許可以為您提供幫助。您也可以進一步了解該方法所在類github.com/app-kit/go-appkit.User
的用法示例。
在下文中一共展示了User.SetIsActive方法的1個代碼示例,這些例子默認根據受歡迎程度排序。您可以為喜歡或者感覺有用的代碼點讚,您的評價將有助於係統推薦出更棒的Golang代碼示例。
示例1: CreateUser
func (s *Service) CreateUser(user kit.User, adaptorName string, authData map[string]interface{}) apperror.Error {
adaptor := s.AuthAdaptor(adaptorName)
if adaptor == nil {
return &apperror.Err{
Code: "unknown_auth_adaptor",
Message: fmt.Sprintf("Auth adaptor %v was not registered with user service", adaptorName),
Public: true,
}
}
authItem, err := adaptor.RegisterUser(user, authData)
if err != nil {
return apperror.Wrap(err, "adaptor_error", "")
}
if user.GetUsername() == "" {
user.SetUsername(user.GetEmail())
}
// Check if user with same username or email exists.
oldUser, err2 := s.Users.Q().
Filter("email", user.GetEmail()).Or("username", user.GetUsername()).First()
if err2 != nil {
return err2
} else if oldUser != nil {
return &apperror.Err{
Code: "user_exists",
Message: "A user with the username or email already exists",
Public: true,
}
}
user.SetIsActive(true)
profile := user.GetProfile()
// If a profile is configured, and the user does not have a profile yet,
// create a new one.
if s.Profiles != nil && profile == nil {
profile = s.Profiles.CreateModel().(kit.UserProfile)
user.SetProfile(profile)
}
if err := s.Users.Create(user, nil); err != nil {
return err
}
// Create profile if one exists.
if profile != nil {
profile.SetUser(user)
if err := s.Profiles.Create(profile, user); err != nil {
s.Users.Backend().Delete(user)
return apperror.Wrap(err, "user_profile_create_error", "Could not create the user profile")
}
}
// Persist auth item.
if authItemUserId, ok := authItem.(kit.UserModel); ok {
authItemUserId.SetUserId(user.GetId())
}
if err := s.Users.Backend().Create(authItem); err != nil {
s.Users.Backend().Delete(user)
if profile != nil {
s.Profiles.Backend().Delete(profile)
}
return apperror.Wrap(err, "auth_item_create_error", "")
}
if err := s.SendConfirmationEmail(user); err != nil {
s.registry.Logger().Errorf("Could not send confirmation email: %v", err)
}
return nil
}