Skip to content

Commit a2d2241

Browse files
committed
added owner check
1 parent 0b8365a commit a2d2241

File tree

1 file changed

+52
-16
lines changed

1 file changed

+52
-16
lines changed

contracts/Attestation.sol

Lines changed: 52 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,42 @@
11
pragma solidity 0.4.19;
22

3-
contract Attestation {
3+
contract Ownable {
4+
address public owner;
5+
6+
7+
event OwnershipTransferred(address indexed previousOwner, address indexed newOwner);
8+
9+
/**
10+
* @dev The Ownable constructor sets the original `owner` of the contract to the sender
11+
* account.
12+
*/
13+
function Ownable() {
14+
owner = msg.sender;
15+
}
16+
17+
18+
/**
19+
* @dev Throws if called by any account other than the owner.
20+
*/
21+
modifier onlyOwner() {
22+
require(msg.sender == owner);
23+
_;
24+
}
25+
26+
27+
/**
28+
* @dev Allows the current owner to transfer control of the contract to a newOwner.
29+
* @param newOwner The address to transfer ownership to.
30+
*/
31+
function transferOwnership(address newOwner) onlyOwner public {
32+
require(newOwner != address(0));
33+
OwnershipTransferred(owner, newOwner);
34+
owner = newOwner;
35+
}
36+
37+
}
38+
39+
contract Attestation is Ownable {
440

541
enum Direction {Forwards, Backwards}
642

@@ -29,13 +65,13 @@ contract Attestation {
2965

3066
mapping (address => mapping(address => uint)) CompanyUsers;
3167

32-
modifier onlyCompanyOwner(address _company_address) {
33-
require(CompanyUsers[_company_address][msg.sender] == 1);
68+
modifier onlyCompanyOwner(address _company_address, address _company_owner) {
69+
require(CompanyUsers[_company_address][_company_owner] == 1);
3470
_;
3571
}
3672

37-
modifier onlyCompanyUser(address _company_address) {
38-
require(CompanyUsers[_company_address][msg.sender] != 0);
73+
modifier onlyCompanyUser(address _company_address,address _company_user) {
74+
require(CompanyUsers[_company_address][_company_user] != 0);
3975
_;
4076
}
4177

@@ -44,43 +80,43 @@ contract Attestation {
4480
_;
4581
}
4682

47-
function createUser(address _user_address,bytes32 _data) {
83+
function createUserByOwner(address _user_address,bytes32 _data) onlyOwner {
4884
require(!Users[_user_address].active);
4985
UserDetails storage userDetails = Users[_user_address];
5086
userDetails.active = true;
5187
userDetails.data = _data;
5288
}
5389

54-
function createCompany(bytes32 _data,address _company_address) {
90+
function createCompanyByOwner(bytes32 _data,address _company_address,address _company_owner) onlyOwner {
5591
require(!Company[_company_address].active);
5692
/* create company */
5793
CompanyDetails storage companyDetails = Company[_company_address];
5894
companyDetails.active = true;
59-
companyDetails.owner = msg.sender;
95+
companyDetails.owner = _company_owner;
6096
companyDetails.data = _data;
6197
/* setting owner */
62-
CompanyUsers[_company_address][msg.sender] = 1;
98+
CompanyUsers[_company_address][_company_owner] = 1;
6399
}
64100

65-
function editCompany(bytes32 _data,address _company_address) companyExist(_company_address) onlyCompanyOwner(_company_address) {
101+
function editCompany(bytes32 _data,address _company_address, address _company_owner) companyExist(_company_address) onlyCompanyOwner(_company_address,_company_owner) {
66102
CompanyDetails storage companyDetails = Company[_company_address];
67103
companyDetails.active = true;
68104
companyDetails.owner = msg.sender;
69105
companyDetails.data = _data;
70106
}
71107

72-
function attestByUser(address _company_address, bytes32 _connection_type, Direction _direction, uint256 _start, uint256 _end) companyExist(_company_address){
108+
function attestByUserByOwner(address _user_address,address _company_address, bytes32 _connection_type, Direction _direction, uint256 _start, uint256 _end) onlyOwner companyExist(_company_address){
73109
if(!Users[msg.sender].active)
74110
{
75-
createUser(msg.sender,bytes32(0));
111+
createUserByOwner(_user_address,bytes32(0));
76112
}
77113
upsertConnection(msg.sender,_company_address,_connection_type,_direction,_start,_end);
78114
}
79115

80-
function attestByCompany(address _user_address,address _company_address, bytes32 _connection_type, Direction _direction, uint256 _start, uint256 _end) companyExist(_company_address) onlyCompanyUser(_company_address) {
116+
function attestByCompanyByOwner(address _user_address,address _company_address,address _company_user,bytes32 _connection_type, Direction _direction, uint256 _start, uint256 _end) onlyOwner companyExist(_company_address) onlyCompanyUser(_company_address,_company_user) {
81117
if(!Users[_user_address].active)
82118
{
83-
createUser(_user_address,bytes32(0));
119+
createUserByOwner(_user_address,bytes32(0));
84120
}
85121
upsertConnection(_user_address,_company_address,_connection_type,_direction,_start,_end);
86122
}
@@ -94,13 +130,13 @@ contract Attestation {
94130
connection.direction = _direction;
95131
}
96132

97-
function changeCompanyOwner(address _company_address,address _new_owner_address) companyExist(_company_address) onlyCompanyOwner(_company_address) {
133+
function changeCompanyOwnerByOwner(address _company_address,address _company_owner,address _new_owner_address) onlyOwner companyExist(_company_address) onlyCompanyOwner(_company_address,_company_owner) {
98134
Company[_company_address].owner = _new_owner_address;
99135
delete CompanyUsers[_company_address][msg.sender];
100136
CompanyUsers[_company_address][_new_owner_address] = 1;
101137
}
102138

103-
function addCompanyUser(address _company_address,address _address) companyExist(_company_address) onlyCompanyOwner(_company_address) {
139+
function addCompanyUserByOwner(address _company_address,address _company_owner,address _address) onlyOwner companyExist(_company_address) onlyCompanyOwner(_company_address,_company_owner) {
104140
CompanyUsers[_company_address][_address] = 2;
105141
}
106142

0 commit comments

Comments
 (0)