-
Notifications
You must be signed in to change notification settings - Fork 21
Open
Description
smartsessions/contracts/core/SmartSessionBase.sol
Lines 201 to 250 in fe51221
| /** | |
| * @notice Disable specific action policies for a given permission and action ID | |
| * @param permissionId The unique identifier for the permission | |
| * @param actionId The specific action identifier | |
| */ | |
| function disableActionId( | |
| PermissionId permissionId, | |
| ActionId actionId | |
| ) | |
| public | |
| disableWithPermissionId(permissionId) | |
| { | |
| // Disable all action policies for the given action ID | |
| // No need to emit events here, as unlike with 7739contents and 1271 policies, | |
| // here disabling the actionId means all action policies are also disabled | |
| $actionPolicies.actionPolicies[actionId].policyList[permissionId].removeAll(msg.sender); | |
| // remove action Id from enabledActionIds | |
| $actionPolicies.enabledActionIds[permissionId].remove(msg.sender, ActionId.unwrap(actionId)); | |
| emit ISmartSession.ActionIdDisabled(permissionId, actionId, msg.sender); | |
| } | |
| /** | |
| * @notice Disable action id for a given permission and action ID | |
| * @param permissionId The unique identifier for the permission | |
| * @param actionId The specific action identifier | |
| * @param policies An array of policy addresses to be disabled | |
| */ | |
| function disableActionPolicies( | |
| PermissionId permissionId, | |
| ActionId actionId, | |
| address[] calldata policies | |
| ) | |
| public | |
| disableWithPermissionId(permissionId) | |
| { | |
| // Disable the specified action policies for the given action ID | |
| $actionPolicies.actionPolicies[actionId].disable({ | |
| policyType: PolicyType.ACTION, | |
| smartAccount: msg.sender, | |
| permissionId: permissionId, | |
| policies: policies | |
| }); | |
| // remove the actionId from the enabledActionIds if no policies are left | |
| if ($actionPolicies.actionPolicies[actionId].policyList[permissionId].length(msg.sender) == 0) { | |
| $actionPolicies.enabledActionIds[permissionId].remove(msg.sender, ActionId.unwrap(actionId)); | |
| emit ISmartSession.ActionIdDisabled(permissionId, actionId, msg.sender); | |
| } | |
| } |
Metadata
Metadata
Assignees
Labels
No labels