diff --git a/contracts/mocks/RBACMock.sol b/contracts/mocks/RBACMock.sol index 7dfa2a985..fc8e93c9c 100644 --- a/contracts/mocks/RBACMock.sol +++ b/contracts/mocks/RBACMock.sol @@ -19,6 +19,8 @@ contract RBACMock is RBACWithAdmin { function RBACMock(address[] _advisors) public { + RBACWithAdmin.initialize(msg.sender); + addRole(msg.sender, ROLE_ADVISOR); for (uint256 i = 0; i < _advisors.length; i++) { diff --git a/contracts/ownership/rbac/RBACWithAdmin.sol b/contracts/ownership/rbac/RBACWithAdmin.sol index 90eb187a1..1f7b26a7b 100644 --- a/contracts/ownership/rbac/RBACWithAdmin.sol +++ b/contracts/ownership/rbac/RBACWithAdmin.sol @@ -1,7 +1,7 @@ pragma solidity ^0.4.21; import "./RBAC.sol"; - +import 'zos-lib/contracts/migrations/Migratable.sol'; /** * @title RBACWithAdmin @@ -9,7 +9,7 @@ import "./RBAC.sol"; * @dev It's recommended that you define constants in the contract, * @dev like ROLE_ADMIN below, to avoid typos. */ -contract RBACWithAdmin is RBAC { +contract RBACWithAdmin is RBAC, Migratable { /** * A constant role name for indicating admins. */ @@ -26,12 +26,13 @@ contract RBACWithAdmin is RBAC { } /** - * @dev constructor. Sets msg.sender as admin by default + * @dev constructor. Sets initialAdmin as admin. */ - function RBACWithAdmin() + function initialize(address initialAdmin) + isInitializer("RBACWithAdmin", "1.9.0-beta") public { - addRole(msg.sender, ROLE_ADMIN); + addRole(initialAdmin, ROLE_ADMIN); } /**