Skip to content

Commit 68b8514

Browse files
Merge pull request #194 from menloresearch/feat/support-multiple-admin-emails
Support multiple admin emails of default organization
2 parents 8eeaf70 + 63f53a4 commit 68b8514

2 files changed

Lines changed: 32 additions & 20 deletions

File tree

apps/jan-api-gateway/application/app/domain/auth/auth_service.go

Lines changed: 31 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ package auth
22

33
import (
44
"context"
5+
"fmt"
56
"net/http"
67
"strings"
78
"time"
@@ -62,34 +63,45 @@ func (s *AuthService) InitOrganization(ctx context.Context) error {
6263
// set DEFAULT_ORGANIZATION
6364
organization.UpdateDefaultOrganization(orgEntity)
6465

65-
email := environment_variables.EnvironmentVariables.ORGANIZATION_ADMIN_EMAIL
66-
admin, err := s.userService.FindByEmail(ctx, email)
67-
if err != nil {
68-
return err
66+
emails := environment_variables.EnvironmentVariables.ORGANIZATION_ADMIN_EMAILS
67+
if len(emails) == 0 {
68+
return fmt.Errorf("no ORGANIZATION_ADMIN_EMAILS configured")
6969
}
70-
if admin == nil {
71-
admin, err = s.RegisterUser(ctx, &user.User{
72-
Name: "Admin",
73-
Email: email,
74-
IsGuest: false,
75-
Enabled: true,
70+
71+
for _, rawEmail := range emails {
72+
email := strings.TrimSpace(rawEmail)
73+
if email == "" {
74+
continue
75+
}
76+
77+
admin, err := s.userService.FindByEmail(ctx, email)
78+
if err != nil {
79+
return err
80+
}
81+
if admin == nil {
82+
admin, err = s.RegisterUser(ctx, &user.User{
83+
Name: "Admin",
84+
Email: email,
85+
IsGuest: false,
86+
Enabled: true,
87+
})
88+
if err != nil {
89+
return err
90+
}
91+
}
92+
93+
err = s.organizationService.AddMember(ctx, &organization.OrganizationMember{
94+
UserID: admin.ID,
95+
OrganizationID: orgEntity.ID,
96+
Role: organization.OrganizationMemberRoleOwner,
7697
})
7798
if err != nil {
7899
return err
79100
}
80101
}
81-
err = s.organizationService.AddMember(ctx, &organization.OrganizationMember{
82-
UserID: admin.ID,
83-
OrganizationID: orgEntity.ID,
84-
Role: organization.OrganizationMemberRoleOwner,
85-
})
86-
if err != nil {
87-
return err
88-
}
89102

90103
return nil
91104
}
92-
93105
func (s *AuthService) RegisterUser(ctx context.Context, user *user.User) (*user.User, error) {
94106
_, err := s.userService.RegisterUser(ctx, user)
95107
if err != nil {

apps/jan-api-gateway/application/config/environment_variables/env.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,7 @@ type EnvironmentVariable struct {
2828
SMTP_PASSWORD string
2929
SMTP_SENDER_EMAIL string
3030
INVITE_REDIRECT_URL string
31-
ORGANIZATION_ADMIN_EMAIL string
31+
ORGANIZATION_ADMIN_EMAILS []string
3232
// Redis configuration
3333
REDIS_URL string
3434
REDIS_PASSWORD string

0 commit comments

Comments
 (0)