Fix update/create with empty perms list
All checks were successful
continuous-integration/drone/push Build is passing
All checks were successful
continuous-integration/drone/push Build is passing
This commit is contained in:
@@ -177,21 +177,18 @@ func (h *ApplicationHandler) UpdateApplication(ctx *gin.Context) {
|
||||
return
|
||||
}
|
||||
|
||||
// Update permissions if provided
|
||||
if len(request.Permissions) > 0 {
|
||||
// Get current permissions for removal
|
||||
currentPermIDs := make([]uint32, len(app.Permissions))
|
||||
for i, perm := range app.Permissions {
|
||||
currentPermIDs[i] = perm.ID
|
||||
}
|
||||
// Get current permissions for removal
|
||||
currentPermIDs := make([]uint32, len(app.Permissions))
|
||||
for i, perm := range app.Permissions {
|
||||
currentPermIDs[i] = perm.ID
|
||||
}
|
||||
|
||||
h.updateApplicationPermissions(ctx, app.ID, request.Permissions, currentPermIDs)
|
||||
h.updateApplicationPermissions(ctx, app.ID, request.Permissions, currentPermIDs)
|
||||
|
||||
// Refresh the application with updated permissions
|
||||
refreshedApp, err := h.Store.GetApplication(ctx, app.ID)
|
||||
if err == nil {
|
||||
app = refreshedApp
|
||||
}
|
||||
// Refresh the application with updated permissions
|
||||
refreshedApp, err := h.Store.GetApplication(ctx, app.ID)
|
||||
if err == nil {
|
||||
app = refreshedApp
|
||||
}
|
||||
|
||||
// If not regenerating api key scrub from response
|
||||
|
||||
@@ -27,8 +27,8 @@ interface ApplicationCardProps {
|
||||
|
||||
const ApplicationCard: React.FC<ApplicationCardProps> = ({ app, permissions }) => {
|
||||
const { handleMenuOpen, openEditDialog, regenerateApiKey } = useApplications();
|
||||
|
||||
const usedPermissionCount = app.permissions.length;
|
||||
const appPermissions = app.permissions || [];
|
||||
const usedPermissionCount = appPermissions.length;
|
||||
const totalAvailablePermissions = permissions.length;
|
||||
|
||||
return (
|
||||
@@ -70,13 +70,13 @@ const ApplicationCard: React.FC<ApplicationCardProps> = ({ app, permissions }) =
|
||||
</Typography>
|
||||
|
||||
<Box sx={{ display: 'flex', flexWrap: 'wrap', gap: 0.5, mt: 1 }}>
|
||||
{app.permissions.reduce((services: string[], permission: Permission) => {
|
||||
{appPermissions.reduce((services: string[], permission: Permission) => {
|
||||
if (!services.includes(permission.service)) {
|
||||
services.push(permission.service);
|
||||
}
|
||||
return services;
|
||||
}, []).map((service: string) => {
|
||||
const servicePermissions = app.permissions.filter(p => p.service === service);
|
||||
const servicePermissions = appPermissions.filter(p => p.service === service);
|
||||
return servicePermissions.length > 0 && (
|
||||
<Tooltip
|
||||
key={service}
|
||||
|
||||
@@ -40,7 +40,7 @@ const ApplicationsPage: React.FC<ApplicationsPageProps> = ({ permissions }) => {
|
||||
Your Applications
|
||||
</Typography>
|
||||
<Typography variant="body1" color="text.secondary">
|
||||
Create and manage your applications with customized permissions
|
||||
Create and manage your applications
|
||||
</Typography>
|
||||
</Box>
|
||||
|
||||
|
||||
@@ -135,6 +135,7 @@ export const ApplicationProvider: React.FC<ApplicationProviderProps> = ({ childr
|
||||
|
||||
const updateApplication = async (app: Application) => {
|
||||
try {
|
||||
console.log('Updating application:', app);
|
||||
const result = await applicationService.updateApplication(app.id, {
|
||||
name: app.name,
|
||||
description: app.description,
|
||||
|
||||
Reference in New Issue
Block a user