1 |
c0aed2f5
|
Stanislav Král
|
class Subject:
|
2 |
5b57121e
|
Captain_Trojan
|
ATTR_MAP = {"C": "common_name", "ST": "state", "L": "locality", "CN": "common_name", "O": "organization",
|
3 |
|
|
"OU": "organization_unit", "emailAddress": "email_address"}
|
4 |
c0aed2f5
|
Stanislav Král
|
|
5 |
|
|
def __init__(self, common_name=None, country=None, locality=None, state=None, organization=None,
|
6 |
|
|
organization_unit=None, email_address=None):
|
7 |
|
|
self.common_name = common_name
|
8 |
|
|
self.country = country
|
9 |
|
|
self.locality = locality
|
10 |
|
|
self.state = state
|
11 |
|
|
self.organization = organization
|
12 |
|
|
self.organization_unit = organization_unit
|
13 |
|
|
self.email_address = email_address
|
14 |
5b57121e
|
Captain_Trojan
|
|
15 |
|
|
@staticmethod
|
16 |
|
|
def from_dict(d):
|
17 |
|
|
if not isinstance(d, dict):
|
18 |
|
|
return None
|
19 |
|
|
|
20 |
|
|
s = Subject()
|
21 |
|
|
for k, v in Subject.ATTR_MAP.items():
|
22 |
|
|
if k in d:
|
23 |
|
|
if not isinstance(d[k], str):
|
24 |
|
|
return None
|
25 |
|
|
s.__setattr__(v, d[k])
|
26 |
|
|
|
27 |
|
|
return s
|