typeorm-hasura 0.0.13 → 0.0.14
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
|
@@ -34,19 +34,20 @@ function generatePermissions(dataSourceOptions, table, { entityOptions, columnMe
|
|
|
34
34
|
role: key,
|
|
35
35
|
permission: {
|
|
36
36
|
columns: columnNames(columnMetadata, key, "update"),
|
|
37
|
-
filter: (0, whereClause_1.convertWhereClause)(table, where, update.where)
|
|
37
|
+
filter: (0, whereClause_1.convertWhereClause)(table, where, update.where),
|
|
38
|
+
check: (0, whereClause_1.convertWhereClause)(table, update.check),
|
|
39
|
+
set: update.set
|
|
38
40
|
}
|
|
39
41
|
});
|
|
40
42
|
}
|
|
41
43
|
if (insert) {
|
|
42
44
|
if (insert === true)
|
|
43
45
|
insert = {};
|
|
44
|
-
if (insert.where)
|
|
45
|
-
throw new Error("u can not select while inserting something");
|
|
46
46
|
result.insert_permissions.push({
|
|
47
47
|
role: key,
|
|
48
48
|
permission: {
|
|
49
49
|
columns: columnNames(columnMetadata, key, "insert"),
|
|
50
|
+
check: (0, whereClause_1.convertWhereClause)(table, insert.check)
|
|
50
51
|
}
|
|
51
52
|
});
|
|
52
53
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/mappers/permissions.ts"],"names":[],"mappings":";;;AAGA,+CAAkD;AAMlD,SAAgB,mBAAmB,CAC/B,iBAAoC,EACpC,KAA6B,EAC7B,EAAE,aAAa,EAAE,cAAc,EAA0C;IAGzE,MAAM,MAAM,GAAqB;QAC7B,kBAAkB,EAAE,EAAE;QACtB,kBAAkB,EAAE,EAAE;QACtB,kBAAkB,EAAE,EAAE;QACtB,kBAAkB,EAAE,EAAE;KACzB,CAAA;IACD,IAAI,CAAC,CAAA,aAAa,aAAb,aAAa,uBAAb,aAAa,CAAE,WAAW,CAAA;QAC3B,OAAO,MAAM,CAAC;IAElB,MAAM,EAAE,WAAW,EAAE,GAAG,aAAa,CAAA;IAErC,KAAK,IAAI,GAAG,IAAI,WAAW,EAAE;QACzB,MAAM,UAAU,GAAG,WAAW,CAAC,GAAG,CAAC,CAAA;QACnC,IAAI,EAAE,KAAK,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,QAAQ,EAAE,GAAG,UAAU,CAAA;QAEpE,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM,GAAG,EAAE,CAAA;YAChC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC3B,IAAI,EAAE,GAAG;gBACT,UAAU,EAAE;oBACR,OAAO,EAAE,WAAW,CAAC,cAAc,EAAE,GAAG,EAAE,QAAQ,CAAC;oBACnD,MAAM,EAAE,IAAA,gCAAkB,EAAS,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;oBAC9D,KAAK,EAAE,MAAM,CAAC,KAAK,IAAI,iBAAiB,CAAC,4BAA4B;iBACxE;aACJ,CAAC,CAAA;SACL;QACD,IAAI,MAAM,EAAE;YACR,IAAI,MAAM,KAAK,IAAI;gBAAE,MAAM,GAAG,EAAE,CAAA;YAChC,MAAM,CAAC,kBAAkB,CAAC,IAAI,CAAC;gBAC3B,IAAI,EAAE,GAAG;gBACT,UAAU,EAAE;oBACR,OAAO,EAAE,WAAW,CAAC,cAAc,EAAE,GAAG,EAAE,QAAQ,CAAC;oBACnD,MAAM,EAAE,IAAA,gCAAkB,EAAS,KAAK,EAAE,KAAK,EAAE,MAAM,CAAC,KAAK,CAAC;
|
|
1
|
+
{"version":3,"file":"permissions.js","sourceRoot":"","sources":["../../../src/mappers/permissions.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
import { ColumnMetadata } from "./Column";
|
|
2
2
|
import { UserActionType, UserRoleName } from "./base";
|
|
3
|
-
import { BasePermissionRule, SelectPermissionRule } from "./permissions";
|
|
3
|
+
import { BasePermissionRule, InsertPermissionRule, SelectPermissionRule, UpdatePermissionRule } from "./permissions";
|
|
4
4
|
import { Where } from "./whereClause";
|
|
5
5
|
export type EntityTarget = any;
|
|
6
6
|
export interface EntityRootField {
|
|
@@ -19,9 +19,11 @@ export type Permissions<Entity extends Object> = {
|
|
|
19
19
|
* append where clause to all actions
|
|
20
20
|
*/
|
|
21
21
|
where?: Where<Entity>;
|
|
22
|
+
insert?: InsertPermissionRule<Entity> | boolean;
|
|
22
23
|
select?: SelectPermissionRule<Entity> | boolean;
|
|
24
|
+
update?: UpdatePermissionRule<Entity> | boolean;
|
|
23
25
|
} & {
|
|
24
|
-
[action in Exclude<UserActionType, 'select'>]?: BasePermissionRule<Entity> | boolean;
|
|
26
|
+
[action in Exclude<UserActionType, 'select' | 'insert' | 'update'>]?: BasePermissionRule<Entity> | boolean;
|
|
25
27
|
};
|
|
26
28
|
};
|
|
27
29
|
export interface EntityOptions<Entity extends Object = Object> {
|
|
@@ -2,7 +2,11 @@ import { Where } from "./whereClause";
|
|
|
2
2
|
export interface BasePermissionRule<Entity extends Object> {
|
|
3
3
|
where?: Where<Entity>;
|
|
4
4
|
}
|
|
5
|
-
export interface
|
|
5
|
+
export interface InsertPermissionRule<Entity extends Object> {
|
|
6
|
+
check?: Where<Entity>;
|
|
7
|
+
}
|
|
8
|
+
export interface SelectPermissionRule<Entity extends Object> {
|
|
9
|
+
where?: Where<Entity>;
|
|
6
10
|
/**
|
|
7
11
|
* limit the number of rows returned by the query(select action only)
|
|
8
12
|
*/
|
|
@@ -12,3 +16,19 @@ export interface SelectPermissionRule<Entity extends Object> extends BasePermiss
|
|
|
12
16
|
*/
|
|
13
17
|
allowAggregations?: boolean;
|
|
14
18
|
}
|
|
19
|
+
export interface UpdatePermissionRule<Entity extends Object> {
|
|
20
|
+
/**
|
|
21
|
+
* Pre-update check condition
|
|
22
|
+
*/
|
|
23
|
+
where?: Where<Entity>;
|
|
24
|
+
/**
|
|
25
|
+
* Post-update check condition
|
|
26
|
+
*/
|
|
27
|
+
check?: Where<Entity>;
|
|
28
|
+
/**
|
|
29
|
+
* Column presets
|
|
30
|
+
*
|
|
31
|
+
* if its a plain property it will be set to the value, but in another case you cannot use the value of the property
|
|
32
|
+
*/
|
|
33
|
+
set?: Partial<Record<keyof Entity, unknown>>;
|
|
34
|
+
}
|