Skip to content

The notices for the two functions are written in reverse #165

@johnson86tw

Description

@johnson86tw

/**
* @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

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions