diff --git a/contracts/access/manager/AccessManager.sol b/contracts/access/manager/AccessManager.sol index c1abf3ddd0c..8820ef4a06c 100644 --- a/contracts/access/manager/AccessManager.sol +++ b/contracts/access/manager/AccessManager.sol @@ -107,7 +107,7 @@ contract AccessManager is IAccessManager, AccessControlDefaultAdminRules { * @dev Returns true if the caller can invoke on a target the function identified by a function selector. * Entrypoint for {AccessManaged} contracts. */ - function canCall(address caller, address target, bytes4 selector) public view returns (bool) { + function canCall(address caller, address target, bytes4 selector) public view virtual returns (bool) { bytes32 allowedGroups = getFunctionAllowedGroups(target, selector); bytes32 callerGroups = getUserGroups(caller); return callerGroups & allowedGroups != 0; diff --git a/test/access/manager/AccessManaged.test.js b/test/access/manager/AccessManaged.test.js index 27234f0d566..fd09a3296df 100644 --- a/test/access/manager/AccessManaged.test.js +++ b/test/access/manager/AccessManaged.test.js @@ -38,7 +38,7 @@ contract('AccessManaged', function (accounts) { describe('restricted', function () { const selector = web3.eth.abi.encodeFunctionSignature('restrictedFunction()'); - it('allows if authority says true', async function () { + it('allows if authority returns true', async function () { const authority = await SimpleAuthority.new(); const managed = await AccessManaged.new(authority.address); await authority.setAllowed(user, managed.address, selector); @@ -46,7 +46,7 @@ contract('AccessManaged', function (accounts) { expectEvent(restricted, 'RestrictedRan'); }); - it('reverts if authority says false', async function () { + it('reverts if authority returns false', async function () { const authority = await SimpleAuthority.new(); const managed = await AccessManaged.new(authority.address); await expectRevert(managed.restrictedFunction({ from: user }), 'AccessManaged: authority rejected');