Exemple #1
0
async def add_continue(domain_id: str, ensure_owner_uid: int = None):
    ddoc = await get(domain_id)
    if 'pending' not in ddoc:
        raise error.DomainNotFoundError(domain_id)
    owner_uid = ddoc['owner_uid']
    if ensure_owner_uid != None and owner_uid != ensure_owner_uid:
        raise error.DomainNotFoundError(domain_id)
    try:
        await add_user_role(domain_id, owner_uid, builtin.ROLE_ROOT)
    except error.UserAlreadyDomainMemberError:
        pass
    coll = db.coll('domain')
    await coll.update_one({'_id': domain_id}, {'$unset': {'pending': ''}})
Exemple #2
0
 async def prepare(self):
     self.translate = locale.get_translate(
         options.default_locale)  # Default translate for errors.
     self.session = await self.update_session()
     self.domain_id = self.request.match_info.pop('domain_id',
                                                  builtin.DOMAIN_ID_SYSTEM)
     if 'uid' in self.session:
         uid = self.session['uid']
         self.user, self.domain, self.domain_user = await asyncio.gather(
             user.get_by_uid(uid), domain.get(self.domain_id),
             domain.get_user(self.domain_id, uid))
         if not self.user:
             raise error.UserNotFoundError(uid)
         if not self.domain_user:
             self.domain_user = {}
     else:
         self.user = builtin.USER_GUEST
         self.domain = await domain.get(self.domain_id)
         self.domain_user = builtin.DOMAIN_USER_GUEST
     if not self.domain:
         raise error.DomainNotFoundError(self.domain_id)
     self.view_lang = self.get_setting('view_lang')
     # TODO(iceboy): UnknownTimeZoneError
     self.timezone = pytz.timezone(self.get_setting('timezone'))
     self.translate = locale.get_translate(self.view_lang)
     self.datetime_span = functools.partial(_datetime_span,
                                            timezone=self.timezone)
     self.datetime_stamp = _datetime_stamp
     self.reverse_url = functools.partial(_reverse_url,
                                          domain_id=self.domain_id)
     self.build_path = functools.partial(_build_path,
                                         domain_id=self.domain_id,
                                         domain_name=self.domain['name'])
     if not self.has_priv(builtin.PRIV_VIEW_ALL_DOMAIN):
         self.check_perm(builtin.PERM_VIEW)
Exemple #3
0
async def get(domain_id: str, fields=None):
    for domain in builtin.DOMAINS:
        if domain['_id'] == domain_id:
            return domain
    coll = db.coll('domain')
    ddoc = await coll.find_one(domain_id, fields)
    if not ddoc:
        raise error.DomainNotFoundError(domain_id)
    return ddoc
Exemple #4
0
 async def prepare(self):
   self.session = await self.update_session()
   if self.session and 'uid' in self.session:
     self.user = await user.get_by_uid(self.session['uid']) or builtin.USER_GUEST
   else:
     self.user = builtin.USER_GUEST
   self.translate = locale.get_translate(self.get_setting('view_lang'))
   # TODO(iceboy): use user timezone.
   self.datetime_span = _get_datetime_span('Asia/Shanghai')
   self.domain_id = self.request.match_info.pop('domain_id', builtin.DOMAIN_ID_SYSTEM)
   self.reverse_url = functools.partial(_reverse_url, domain_id=self.domain_id)
   self.build_path = functools.partial(_build_path, domain_id=self.domain_id)
   self.domain = await domain.get(self.domain_id)
   if not self.domain:
     raise error.DomainNotFoundError(self.domain_id)
Exemple #5
0
 async def prepare(self):
     # TODO(iceboy): parallelize: (session -> user) | domain.
     self.session = await self.update_session()
     if self.session and 'uid' in self.session:
         self.user = await user.get_by_uid(self.session['uid']
                                           ) or builtin.USER_GUEST
     else:
         self.user = builtin.USER_GUEST
     # TODO(iceboy): use user timezone.
     self.locale_context = _get_locale_context(
         self.get_setting('view_lang'), 'Asia/Shanghai')
     self.domain_id = self.request.match_info.pop('domain_id',
                                                  builtin.DOMAIN_ID_SYSTEM)
     self.domain_context = self.get_domain_context(self.domain_id)
     self.reverse_url = self.domain_context['reverse_url']
     self.build_path = self.domain_context['build_path']
     self.domain = await domain.get(self.domain_id)
     if not self.domain:
         raise error.DomainNotFoundError(self.domain_id)