chore: move default everyone group to a migration (#12435)

This commit is contained in:
Steven Masley 2024-03-12 09:27:36 -05:00 committed by GitHub
parent f3083226ab
commit e11d3ca0ee
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 19 additions and 13 deletions

View File

@ -78,7 +78,7 @@ func New() database.Store {
},
}
// Always start with a default org. Matching migration 198.
_, err := q.InsertOrganization(context.Background(), database.InsertOrganizationParams{
defaultOrg, err := q.InsertOrganization(context.Background(), database.InsertOrganizationParams{
ID: uuid.New(),
Name: "first-organization",
Description: "Builtin default organization.",
@ -88,6 +88,12 @@ func New() database.Store {
if err != nil {
panic(xerrors.Errorf("failed to create default organization: %w", err))
}
_, err = q.InsertAllUsersGroup(context.Background(), defaultOrg.ID)
if err != nil {
panic(fmt.Errorf("failed to create default group: %w", err))
}
q.defaultProxyDisplayName = "Default"
q.defaultProxyIconURL = "/emojis/1f3e1.png"
return q

View File

@ -0,0 +1 @@
-- Nothing to do. If the group exists, this is ok.

View File

@ -0,0 +1,11 @@
-- This ensures a default everyone group exists for default org.
INSERT INTO
groups(name, id, organization_id)
SELECT
-- This is a special keyword that must be exactly this.
'Everyone',
-- Org ID and group ID must match.
(SELECT id FROM organizations WHERE is_default = true LIMIT 1),
(SELECT id FROM organizations WHERE is_default = true LIMIT 1)
-- It might already exist
ON CONFLICT DO NOTHING;

View File

@ -181,18 +181,6 @@ func (api *API) postFirstUser(rw http.ResponseWriter, r *http.Request) {
return
}
//nolint:gocritic // ensure everyone group
_, err = api.Database.InsertAllUsersGroup(dbauthz.AsSystemRestricted(ctx), defaultOrg.ID)
// A unique constraint violation just means the group already exists.
// This should not happen, but is ok if it does.
if err != nil && !database.IsUniqueViolation(err) {
httpapi.Write(ctx, rw, http.StatusInternalServerError, codersdk.Response{
Message: "Internal error creating all users group.",
Detail: err.Error(),
})
return
}
//nolint:gocritic // needed to create first user
user, organizationID, err := api.CreateUser(dbauthz.AsSystemRestricted(ctx), api.Database, CreateUserRequest{
CreateUserRequest: codersdk.CreateUserRequest{