def new(item, content): if (item != 'attachment'): raise WrongArgs("unknown item type") try: data = base64.b64decode(content) except: raise WrongArgs("base64 decoding failure") filename = Util.RandomStr(16) filepath = Store.path_from_id(filename) fp = None try_count = 16 # good luck! while (try_count > 0): while (try_count > 0): try: fp = open(filepath, "rb") # ... success? filename = Util.RandomStr(16) filepath = Store.path_from_id(filename) except: break try_count -= 1 # at least we can't open it... try: with open(filepath, "wb") as fp: fp.write(data) return filename except: # ... failed... filename = Util.RandomStr(16) filepath = Store.path_from_id(filename) try_count -= 1 raise ServerError("can't store content")
def __init__(self, user, fromip, _sessionid=None, _created=None, scopes=['auth']): self.username = user.name self.uid = UCache.UCache.SearchUser(self.username) if (_sessionid is None): self.sessionid = Util.RandomStr(SESSIONID_LEN) self.created = datetime.datetime.now() else: self.sessionid = _sessionid self.created = _created self.user = UserManager.UserManager.LoadUser(user.name) self._userinfo = None self.utmpent = -1 self._fromip = fromip self.scopes = scopes SessionManager.Insert(self) if (_sessionid is None): SessionManager.Record(self) else: SessionManager.Update(self)
def generate(self): return Util.RandomStr(Config.REFRESH_TOKEN_LEN)