@@ -36,15 +36,17 @@ type OrgController struct {
3636 rbacProvider shared.RBACProvider
3737 projectService shared.ProjectService
3838 invitationRepository shared.InvitationRepository
39+ configService shared.ConfigService
3940}
4041
41- func NewOrganizationController (repository shared.OrganizationRepository , orgService shared.OrgService , rbacProvider shared.RBACProvider , projectService shared.ProjectService , invitationRepository shared.InvitationRepository ) * OrgController {
42+ func NewOrganizationController (repository shared.OrganizationRepository , orgService shared.OrgService , rbacProvider shared.RBACProvider , projectService shared.ProjectService , invitationRepository shared.InvitationRepository , configService shared. ConfigService ) * OrgController {
4243 return & OrgController {
4344 organizationRepository : repository ,
4445 orgService : orgService ,
4546 rbacProvider : rbacProvider ,
4647 projectService : projectService ,
4748 invitationRepository : invitationRepository ,
49+ configService : configService ,
4850 }
4951}
5052
@@ -56,6 +58,15 @@ func NewOrganizationController(repository shared.OrganizationRepository, orgServ
5658// @Success 200 {object} models.Org
5759// @Router /organizations [post]
5860func (controller * OrgController ) Create (ctx shared.Context ) error {
61+ var settings shared.InstanceSettings
62+ err := controller .configService .GetJSONConfig (ctx .Request ().Context (), "instance_settings" , & settings )
63+ if err != nil {
64+ // if there is an error getting the instance settings, we assume that the instance settings do not exist and we allow the creation of the organization
65+ settings = shared.InstanceSettings {}
66+ }
67+ if settings .SingleOrganizationMode {
68+ return echo .NewHTTPError (400 , "creating organizations is not allowed in single organization mode" )
69+ }
5970
6071 var req dtos.OrgCreateRequest
6172 if err := ctx .Bind (& req ); err != nil {
@@ -71,7 +82,7 @@ func (controller *OrgController) Create(ctx shared.Context) error {
7182 return echo .NewHTTPError (400 , "slug is required" )
7283 }
7384
74- err : = controller .orgService .CreateOrganization (ctx , & organization )
85+ err = controller .orgService .CreateOrganization (ctx , & organization )
7586 if err != nil {
7687 return err
7788 }
0 commit comments