6 # Credential is a tuple:
7 # (GIDCaller, GIDObject, LifeTime, Privileges, Delegate)
9 class Credential(Certificate):
19 def __init__(self, create=False, subject=None, string=None, filename=None):
20 Certificate.__init__(self, create, subject, string, filename)
22 def set_gid_caller(self, gid):
25 def get_gid_caller(self):
26 if not self.gidCaller:
30 def set_gid_object(self, gid):
33 def get_gid_object(self):
34 if not self.gidObject:
38 def set_lifetime(self, lifeTime):
39 self.lifeTime = lifeTime
41 def get_lifetime(self):
46 def set_delegate(self, delegate):
47 self.delegate = delegate
49 def get_delegate(self):
54 def set_privileges(self, privs):
55 if isinstance(privs, str):
56 self.privileges = RightList(string = privs)
58 self.privileges = privs
60 def get_privileges(self):
61 if not self.privileges:
63 return self.privileges
65 def can_perform(self, op_name):
66 rights = self.get_privileges()
69 return rights.can_perform(op_name)
72 dict = {"gidCaller": None,
74 "lifeTime": self.lifeTime,
76 "delegate": self.delegate}
78 dict["gidCaller"] = self.gidCaller.save_to_string()
80 dict["gidObject"] = self.gidObject.save_to_string()
82 dict["privileges"] = self.privileges.save_to_string()
83 str = xmlrpclib.dumps((dict,), allow_none=True)
87 data = self.get_data()
89 dict = xmlrpclib.loads(self.get_data())[0][0]
93 self.lifeTime = dict.get("lifeTime", None)
94 self.delegate = dict.get("delegate", None)
96 privStr = dict.get("privileges", None)
98 self.privileges = RightList(string = privStr)
100 self.privileges = None
102 gidCallerStr = dict.get("gidCaller", None)
104 self.gidCaller = GID(string=gidCallerStr)
106 self.gidCaller = None
108 gidObjectStr = dict.get("gidObject", None)
110 self.gidObject = GID(string=gidObjectStr)
112 self.gidObject = None
114 def verify_chain(self, trusted_certs = None):
115 # do the normal certificate verification stuff
116 if not Certificate.verify_chain(self, trusted_certs):
120 # make sure the parent delegated rights to the child
121 if not parent.delegate:
124 # XXX todo: make sure child rights are a subset of parent rights