permissions.py 文件源码

python
阅读 48 收藏 0 点赞 0 评论 0

项目:zing 作者: evernote 项目源码 文件源码
def get_permissions_by_username(username, directory):
    pootle_path = directory.pootle_path
    path_parts = filter(None, pootle_path.split('/'))
    key = iri_to_uri('Permissions:%s' % username)
    permissions_cache = cache.get(key, {})

    if pootle_path not in permissions_cache:
        try:
            permissionset = PermissionSet.objects.filter(
                directory__in=directory.trail(),
                user__username=username).order_by('-directory__pootle_path')[0]
        except IndexError:
            permissionset = None

        if (len(path_parts) > 1 and path_parts[0] != 'projects' and
            (permissionset is None or
            len(filter(None, permissionset.directory.pootle_path.split('/'))) < 2)):
            # Active permission at language level or higher, check project
            # level permission
            try:
                project_path = '/projects/%s/' % path_parts[1]
                permissionset = PermissionSet.objects.get(
                    directory__pootle_path=project_path,
                    user__username=username)
            except PermissionSet.DoesNotExist:
                pass

        if permissionset:
            permissions_cache[pootle_path] = permissionset.to_dict()
        else:
            permissions_cache[pootle_path] = None

        cache.set(key, permissions_cache, settings.POOTLE_CACHE_TIMEOUT)

    return permissions_cache[pootle_path]
评论列表
文章目录


问题


面经


文章

微信
公众号

扫码关注公众号