MCPcopy Index your code
hub / github.com/authorizerdev/authorizer / UpdateUser

Method UpdateUser

internal/service/admin_users.go:80–308  ·  view source on GitHub ↗

UpdateUser updates a user's profile, roles, MFA, or verification state and returns the updated user. Requires super-admin auth. Logic migrated from internal/graphql/update_user.go.

(ctx context.Context, meta RequestMetadata, params *model.UpdateUserRequest)

Source from the content-addressed store, hash-verified

78// returns the updated user. Requires super-admin auth. Logic migrated from
79// internal/graphql/update_user.go.
80func (p *provider) UpdateUser(ctx context.Context, meta RequestMetadata, params *model.UpdateUserRequest) (*model.User, *ResponseSideEffects, error) {
81 log := p.Log.With().Str("func", "UpdateUser").Logger()
82 if err := p.requireSuperAdmin(ctx, meta); err != nil {
83 return nil, nil, err
84 }
85
86 if params.ID == "" {
87 log.Debug().Msg("user id is missing")
88 return nil, nil, fmt.Errorf("user_id is missing")
89 }
90
91 log = log.With().Str("user_id", params.ID).Logger()
92
93 if params.GivenName == nil &&
94 params.FamilyName == nil &&
95 params.Picture == nil &&
96 params.MiddleName == nil &&
97 params.Nickname == nil &&
98 params.Email == nil &&
99 params.Birthdate == nil &&
100 params.Gender == nil &&
101 params.PhoneNumber == nil &&
102 params.Roles == nil &&
103 params.IsMultiFactorAuthEnabled == nil &&
104 params.AppData == nil {
105 log.Debug().Msg("please enter atleast one param to update")
106 return nil, nil, fmt.Errorf("please enter atleast one param to update")
107 }
108
109 user, err := p.StorageProvider.GetUserByID(ctx, params.ID)
110 if err != nil {
111 log.Debug().Err(err).Msg("failed GetUserByID")
112 return nil, nil, fmt.Errorf(`User not found`)
113 }
114
115 if params.GivenName != nil && refs.StringValue(user.GivenName) != refs.StringValue(params.GivenName) {
116 user.GivenName = params.GivenName
117 }
118
119 if params.FamilyName != nil && refs.StringValue(user.FamilyName) != refs.StringValue(params.FamilyName) {
120 user.FamilyName = params.FamilyName
121 }
122
123 if params.MiddleName != nil && refs.StringValue(user.MiddleName) != refs.StringValue(params.MiddleName) {
124 user.MiddleName = params.MiddleName
125 }
126
127 if params.Nickname != nil && refs.StringValue(user.Nickname) != refs.StringValue(params.Nickname) {
128 user.Nickname = params.Nickname
129 }
130
131 if params.Birthdate != nil && refs.StringValue(user.Birthdate) != refs.StringValue(params.Birthdate) {
132 user.Birthdate = params.Birthdate
133 }
134
135 if params.Gender != nil && refs.StringValue(user.Gender) != refs.StringValue(params.Gender) {
136 user.Gender = params.Gender
137 }

Callers

nothing calls this directly

Calls 15

requireSuperAdminMethod · 0.95
StringValueFunction · 0.92
BoolValueFunction · 0.92
IsValidEmailFunction · 0.92
GetHostFunction · 0.92
GenerateNonceFunction · 0.92
GetAppURLFunction · 0.92
GetOrganizationFunction · 0.92
GetEmailVerificationURLFunction · 0.92
IsValidRolesFunction · 0.92
IsStringArrayEqualFunction · 0.92
ToMapMethod · 0.80

Tested by

no test coverage detected