-
Notifications
You must be signed in to change notification settings - Fork 881
feat: use default org for PostUser #12143
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
This stack of pull requests is managed by Graphite. Learn more about stacking. |
01ec5d8
to
bdd0956
Compare
// If no organization is provided, add the user to the first | ||
// organization. | ||
organizations, err := api.Database.GetOrganizations(ctx) | ||
// If no organization is provided, add the user to the default | ||
defaultOrg, err := api.Database.GetDefaultOrganization(ctx) | ||
if err != nil { | ||
if httpapi.Is404Error(err) { | ||
httpapi.Write(ctx, rw, http.StatusNotFound, | ||
codersdk.Response{ | ||
Message: "Resource not found or you do not have access to this resource", | ||
Detail: "Organization not found", | ||
}, | ||
) | ||
return | ||
} | ||
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{ | ||
Message: "Internal error fetching orgs.", | ||
Detail: err.Error(), | ||
}) | ||
return | ||
} | ||
|
||
if len(organizations) > 0 { | ||
// Add the user to the first organization. Once multi-organization | ||
// support is added, we should enable a configuration map of user | ||
// email to organization. | ||
req.OrganizationID = organizations[0].ID | ||
} | ||
req.OrganizationID = defaultOrg.ID |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
This is the change
60775a6
to
04c6149
Compare
0f27fcc
to
5bb0ffc
Compare
04c6149
to
7059828
Compare
7059828
to
a25537e
Compare
Instead of assuming only 1 org exists, this uses the is_default org to place a user in if not specified.
aeb29f2
to
8f61a71
Compare
@@ -1016,6 +1016,12 @@ func (q *querier) GetDERPMeshKey(ctx context.Context) (string, error) { | |||
return q.db.GetDERPMeshKey(ctx) | |||
} | |||
|
|||
func (q *querier) GetDefaultOrganization(ctx context.Context) (database.Organization, error) { | |||
return fetch(q.log, q.auth, func(ctx context.Context, _ any) (database.Organization, error) { |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
No need for auth here?
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
That does do auth! fetch
is the helper function that automatically checks the RBAC on the returned object. So if the caller cannot read the default org, this will fail.
Closes #11925
What this does
Instead of assuming only 1 org exists, this uses the
is_default
org to place a user in if not specified.