Skip to content

Commit d815756

Browse files
guguclaude
andcommitted
revert: remove backend cedar-policy-parser changes
Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
1 parent 63026b6 commit d815756

1 file changed

Lines changed: 8 additions & 40 deletions

File tree

backend/src/entities/cedar-authorization/cedar-policy-parser.ts

Lines changed: 8 additions & 40 deletions
Original file line numberDiff line numberDiff line change
@@ -7,7 +7,6 @@ import {
77

88
interface ParsedPermitStatement {
99
action: string | null;
10-
actions: string[] | null;
1110
resourceType: string | null;
1211
resourceId: string | null;
1312
isWildcard: boolean;
@@ -56,41 +55,21 @@ export function parseCedarPolicyToClassicalPermissions(
5655
case 'group:edit':
5756
result.group.accessLevel = AccessLevelEnum.edit;
5857
break;
59-
case 'table:*': {
60-
const wildcardTableName = permit.resourceId ? extractTableName(permit.resourceId, connectionId) : '*';
61-
if (!wildcardTableName) break;
62-
const wildcardTableEntry = getOrCreateTableEntry(tableMap, wildcardTableName);
63-
applyTableAction(wildcardTableEntry, 'table:read');
64-
applyTableAction(wildcardTableEntry, 'table:add');
65-
applyTableAction(wildcardTableEntry, 'table:edit');
66-
applyTableAction(wildcardTableEntry, 'table:delete');
67-
break;
68-
}
6958
case 'table:read':
7059
case 'table:add':
7160
case 'table:edit':
7261
case 'table:delete': {
73-
const tableName = permit.resourceId ? extractTableName(permit.resourceId, connectionId) : '*';
62+
const tableName = extractTableName(permit.resourceId, connectionId);
7463
if (!tableName) break;
7564
const tableEntry = getOrCreateTableEntry(tableMap, tableName);
7665
applyTableAction(tableEntry, permit.action);
7766
break;
7867
}
79-
case 'dashboard:*': {
80-
const wildcardDashboardId = permit.resourceId ? extractDashboardId(permit.resourceId, connectionId) : '*';
81-
if (!wildcardDashboardId) break;
82-
const wildcardDashboardEntry = getOrCreateDashboardEntry(dashboardMap, wildcardDashboardId);
83-
applyDashboardAction(wildcardDashboardEntry, 'dashboard:read');
84-
applyDashboardAction(wildcardDashboardEntry, 'dashboard:create');
85-
applyDashboardAction(wildcardDashboardEntry, 'dashboard:edit');
86-
applyDashboardAction(wildcardDashboardEntry, 'dashboard:delete');
87-
break;
88-
}
8968
case 'dashboard:read':
9069
case 'dashboard:create':
9170
case 'dashboard:edit':
9271
case 'dashboard:delete': {
93-
const dashboardId = permit.resourceId ? extractDashboardId(permit.resourceId, connectionId) : '*';
72+
const dashboardId = extractDashboardId(permit.resourceId, connectionId);
9473
if (!dashboardId) break;
9574
const dashboardEntry = getOrCreateDashboardEntry(dashboardMap, dashboardId);
9675
applyDashboardAction(dashboardEntry, permit.action);
@@ -161,39 +140,28 @@ function extractPermitStatements(policyText: string): ParsedPermitStatement[] {
161140
}
162141
}
163142

164-
return results.flatMap(expandActionIn);
165-
}
166-
167-
function expandActionIn(stmt: ParsedPermitStatement): ParsedPermitStatement[] {
168-
if (!stmt.actions || stmt.actions.length === 0) return [stmt];
169-
return stmt.actions.map((action) => ({ ...stmt, action, actions: null }));
143+
return results;
170144
}
171145

172146
function parsePermitBody(body: string): ParsedPermitStatement {
173147
const result: ParsedPermitStatement = {
174148
action: null,
175-
actions: null,
176149
resourceType: null,
177150
resourceId: null,
178151
isWildcard: false,
179152
};
180153

181-
const actionMatch = body.match(/action\s*(?:==|like)\s*RocketAdmin::Action::"([^"]+)"/);
154+
const actionMatch = body.match(/action\s*==\s*RocketAdmin::Action::"([^"]+)"/);
182155
if (actionMatch) {
183156
result.action = actionMatch[1];
184157
} else {
185-
const actionInMatch = body.match(/action\s+in\s*\[([^\]]+)\]/);
186-
if (actionInMatch) {
187-
result.actions = [...actionInMatch[1].matchAll(/RocketAdmin::Action::"([^"]+)"/g)].map((m) => m[1]);
188-
} else {
189-
const actionClause = body.match(/,\s*(action)\s*,/);
190-
if (actionClause) {
191-
result.isWildcard = true;
192-
}
158+
const actionClause = body.match(/,\s*(action)\s*,/);
159+
if (actionClause) {
160+
result.isWildcard = true;
193161
}
194162
}
195163

196-
const resourceMatch = body.match(/resource\s*(?:==|like)\s*(RocketAdmin::\w+)::"([^"]+)"/);
164+
const resourceMatch = body.match(/resource\s*==\s*(RocketAdmin::\w+)::"([^"]+)"/);
197165
if (resourceMatch) {
198166
result.resourceType = resourceMatch[1];
199167
result.resourceId = resourceMatch[2];

0 commit comments

Comments
 (0)