コード例 #1
0
ファイル: YGaleClient.py プロジェクト: nandub/yammer
 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()
コード例 #2
0
ファイル: GaleGateYammerPage.py プロジェクト: nandub/yammer
 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()
コード例 #3
0
ファイル: UserUtilities.py プロジェクト: nandub/yammer
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)
コード例 #4
0
ファイル: GaleGateYammerPage.py プロジェクト: nandub/yammer
 def hasPrivateKey(self):
   privateKey= self.getUsername()
   return KeyStore.havePrivateFor(privateKey)