From 97cde49a51bffe4f684aabb207a1ddd1ef947966 Mon Sep 17 00:00:00 2001
From: Ralf King <rkg@mm-software.com>
Date: Sun, 3 Dec 2023 21:29:36 +0100
Subject: [PATCH 1/2]  Portfolio Access Control : Add a team group to project
 should only list projects that are not already added. #101

Signed-off-by: Ralf King <rkg@mm-software.com>
---
 src/shared/api.json                                          | 1 +
 .../accessmanagement/PortfolioAccessControl.vue              | 2 +-
 .../administration/accessmanagement/SelectProjectModal.vue   | 5 ++++-
 3 files changed, 6 insertions(+), 2 deletions(-)

diff --git a/src/shared/api.json b/src/shared/api.json
index 24478214f..1feee3a44 100644
--- a/src/shared/api.json
+++ b/src/shared/api.json
@@ -54,6 +54,7 @@
   "URL_LICENSE_GROUP": "api/v1/licenseGroup",
   "URL_ACL_MAPPING": "api/v1/acl/mapping",
   "URL_ACL_TEAM": "api/v1/acl/team",
+  "URL_ACL_NOTASSIGNEDPROJECTS": "api/v1/acl/notassignedprojects",
   "URL_VEX": "api/v1/vex",
   "URL_OSV_ECOSYSTEM": "api/v1/integration/osv/ecosystem"
 }
diff --git a/src/views/administration/accessmanagement/PortfolioAccessControl.vue b/src/views/administration/accessmanagement/PortfolioAccessControl.vue
index 26d2b0b32..318034bf3 100644
--- a/src/views/administration/accessmanagement/PortfolioAccessControl.vue
+++ b/src/views/administration/accessmanagement/PortfolioAccessControl.vue
@@ -86,7 +86,7 @@ export default {
                   </b-col>
                   <b-col sm="6">
                   </b-col>
-                  <select-project-modal v-on:selection="updateProjectSelection" />
+                  <select-project-modal v-on:selection="updateProjectSelection" :teamUuid="team.uuid" />
                 </b-row>
               `,
             mixins: [permissionsMixin],
diff --git a/src/views/administration/accessmanagement/SelectProjectModal.vue b/src/views/administration/accessmanagement/SelectProjectModal.vue
index e99b9ddca..dfe312cc4 100644
--- a/src/views/administration/accessmanagement/SelectProjectModal.vue
+++ b/src/views/administration/accessmanagement/SelectProjectModal.vue
@@ -27,6 +27,9 @@ export default {
   components: {
     cSwitch
   },
+  props: {
+    teamUuid: String
+  },
   data() {
     return {
       showInactiveProjects: false,
@@ -83,7 +86,7 @@ export default {
   },
   methods: {
     apiUrl: function () {
-      let url = `${this.$api.BASE_URL}/${this.$api.URL_PROJECT}`;
+      let url = `${this.$api.BASE_URL}/${this.$api.URL_ACL_NOTASSIGNEDPROJECTS}/${this.teamUuid}`;
       if (this.showInactiveProjects === undefined) {
         url += "?excludeInactive=true";
       } else {

From e42ed1bfabf6442a2d03cb0ade300e6815516d9e Mon Sep 17 00:00:00 2001
From: Ralf King <rkg@mm-software.com>
Date: Mon, 4 Dec 2023 02:03:33 +0100
Subject: [PATCH 2/2] reuse existing projects endpoint instead of creating a
 new one

Signed-off-by: Ralf King <rkg@mm-software.com>
---
 src/shared/api.json                                         | 1 -
 .../administration/accessmanagement/SelectProjectModal.vue  | 6 +++---
 2 files changed, 3 insertions(+), 4 deletions(-)

diff --git a/src/shared/api.json b/src/shared/api.json
index 1feee3a44..24478214f 100644
--- a/src/shared/api.json
+++ b/src/shared/api.json
@@ -54,7 +54,6 @@
   "URL_LICENSE_GROUP": "api/v1/licenseGroup",
   "URL_ACL_MAPPING": "api/v1/acl/mapping",
   "URL_ACL_TEAM": "api/v1/acl/team",
-  "URL_ACL_NOTASSIGNEDPROJECTS": "api/v1/acl/notassignedprojects",
   "URL_VEX": "api/v1/vex",
   "URL_OSV_ECOSYSTEM": "api/v1/integration/osv/ecosystem"
 }
diff --git a/src/views/administration/accessmanagement/SelectProjectModal.vue b/src/views/administration/accessmanagement/SelectProjectModal.vue
index dfe312cc4..f0e46884a 100644
--- a/src/views/administration/accessmanagement/SelectProjectModal.vue
+++ b/src/views/administration/accessmanagement/SelectProjectModal.vue
@@ -86,11 +86,11 @@ export default {
   },
   methods: {
     apiUrl: function () {
-      let url = `${this.$api.BASE_URL}/${this.$api.URL_ACL_NOTASSIGNEDPROJECTS}/${this.teamUuid}`;
+      let url = `${this.$api.BASE_URL}/${this.$api.URL_PROJECT}?notAssignedToTeamWithUuid=${this.teamUuid}`;
       if (this.showInactiveProjects === undefined) {
-        url += "?excludeInactive=true";
+        url += "&excludeInactive=true";
       } else {
-        url += "?excludeInactive=" + !this.showInactiveProjects;
+        url += "&excludeInactive=" + !this.showInactiveProjects;
       }
       return url;
     },