Пример #1
0
    def can_read(self, user, default_acl=None, acl_r=None, acl_w=None):
        default_acl = default_acl or main.DEFAULT_CONFIG['service']['default_permissions']
        acl_r = acl_r or self.acl_read or default_acl['read'] or []
        acl_w = acl_w or self.acl_write or default_acl['write'] or []

        if u'all' in acl_r or len(acl_r) == 0:
            return True
        elif user is not None and u'login' in acl_r:
            return True
        elif user is not None and (user.email() in acl_r or user.email() in acl_w):
            return True
        elif is_admin_user(user):
            return True
        else:
            return False
Пример #2
0
    def delete(self, user=None):
        if not is_admin_user(user):
            raise RuntimeError('Only admin can delete pages.')

        self.update_content('', self.revision, user=user, dont_create_rev=True, dont_defer=True)
        self._update_inlinks({}, {'relatedTo': [p[0] for p in self.paths[:-1]]})
        self.related_links = {}
        self.modifier = None
        self.updated_at = None
        self.revision = 0
        self.put()

        ndb.delete_multi(r.key for r in self.revisions)

        caching.del_titles()
Пример #3
0
    def can_write(self, user, default_acl=None, acl_r=None, acl_w=None):
        default_acl = default_acl or main.DEFAULT_CONFIG['service']['default_permissions']
        acl_w = acl_w or self.acl_write or default_acl['write'] or []

        if (not self.can_read(user, default_acl, acl_r, acl_w)) and (user is None or user.email() not in acl_w):
            return False
        elif 'all' in acl_w:
            return True
        elif (len(acl_w) == 0 or u'login' in acl_w) and user is not None:
            return True
        elif user is not None and user.email() in acl_w:
            return True
        elif is_admin_user(user):
            return True
        else:
            return False
Пример #4
0
    def delete(self, user=None):
        if not is_admin_user(user):
            raise RuntimeError('Only admin can delete pages.')

        self.update_content('',
                            self.revision,
                            user=user,
                            dont_create_rev=True,
                            dont_defer=True)
        self._update_inlinks({},
                             {'relatedTo': [p[0] for p in self.paths[:-1]]})
        self.related_links = {}
        self.modifier = None
        self.updated_at = None
        self.revision = 0
        self.put()

        ndb.delete_multi(r.key for r in self.revisions)

        caching.del_titles()
Пример #5
0
def current_user_is_admin():
    user = get_cur_user()
    return is_admin_user(user)
Пример #6
0
 def is_admin(self):
     return is_admin_user(self.get_cur_user())
Пример #7
0
def current_user_is_admin():
    user = get_cur_user()
    return is_admin_user(user)