parent
e931c1cbfc
commit
9bb2c958ec
@ -1,61 +0,0 @@ |
||||
pragma solidity ^0.4.8; |
||||
|
||||
import '../ownership/rbac/RBAC.sol'; |
||||
|
||||
|
||||
contract RBACExample is RBAC { |
||||
|
||||
modifier onlyOwnerOrAdvisor() |
||||
{ |
||||
require( |
||||
hasRole(msg.sender, "owner") || |
||||
hasRole(msg.sender, "advisor") |
||||
); |
||||
_; |
||||
} |
||||
|
||||
function RBACExample(address[] _advisors) |
||||
public |
||||
{ |
||||
addRole(msg.sender, "owner"); |
||||
addRole(msg.sender, "advisor"); |
||||
|
||||
for (uint256 i = 0; i < _advisors.length; i++) { |
||||
addRole(_advisors[i], "advisor"); |
||||
} |
||||
} |
||||
|
||||
function onlyOwnersCanDoThis() |
||||
onlyRole("owner") |
||||
view |
||||
external |
||||
{ |
||||
} |
||||
|
||||
function onlyAdvisorsCanDoThis() |
||||
onlyRole("advisor") |
||||
view |
||||
external |
||||
{ |
||||
} |
||||
|
||||
function eitherOwnerOrAdvisorCanDoThis() |
||||
onlyOwnerOrAdvisor |
||||
view |
||||
external |
||||
{ |
||||
} |
||||
|
||||
// owners can remove advisor's role |
||||
function removeAdvisor(address _addr) |
||||
onlyRole("owner") |
||||
public |
||||
{ |
||||
// revert if the user isn't an advisor |
||||
// (perhaps you want to soft-fail here instead?) |
||||
checkRole(_addr, "advisor"); |
||||
|
||||
// remove the advisor's role |
||||
removeRole(_addr, "advisor"); |
||||
} |
||||
} |
Loading…
Reference in new issue