Merge branch 'develop' into BUDI-7393/use_permissions_on_middleware
This commit is contained in:
commit
111e999962
|
@ -1,5 +1,5 @@
|
|||
{
|
||||
"version": "2.9.33-alpha.12",
|
||||
"version": "2.9.33-alpha.13",
|
||||
"npmClient": "yarn",
|
||||
"packages": [
|
||||
"packages/*"
|
||||
|
|
|
@ -87,6 +87,7 @@ export const BUILTIN_PERMISSIONS = {
|
|||
new Permission(PermissionType.QUERY, PermissionLevel.WRITE),
|
||||
new Permission(PermissionType.TABLE, PermissionLevel.WRITE),
|
||||
new Permission(PermissionType.AUTOMATION, PermissionLevel.EXECUTE),
|
||||
new Permission(PermissionType.LEGACY_VIEW, PermissionLevel.READ),
|
||||
],
|
||||
},
|
||||
POWER: {
|
||||
|
@ -97,6 +98,7 @@ export const BUILTIN_PERMISSIONS = {
|
|||
new Permission(PermissionType.USER, PermissionLevel.READ),
|
||||
new Permission(PermissionType.AUTOMATION, PermissionLevel.EXECUTE),
|
||||
new Permission(PermissionType.WEBHOOK, PermissionLevel.READ),
|
||||
new Permission(PermissionType.LEGACY_VIEW, PermissionLevel.READ),
|
||||
],
|
||||
},
|
||||
ADMIN: {
|
||||
|
@ -108,6 +110,7 @@ export const BUILTIN_PERMISSIONS = {
|
|||
new Permission(PermissionType.AUTOMATION, PermissionLevel.ADMIN),
|
||||
new Permission(PermissionType.WEBHOOK, PermissionLevel.READ),
|
||||
new Permission(PermissionType.QUERY, PermissionLevel.ADMIN),
|
||||
new Permission(PermissionType.LEGACY_VIEW, PermissionLevel.READ),
|
||||
],
|
||||
},
|
||||
}
|
||||
|
|
|
@ -270,4 +270,21 @@ describe("/permission", () => {
|
|||
expect(publicPerm.name).toBeDefined()
|
||||
})
|
||||
})
|
||||
|
||||
describe("default permissions", () => {
|
||||
it("legacy views", async () => {
|
||||
const legacyView = await config.createLegacyView()
|
||||
|
||||
const res = await config.api.permission.get(legacyView.name)
|
||||
|
||||
expect(res.body).toEqual({
|
||||
permissions: {
|
||||
read: {
|
||||
permissionType: "BASE",
|
||||
role: "BASIC",
|
||||
},
|
||||
},
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
|
|
@ -673,7 +673,7 @@ describe("/rows", () => {
|
|||
})
|
||||
|
||||
it("should be able to run on a view", async () => {
|
||||
const view = await config.createView()
|
||||
const view = await config.createLegacyView()
|
||||
const row = await config.createRow()
|
||||
const rowUsage = await getRowUsage()
|
||||
const queryUsage = await getQueryUsage()
|
||||
|
|
|
@ -87,7 +87,7 @@ describe("/tables", () => {
|
|||
|
||||
it("updates all the row fields for a table when a schema key is renamed", async () => {
|
||||
const testTable = await config.createTable()
|
||||
await config.createView({
|
||||
await config.createLegacyView({
|
||||
name: "TestView",
|
||||
field: "Price",
|
||||
calculation: "stats",
|
||||
|
@ -254,7 +254,7 @@ describe("/tables", () => {
|
|||
}))
|
||||
|
||||
await config.api.viewV2.create({ tableId })
|
||||
await config.createView({ tableId, name: generator.guid() })
|
||||
await config.createLegacyView({ tableId, name: generator.guid() })
|
||||
|
||||
const res = await config.api.table.fetch()
|
||||
|
||||
|
|
|
@ -249,7 +249,7 @@ describe("/views", () => {
|
|||
})
|
||||
|
||||
it("returns only custom views", async () => {
|
||||
await config.createView({
|
||||
await config.createLegacyView({
|
||||
name: "TestView",
|
||||
field: "Price",
|
||||
calculation: "stats",
|
||||
|
@ -267,7 +267,7 @@ describe("/views", () => {
|
|||
|
||||
describe("query", () => {
|
||||
it("returns data for the created view", async () => {
|
||||
await config.createView({
|
||||
await config.createLegacyView({
|
||||
name: "TestView",
|
||||
field: "Price",
|
||||
calculation: "stats",
|
||||
|
@ -295,7 +295,7 @@ describe("/views", () => {
|
|||
})
|
||||
|
||||
it("returns data for the created view using a group by", async () => {
|
||||
await config.createView({
|
||||
await config.createLegacyView({
|
||||
calculation: "stats",
|
||||
name: "TestView",
|
||||
field: "Price",
|
||||
|
@ -331,7 +331,7 @@ describe("/views", () => {
|
|||
describe("destroy", () => {
|
||||
it("should be able to delete a view", async () => {
|
||||
const table = await config.createTable(priceTable())
|
||||
const view = await config.createView()
|
||||
const view = await config.createLegacyView()
|
||||
const res = await request
|
||||
.delete(`/api/views/${view.name}`)
|
||||
.set(config.defaultHeaders())
|
||||
|
@ -395,7 +395,7 @@ describe("/views", () => {
|
|||
|
||||
it("should be able to export a view as JSON", async () => {
|
||||
let table = await setupExport()
|
||||
const view = await config.createView()
|
||||
const view = await config.createLegacyView()
|
||||
table = await config.getTable(table._id)
|
||||
|
||||
let res = await exportView(view.name, "json")
|
||||
|
@ -407,7 +407,7 @@ describe("/views", () => {
|
|||
|
||||
it("should be able to export a view as CSV", async () => {
|
||||
let table = await setupExport()
|
||||
const view = await config.createView()
|
||||
const view = await config.createLegacyView()
|
||||
table = await config.getTable(table._id)
|
||||
|
||||
let res = await exportView(view.name, "csv")
|
||||
|
|
|
@ -296,7 +296,7 @@ describe.each([
|
|||
})
|
||||
|
||||
it("cannot update views v1", async () => {
|
||||
const viewV1 = await config.createView()
|
||||
const viewV1 = await config.createLegacyView()
|
||||
await config.api.viewV2.update(
|
||||
{
|
||||
...viewV1,
|
||||
|
|
|
@ -50,9 +50,9 @@ describe("migrations", () => {
|
|||
await config.createRole()
|
||||
await config.createRole()
|
||||
await config.createTable()
|
||||
await config.createView()
|
||||
await config.createLegacyView()
|
||||
await config.createTable()
|
||||
await config.createView(structures.view(config.table!._id!))
|
||||
await config.createLegacyView(structures.view(config.table!._id!))
|
||||
await config.createScreen()
|
||||
await config.createScreen()
|
||||
|
||||
|
|
|
@ -622,7 +622,7 @@ class TestConfiguration {
|
|||
|
||||
// VIEW
|
||||
|
||||
async createView(config?: any) {
|
||||
async createLegacyView(config?: any) {
|
||||
if (!this.table) {
|
||||
throw "Test requires table to be configured."
|
||||
}
|
||||
|
|
|
@ -23,6 +23,9 @@ export function getPermissionType(resourceId: string) {
|
|||
case DocumentType.QUERY:
|
||||
case DocumentType.DATASOURCE:
|
||||
return permissions.PermissionType.QUERY
|
||||
default:
|
||||
// legacy views don't have an ID, will end up here
|
||||
return permissions.PermissionType.LEGACY_VIEW
|
||||
}
|
||||
}
|
||||
|
||||
|
|
|
@ -16,6 +16,7 @@ export enum PermissionType {
|
|||
GLOBAL_BUILDER = "globalBuilder",
|
||||
QUERY = "query",
|
||||
VIEW = "view",
|
||||
LEGACY_VIEW = "legacy_view",
|
||||
}
|
||||
|
||||
export enum PermissionSource {
|
||||
|
|
Loading…
Reference in New Issue