def gsend(self, signer, to, message, RETURN_RECEIPT=0): to_locs= [x for x in to if x[0] != '/'] to_kwds= [x for x in to if x[0] == '/'] if len(to_locs) == 0: return to_locs= map(pygale.expand_aliases, to_locs) ret= lookup_all_locations(to_locs) (send_locs, bad_locs, encr_recps)= ([], [], []) for (loc, recps) in ret: if recps is None: bad_locs.append(loc) else: send_locs.append(loc) for r in recps: if isinstance(r, str): encr_recps.append(r) else: encr_recps.append(r.name()) if bad_locs: raise ValueError, 'Unable to resolve location: ' \ + string.join(bad_locs) + '.' if '' in encr_recps: # no point encrypting if we're also sending plaintext encr_recps= [] else: if not signer in encr_recps: encr_recps.append(signer) to_locs.append(signer) puff= Puff() puff.set_loc(string.join(to_locs)) u= UserPrefs.getInstance(signer) sender= u['gale.sender'] if sender == '': sender= KeyStore.getFullname(signer) puff.set_text('message/sender', sender) puff.set_time('id/time', int(time.time())) puff.set_text('id/class', '%s/%s' % (settings['product'], YammerUtils.getVersionString())) puff.set_text('id/instance', getinstance()) if RETURN_RECEIPT: puff.set_text('question.receipt', signer) for kwd in to_kwds: puff.set_text('message.keyword', kwd[1:]) if len(message) > 0 and not message.endswith('\n'): message += '\n' puff.set_text('message/body', message) ret= puff.sign_message(signer) if ret is not None: # danger puff= ret if encr_recps: ret= puff.encrypt_message(encr_recps) if ret is not None: # danger puff= ret self.connect() self.transmit_puff(puff) self.disconnect()
def actionGenerate(self, trans): req= self._request fullname= '' if req.hasField('fullname'): fullname= req.field('fullname') self.gkgenMessage= KeyStore.gkgen(self.getGaleId(), fullname) if self.gkgenMessage is not None: self.redirectToAuthRoot() else: self.writeHTML()
def deleteUser(user): makeSureNotLdap() curs= YDB.getCursor() YDB.executeQuery(curs, 'DELETE FROM user_t ' + 'WHERE login = %(user)s', locals()) YDB.executeQuery(curs, 'DELETE FROM userprefs_t ' + 'WHERE login = %(user)s', locals()) galeid= user path= KeyStore.privPath(galeid) if path is not None: os.unlink(path) YDB.close(curs)
def hasPrivateKey(self): privateKey= self.getUsername() return KeyStore.havePrivateFor(privateKey)