diff --git a/proxy/src/mocks/applications/permissions.ts b/proxy/src/mocks/applications/permissions.ts index 131bc8a8..0b8aaf91 100644 --- a/proxy/src/mocks/applications/permissions.ts +++ b/proxy/src/mocks/applications/permissions.ts @@ -1,4 +1,4 @@ -import { apps, settings, users } from "@/api"; +import { apps, settings, users, groups } from "@/api"; import { ALL_USERS_GROUP_ID } from "@/constants"; import { mocker } from "@/mocker"; import { @@ -20,6 +20,7 @@ type Permission = { async function createPermissions(app: Application): Promise { const result: Permission[] = []; + const allGroups = await groups.list(); if (app.allUsers) { result.push({ permissionId: `${ALL_USERS_GROUP_ID}|GROUP`, @@ -31,13 +32,13 @@ async function createPermissions(app: Application): Promise { }); } await Promise.all( - app.groups.map(async (g) => { - const { id, name } = typeof g === "string" ? { id: g, name: g } : g; + app.groups.map(async (id) => { + const group = allGroups.data?.find((g) => g.id === id); result.push({ permissionId: `${id}|GROUP`, type: "GROUP", id, - name, + name: group?.name || id, role: "viewer", }); }), diff --git a/server/apis/application.go b/server/apis/application.go index 611f9839..7e23b87e 100644 --- a/server/apis/application.go +++ b/server/apis/application.go @@ -41,8 +41,8 @@ func (api *applicationApi) list(c echo.Context) error { if info.Admin == nil { groups, err := api.dao.FindRecordsByFilter( - "_pb_groups_col_", - "users ?= \""+info.AuthRecord.Id+"\"", + "groups", + "users.id ?= \""+info.AuthRecord.Id+"\"", "-created", 500, 0, @@ -101,8 +101,8 @@ func (api *applicationApi) view(c echo.Context) error { if info.Admin == nil { if info.AuthRecord != nil { groups, err := api.dao.FindRecordsByFilter( - "_pb_groups_col_", - "users ?= \""+info.AuthRecord.Id+"\"", + "groups", + "users.id ?= \""+info.AuthRecord.Id+"\"", "-created", 500, 0, diff --git a/server/forms/application_upsert.go b/server/forms/application_upsert.go index 4d9fa14d..16dc971e 100644 --- a/server/forms/application_upsert.go +++ b/server/forms/application_upsert.go @@ -120,14 +120,22 @@ func (form *ApplicationUpsert) Submit() (*models.Application, error) { form.application.SetId(form.Id) } + var groupsStr, usersStr string + if len(form.Groups) > 0 { + groupsStr = "\"" + strings.Join(form.Groups, "\",\"") + "\"" + } + if len(form.Users) > 0 { + usersStr = "\"" + strings.Join(form.Users, "\",\"") + "\"" + } + form.application.Id = form.Id form.application.Name = form.Name form.application.Type = form.Type form.application.Status = form.Status form.application.Public = form.Public form.application.AllUsers = form.AllUsers - form.application.RawGroups = "[" + strings.Join(form.Groups, ",") + "]" - form.application.RawUsers = "[" + strings.Join(form.Users, ",") + "]" + form.application.RawGroups = "[" + groupsStr + "]" + form.application.RawUsers = "[" + usersStr + "]" form.application.AppDsl = form.AppDsl form.application.EditDsl = form.EditDsl