Explorar o código

Merge pull request #2792 from porter-dev/default-add-support

don't add if porter.run project
jusrhee %!s(int64=3) %!d(string=hai) anos
pai
achega
fc708b28f0
Modificáronse 2 ficheiros con 12 adicións e 3 borrados
  1. 8 2
      api/server/handlers/project/invite_admin.go
  2. 4 1
      api/server/router/project.go

+ 8 - 2
api/server/handlers/project/invite_admin.go

@@ -1,7 +1,9 @@
 package project
 
 import (
+	"fmt"
 	"net/http"
+	"strings"
 
 	"github.com/porter-dev/porter/api/server/handlers"
 	"github.com/porter-dev/porter/api/server/shared"
@@ -30,22 +32,26 @@ func (p *ProjectInviteAdminHandler) ServeHTTP(w http.ResponseWriter, r *http.Req
 	InstanceEnvConf, _ := envloader.FromEnv()
 	adminUserId := InstanceEnvConf.ServerConf.AdminUserId
 	if adminUserId == 0 {
+		fmt.Println("Admin user not set")
 		return
 	}
 
 	request := &types.ProjectInviteAdminRequest{}
 	ok := p.DecodeAndValidate(w, r, request)
 	if !ok {
+		fmt.Println("Failed to decode and validate")
 		return
 	}
 
 	// Read the user and project from context
+	user, _ := r.Context().Value(types.UserScope).(*models.User)
 	proj, _ := r.Context().Value(types.ProjectScope).(*models.Project)
 
 	// Create role for admin if it doesn't exist
 	projectRepo := p.Repo().Project()
 	role, _ := projectRepo.ReadProjectRole(proj.ID, adminUserId)
-	if role == nil {
+	isPorterUser := strings.Contains(user.Email, "@porter.run")
+	if role == nil && !isPorterUser {
 		projectRepo.CreateProjectRole(proj, &models.Role{
 			Role: types.Role{
 				UserID:    adminUserId,
@@ -55,5 +61,5 @@ func (p *ProjectInviteAdminHandler) ServeHTTP(w http.ResponseWriter, r *http.Req
 		})
 	}
 
-	p.WriteResult(w, r, proj.ToProjectType())
+	p.WriteResult(w, r, user.ToUserType())
 }

+ 4 - 1
api/server/router/project.go

@@ -210,7 +210,10 @@ func getProjectRoutes(
 				Parent:       basePath,
 				RelativePath: relPath + "/invite_admin",
 			},
-			Scopes: []types.PermissionScope{types.ProjectScope},
+			Scopes: []types.PermissionScope{
+				types.UserScope,
+				types.ProjectScope,
+			},
 		},
 	)