mirror of git3://git3.w3q/git3-contract
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
29 lines
974 B
Solidity
29 lines
974 B
Solidity
2 years ago
|
pragma solidity ^0.8.0;
|
||
|
|
||
|
import "@openzeppelin/contracts/utils/structs/EnumerableSet.sol";
|
||
|
|
||
|
contract RepositoryAccess{
|
||
|
using EnumerableSet for EnumerableSet.AddressSet;
|
||
|
mapping(bytes => EnumerableSet.AddressSet) BranchOperators;
|
||
|
|
||
|
modifier onlyBranchOperator(bytes memory branch) {
|
||
|
require(BranchOperators[branch].contains(msg.sender),"only branch Operator");
|
||
|
_;
|
||
|
}
|
||
|
|
||
|
function _getBranchOwner(bytes memory branch) internal view returns(address){
|
||
|
return BranchOperators[branch].at(0) ;
|
||
|
}
|
||
|
|
||
|
function addBranchOperator(bytes memory branch, address member) external virtual{
|
||
|
require(_getBranchOwner(branch) == msg.sender,"only branch owner");
|
||
|
BranchOperators[branch].add(member);
|
||
|
}
|
||
|
|
||
|
function removeBranchOperator(bytes memory branch , address member) external virtual{
|
||
|
require(_getBranchOwner(branch) == msg.sender,"only branch owner");
|
||
|
BranchOperators[branch].remove(member);
|
||
|
}
|
||
|
|
||
|
}
|