def purge_otp(reg, otp): otp_key = htscommon.get_verification_key(otp) voter = reg.read_string_value(otp_key, "voter").value.rstrip() voter_key = htscommon.get_user_key(voter) elids = reg.read_string_value(otp_key, "elids").value.rstrip().split("\t") for elid in elids: sreg = Election().get_sub_reg(elid) if sreg.check(voter_key + [htscommon.VOTE_VERIFICATION_ID_FILENAME]): sreg.delete_value(voter_key, htscommon.VOTE_VERIFICATION_ID_FILENAME) reg.ensure_no_key(otp_key)
class Rights: def __init__(self, elid): self.reg = Election().get_sub_reg(elid, ['common', 'rights']) def descr(self, code): """ Tagastab tegelase kohta käiva kirjelduse """ if not formatutil.is_isikukood(code): raise Exception('Vigane isikukood') if self.reg.check([code, 'description']): return self.reg.read_string_value([code], 'description').value return 'Andmed puuduvad' def listall(self): """ Tagastab kõik volitused """ lst = self.reg.list_keys() ret = '' for ele in lst: ret += '\n' + self.listuser(ele) return ret.strip() def _create_user(self, code): """ Loome kasutaja, kui teda veel pole """ if not formatutil.is_isikukood(code): raise Exception('Vigane isikukood') self.reg.ensure_key([code, 'rights']) def add(self, code, right): """ Lisab uue volituse """ new_right = right.upper() if not _proper_right(new_right): raise Exception('Vigane volitus') self._create_user(code) if not self.has(code, new_right): self.reg.create_value([code, 'rights'], new_right, '') return True return False def adddesc(self, code, desc): """ Lisab kasutajale kirjelduse """ self._create_user(code) self.reg.create_value([code], 'description', desc) return True def remove(self, code, right): """ Võtab kasutajalt volituse """ if not formatutil.is_isikukood(code): raise Exception('Vigane isikukood') new_right = right.upper() if not _proper_right(new_right): raise Exception('Vigane volitus') if self.has(code, new_right): self.reg.delete_value([code, 'rights'], new_right) return True return False def remuser(self, code): """ Eemaldab ühe kasutaja volituste failist """ if not formatutil.is_isikukood(code): raise Exception('Vigane isikukood') return self.reg.ensure_no_key([code]) def remall(self): """ Eemaldab kõik volitused """ self.reg.reset_key(['']) return True def has(self, code, right): """ Kas koodil on vastav volitus """ if not formatutil.is_isikukood(code): raise Exception('Vigane isikukood') new_right = right.upper() if not _proper_right(new_right): raise Exception('Vigane volitus') if not self.reg.check([code, 'rights', new_right]): return False return True def listuser(self, code): """ Ainult konkreetse kasutaja õigused """ if not formatutil.is_isikukood(code): raise Exception('Vigane isikukood') ret = '' if self.reg.check([code]): ret += code + ' (%s)' % self.descr(code) sub_list = self.reg.list_keys([code, 'rights']) if len(sub_list) > 0: for _s in sub_list: ret += '\n\t' + G_DESCS[_s] else: ret += '\n\tVolitused puuduvad' return ret.strip()
class Rights: def __init__(self, elid): self.reg = Election().get_sub_reg(elid, ['common', 'rights']) def descr(self, code): """ Tagastab tegelase kohta käiva kirjelduse """ if not formatutil.is_isikukood(code): raise Exception('Vigane isikukood') if self.reg.check([code, 'description']): return self.reg.read_string_value([code], 'description').value else: return 'Andmed puuduvad' def listall(self): """ Tagastab kõik volitused """ lst = self.reg.list_keys() ret = '' for ele in lst: ret = ret + '\n' + self.listuser(ele) return ret.strip() def _create_user(self, code): """ Loome kasutaja, kui teda veel pole """ if not formatutil.is_isikukood(code): raise Exception('Vigane isikukood') self.reg.ensure_key([code, 'rights']) def add(self, code, right): """ Lisab uue volituse """ new_right = right.upper() if not _proper_right(new_right): raise Exception('Vigane volitus') self._create_user(code) if not self.has(code, new_right): self.reg.create_value([code, 'rights'], new_right, '') return True return False def adddesc(self, code, desc): """ Lisab kasutajale kirjelduse """ self._create_user(code) self.reg.create_value([code], 'description', desc) return True def remove(self, code, right): """ Võtab kasutajalt volituse """ if not formatutil.is_isikukood(code): raise Exception('Vigane isikukood') new_right = right.upper() if not _proper_right(new_right): raise Exception('Vigane volitus') if self.has(code, new_right): self.reg.delete_value([code, 'rights'], new_right) return True return False def remuser(self, code): """ Eemaldab ühe kasutaja volituste failist """ if not formatutil.is_isikukood(code): raise Exception('Vigane isikukood') return self.reg.ensure_no_key([code]) def remall(self): """ Eemaldab kõik volitused """ self.reg.reset_key(['']) return True def has(self, code, right): """ Kas koodil on vastav volitus """ if not formatutil.is_isikukood(code): raise Exception('Vigane isikukood') new_right = right.upper() if not _proper_right(new_right): raise Exception('Vigane volitus') if not self.reg.check([code, 'rights', new_right]): return False return True def listuser(self, code): """ Ainult konkreetse kasutaja õigused """ if not formatutil.is_isikukood(code): raise Exception('Vigane isikukood') ret = '' if self.reg.check([code]): ret = ret + code ret = ret + ' (' + self.descr(code) + ')' sub_list = self.reg.list_keys([code, 'rights']) if len(sub_list) > 0: for _s in sub_list: ret = ret + '\n\t' + G_DESCS[_s] else: ret = ret + '\n\tVolitused puuduvad' return ret.strip()