def __handle_valid(self, root, vote_file): code = root.split('/').pop() user_key = htscommon.get_user_key(code) fn = self._reg.path(user_key + [vote_file]) bdoc = bdocpythonutils.BDocContainer() bdoc.load(fn) profile = bdocpythonutils.ManifestProfile('TM') bdoc.validate(profile) haal = bdoc.documents["%s.evote" % self._elid] voter = htscommon.get_votefile_voter(vote_file) b64haal = base64.b64encode(haal).strip() self._log3.log_info(tyyp=3, haal_rasi=ksum.votehash(haal), jaoskond=voter['jaoskond'], jaoskond_omavalitsus=voter['jaoskond_omavalitsus'], ringkond=voter['ringkond'], ringkond_omavalitsus=voter['ringkond_omavalitsus'], isikukood=code) return [ voter['jaoskond_omavalitsus'], voter['jaoskond'], voter['ringkond_omavalitsus'], voter['ringkond'], b64haal ]
def __handle_valid(self, root, vote_file): code = root.split('/').pop() user_key = htscommon.get_user_key(code) fn = self._reg.path(user_key + [vote_file]) bdoc = bdocpythonutils.BDocContainer() bdoc.load(fn) profile = bdocpythonutils.ManifestProfile('TM') bdoc.validate(profile) haal = bdoc.documents["%s.evote" % self._elid] voter = htscommon.get_votefile_voter(vote_file) b64haal = base64.b64encode(haal).strip() self._log3.log_info( tyyp=3, haal_rasi=ksum.votehash(haal), jaoskond=voter['jaoskond'], jaoskond_omavalitsus=voter['jaoskond_omavalitsus'], ringkond=voter['ringkond'], ringkond_omavalitsus=voter['ringkond_omavalitsus'], isikukood=code) return [voter['jaoskond_omavalitsus'], voter['jaoskond'], voter['ringkond_omavalitsus'], voter['ringkond'], b64haal]
def __load_bdoc(self, elid): voter_key = htscommon.get_user_key(self._voter_code) sreg = Election().get_sub_reg(elid) for votefile in sreg.list_keys(voter_key): if htscommon.VALID_VOTE_PATTERN.match(votefile): bdoc = bdocpythonutils.BDocContainer() bdoc.load(sreg.path(voter_key + [votefile])) bdoc.validate(bdocpythonutils.ManifestProfile("TM")) self._voter = htscommon.get_votefile_voter(votefile) break if not bdoc: evlog.log_error("No valid BDOC found for voter %s using vote ID %s" % \ (self._voter, self._vote_id)) raise HTSVerifyException, evcommon.VERIFY_ERROR return bdoc
def tyhistusperioodi(self): pc_cache = {} vc = htscommon.VoteCounter() self._log1.cache(pc_cache, 'isikukood') jaoskonnad = {} jaoskonnad_rev = {} self.__load_jaoskonnad(jaoskonnad, jaoskonnad_rev) tic = ticker.Counter(\ 'Hääli:', '\tArvesse minevaid: %d\tKorduvaid: %d') tic.start('Koostan e-hääletanute nimekirja:') for path in os.walk(self._reg.path(['hts', 'votes'])): root = path[0] for vote_file in path[2]: if htscommon.VALID_VOTE_PATTERN.match(vote_file): code = root.split('/').pop() if not code in pc_cache: self._errmsg = \ "Serveri andmestruktuurid ei ole kooskõlalised" raise Exception(self._errmsg) voter = htscommon.get_votefile_voter(vote_file) voter['isikukood'] = code jaoskonnad_rev['%s\t%s\t%s\t%s' % (\ voter['jaoskond_omavalitsus'], \ voter['jaoskond'], voter['ringkond_omavalitsus'], \ voter['ringkond'])].append(voter) vc.inc_valid() elif htscommon.AUTOREVOKED_VOTE_PATTERN.match(vote_file): vc.inc_autorevoked() else: vc.inc_unknown() tic.tick(1, vc.valid(), vc.autorevoked()) tic.finish() valijaid1 = self.__write_masinloetav(jaoskonnad_rev) valijaid2 = self.__write_inimloetav(jaoskonnad) if not (valijaid1 == valijaid2): self._errmsg = 'Viga nimekirjade koostamisel' raise Exception(self._errmsg) return vc.valid() + vc.autorevoked(), vc.autorevoked(), valijaid1
def __tyhista_korduv_haal(self, code, haale_rasi): user_key = htscommon.get_user_key(code) if not self._reg.check(user_key): return flist = self._reg.list_keys(user_key) for elem in flist: if htscommon.VALID_VOTE_PATTERN.match(elem): rev_name = htscommon.change_votefile_name(\ elem, htscommon.BAUTOREVOKED) old_name = self._reg.path(user_key + [elem]) new_name = self._reg.path(user_key + [rev_name]) bdoc = bdocpythonutils.BDocContainer() bdoc.load(old_name) profile = bdocpythonutils.ManifestProfile('TM') bdoc.validate(profile) vote = bdoc.documents["%s.evote" % self._elid] voter = htscommon.get_votefile_voter(elem) vote_time = htscommon.get_votefile_time(elem) # logimine self._log2.log_info( tyyp=2, haal_rasi=ksum.votehash(vote), jaoskond=voter['jaoskond'], jaoskond_omavalitsus=voter['jaoskond_omavalitsus'], ringkond=voter['ringkond'], ringkond_omavalitsus=voter['ringkond_omavalitsus'], isikukood=code, pohjus='korduv e-hääl: ' + haale_rasi) self._revlog.log_info( tegevus='korduv e-hääl', isikukood=code, nimi=voter['nimi'], timestamp=vote_time, operaator='', pohjus=haale_rasi) os.rename(old_name, new_name)
def __tyhista_korduv_haal(self, code, haale_rasi): user_key = htscommon.get_user_key(code) if not self._reg.check(user_key): return flist = self._reg.list_keys(user_key) for elem in flist: if htscommon.VALID_VOTE_PATTERN.match(elem): rev_name = htscommon.change_votefile_name(\ elem, htscommon.BAUTOREVOKED) old_name = self._reg.path(user_key + [elem]) new_name = self._reg.path(user_key + [rev_name]) bdoc = bdocpythonutils.BDocContainer() bdoc.load(old_name) profile = bdocpythonutils.ManifestProfile('TM') bdoc.validate(profile) vote = bdoc.documents["%s.evote" % self._elid] voter = htscommon.get_votefile_voter(elem) vote_time = htscommon.get_votefile_time(elem) # logimine self._log2.log_info( tyyp=2, haal_rasi=ksum.votehash(vote), jaoskond=voter['jaoskond'], jaoskond_omavalitsus=voter['jaoskond_omavalitsus'], ringkond=voter['ringkond'], ringkond_omavalitsus=voter['ringkond_omavalitsus'], isikukood=code, pohjus='korduv e-hääl: ' + haale_rasi) self._revlog.log_info(tegevus='korduv e-hääl', isikukood=code, nimi=voter['nimi'], timestamp=vote_time, operaator='', pohjus=haale_rasi) os.rename(old_name, new_name)
def __handle_userrevoked(self, root, vote_file): code = root.split('/').pop() user_key = htscommon.get_user_key(code) fn = self._reg.path(user_key + [vote_file]) bdoc = bdocpythonutils.BDocContainer() bdoc.load(fn) profile = bdocpythonutils.ManifestProfile('TM') bdoc.validate(profile) haal = bdoc.documents["%s.evote" % self._elid] voter = htscommon.get_votefile_voter(vote_file) pohjus = self._reg.read_string_value(user_key, 'reason').value self._log2.log_info(tyyp=2, haal_rasi=ksum.votehash(haal), jaoskond=voter['jaoskond'], jaoskond_omavalitsus=voter['jaoskond_omavalitsus'], ringkond=voter['ringkond'], ringkond_omavalitsus=voter['ringkond_omavalitsus'], isikukood=code, pohjus=pohjus)
def __handle_userrevoked(self, root, vote_file): code = root.split('/').pop() user_key = htscommon.get_user_key(code) fn = self._reg.path(user_key + [vote_file]) bdoc = bdocpythonutils.BDocContainer() bdoc.load(fn) profile = bdocpythonutils.ManifestProfile('TM') bdoc.validate(profile) haal = bdoc.documents["%s.evote" % self._elid] voter = htscommon.get_votefile_voter(vote_file) pohjus = self._reg.read_string_value(user_key, 'reason').value self._log2.log_info( tyyp=2, haal_rasi=ksum.votehash(haal), jaoskond=voter['jaoskond'], jaoskond_omavalitsus=voter['jaoskond_omavalitsus'], ringkond=voter['ringkond'], ringkond_omavalitsus=voter['ringkond_omavalitsus'], isikukood=code, pohjus=pohjus)