@@ -81,25 +81,32 @@ export const addRole = async (formData: FormData) => {
81
81
82
82
const name = formData . get ( "name" ) as string ;
83
83
const groups = formData . getAll ( "groups[]" ) as string [ ] ;
84
- // Prepare base payload
84
+
85
85
const payload : any = {
86
86
data : {
87
87
type : "roles" ,
88
88
attributes : {
89
89
name,
90
90
manage_users : formData . get ( "manage_users" ) === "true" ,
91
- manage_account : formData . get ( "manage_account" ) === "true" ,
92
- manage_billing : formData . get ( "manage_billing" ) === "true" ,
93
91
manage_providers : formData . get ( "manage_providers" ) === "true" ,
94
- manage_integrations : formData . get ( "manage_integrations" ) === "true" ,
95
92
manage_scans : formData . get ( "manage_scans" ) === "true" ,
93
+ // TODO: Add back when we have integrations ready
94
+ // manage_integrations: formData.get("manage_integrations") === "true",
96
95
unlimited_visibility : formData . get ( "unlimited_visibility" ) === "true" ,
97
96
} ,
98
97
relationships : { } ,
99
98
} ,
100
99
} ;
101
100
102
- // Add relationships only if there are items
101
+ // Conditionally include manage_account and manage_billing for cloud environment
102
+ if ( process . env . NEXT_PUBLIC_IS_CLOUD_ENV === "true" ) {
103
+ payload . data . attributes . manage_account =
104
+ formData . get ( "manage_account" ) === "true" ;
105
+ payload . data . attributes . manage_billing =
106
+ formData . get ( "manage_billing" ) === "true" ;
107
+ }
108
+
109
+ // Add provider groups relationships only if there are items
103
110
if ( groups . length > 0 ) {
104
111
payload . data . relationships . provider_groups = {
105
112
data : groups . map ( ( groupId : string ) => ( {
@@ -147,19 +154,27 @@ export const updateRole = async (formData: FormData, roleId: string) => {
147
154
type : "roles" ,
148
155
id : roleId ,
149
156
attributes : {
150
- ...( name && { name } ) ,
157
+ ...( name && { name } ) , // Include name only if provided
151
158
manage_users : formData . get ( "manage_users" ) === "true" ,
152
- manage_account : formData . get ( "manage_account" ) === "true" ,
153
- manage_billing : formData . get ( "manage_billing" ) === "true" ,
154
159
manage_providers : formData . get ( "manage_providers" ) === "true" ,
155
- manage_integrations : formData . get ( "manage_integrations" ) === "true" ,
156
160
manage_scans : formData . get ( "manage_scans" ) === "true" ,
161
+ // TODO: Add back when we have integrations ready
162
+ // manage_integrations: formData.get("manage_integrations") === "true",
157
163
unlimited_visibility : formData . get ( "unlimited_visibility" ) === "true" ,
158
164
} ,
159
165
relationships : { } ,
160
166
} ,
161
167
} ;
162
168
169
+ // Conditionally include manage_account and manage_billing for cloud environments
170
+ if ( process . env . NEXT_PUBLIC_IS_CLOUD_ENV === "true" ) {
171
+ payload . data . attributes . manage_account =
172
+ formData . get ( "manage_account" ) === "true" ;
173
+ payload . data . attributes . manage_billing =
174
+ formData . get ( "manage_billing" ) === "true" ;
175
+ }
176
+
177
+ // Add provider groups relationships only if there are items
163
178
if ( groups . length > 0 ) {
164
179
payload . data . relationships . provider_groups = {
165
180
data : groups . map ( ( groupId : string ) => ( {
@@ -182,6 +197,7 @@ export const updateRole = async (formData: FormData, roleId: string) => {
182
197
} ,
183
198
body,
184
199
} ) ;
200
+
185
201
const data = await response . json ( ) ;
186
202
revalidatePath ( "/roles" ) ;
187
203
return data ;
0 commit comments