MCPcopy Index your code
hub / github.com/codeaashu/claude-code / applyPermissionUpdate

Function applyPermissionUpdate

src/utils/permissions/PermissionUpdate.ts:55–188  ·  view source on GitHub ↗
(
  context: ToolPermissionContext,
  update: PermissionUpdate,
)

Source from the content-addressed store, hash-verified

53 * @returns The updated permission context
54 */
55export function applyPermissionUpdate(
56 context: ToolPermissionContext,
57 update: PermissionUpdate,
58): ToolPermissionContext {
59 switch (update.type) {
60 case 'setMode':
61 logForDebugging(
62 `Applying permission update: Setting mode to '${update.mode}'`,
63 )
64 return {
65 ...context,
66 mode: update.mode,
67 }
68
69 case 'addRules': {
70 const ruleStrings = update.rules.map(rule =>
71 permissionRuleValueToString(rule),
72 )
73 logForDebugging(
74 `Applying permission update: Adding ${update.rules.length} ${update.behavior} rule(s) to destination '${update.destination}': ${jsonStringify(ruleStrings)}`,
75 )
76
77 // Determine which collection to update based on behavior
78 const ruleKind =
79 update.behavior === 'allow'
80 ? 'alwaysAllowRules'
81 : update.behavior === 'deny'
82 ? 'alwaysDenyRules'
83 : 'alwaysAskRules'
84
85 return {
86 ...context,
87 [ruleKind]: {
88 ...context[ruleKind],
89 [update.destination]: [
90 ...(context[ruleKind][update.destination] || []),
91 ...ruleStrings,
92 ],
93 },
94 }
95 }
96
97 case 'replaceRules': {
98 const ruleStrings = update.rules.map(rule =>
99 permissionRuleValueToString(rule),
100 )
101 logForDebugging(
102 `Replacing all ${update.behavior} rules for destination '${update.destination}' with ${update.rules.length} rule(s): ${jsonStringify(ruleStrings)}`,
103 )
104
105 // Determine which collection to update based on behavior
106 const ruleKind =
107 update.behavior === 'allow'
108 ? 'alwaysAllowRules'
109 : update.behavior === 'deny'
110 ? 'alwaysDenyRules'
111 : 'alwaysAskRules'
112

Callers 15

callFunction · 0.85
RemoveWorkspaceDirectoryFunction · 0.85
PermissionRuleListFunction · 0.85
AddPermissionRulesFunction · 0.85
applyPermissionUpdatesFunction · 0.85
kickOutOfAutoIfNeededFunction · 0.85
deletePermissionRuleFunction · 0.85

Calls 6

logForDebuggingFunction · 0.85
jsonStringifyFunction · 0.85
deleteMethod · 0.65
setMethod · 0.45
hasMethod · 0.45

Tested by

no test coverage detected