コード例 #1
0
def build_acl(acl, roles, key_name):
    acl.update({
        'can_see_unapproved_content_lists': False,
        'can_see_reported_content_lists': False,
        'can_omit_flood_protection': False,
        'can_approve_content': [],
        'can_see_reports': [],
    })

    acl = algebra.sum_acls(acl, roles=roles, key=key_name,
        can_see_unapproved_content_lists=algebra.greater,
        can_see_reported_content_lists=algebra.greater,
        can_omit_flood_protection=algebra.greater
    )

    categories_roles = get_categories_roles(roles)
    categories = list(Category.objects.all_categories(include_root=True))

    for category in categories:
        category_acl = acl['categories'].get(category.pk, {'can_browse': 0})
        if category_acl['can_browse']:
            category_acl = acl['categories'][category.pk] = build_category_acl(
                category_acl, category, categories_roles, key_name)

            if category_acl.get('can_approve_content'):
                acl['can_approve_content'].append(category.pk)
            if category_acl.get('can_see_reports'):
                acl['can_see_reports'].append(category.pk)

    return acl
コード例 #2
0
ファイル: threads.py プロジェクト: pylixm/Misago
def build_acl(acl, roles, key_name):
    acl['can_see_unapproved_content_lists'] = False
    acl['can_see_reported_content_lists'] = False
    acl['can_approve_content'] = []
    acl['can_see_reports'] = []

    acl = algebra.sum_acls(acl,
                           roles=roles,
                           key=key_name,
                           can_see_unapproved_content_lists=algebra.greater,
                           can_see_reported_content_lists=algebra.greater)

    categories_roles = get_categories_roles(roles)
    categories = list(Category.objects.all_categories(include_root=True))

    approve_in_categories = []

    for category in categories:
        category_acl = acl['categories'].get(category.pk, {'can_browse': 0})
        if category_acl['can_browse']:
            category_acl = acl['categories'][category.pk] = build_category_acl(
                category_acl, category, categories_roles, key_name)

            if category_acl.get('can_see_reports'):
                acl['can_see_reports'].append(category.pk)
            if category_acl.get('can_approve_content'):
                approve_in_categories.append(category)

    return acl
コード例 #3
0
ファイル: threads.py プロジェクト: Didan/Misago
def build_acl(acl, roles, key_name):
    acl['can_approve_content'] = []
    acl['can_pin_threads'] = []
    acl['can_close_threads'] = []
    acl['can_see_reports'] = []

    categories_roles = get_categories_roles(roles)
    categories = list(Category.objects.all_categories(include_root=True))

    approve_in_categories = []

    for category in categories:
        category_acl = acl['categories'].get(category.pk, {'can_browse': 0})
        if category_acl['can_browse']:
            acl['categories'][category.pk] = build_category_acl(
                category_acl, category, categories_roles, key_name)
            if acl['categories'][category.pk].get('can_pin_threads'):
                acl['can_pin_threads'].append(category.pk)
            if acl['categories'][category.pk].get('can_close_threads'):
                acl['can_close_threads'].append(category.pk)
            if acl['categories'][category.pk].get('can_see_reports'):
                acl['can_see_reports'].append(category.pk)

            if acl['categories'][category.pk].get('can_approve_content'):
                approve_in_categories.append(category)

    for category in categories:
        for sub in approve_in_categories:
            if category.has_child(sub) or category == sub:
                acl['can_approve_content'].append(category.pk)

    return acl
コード例 #4
0
ファイル: threads.py プロジェクト: h094071/Misago
def build_acl(acl, roles, key_name):
    acl['can_see_unapproved_content_lists'] = False
    acl['can_see_reported_content_lists'] = False
    acl['can_approve_content'] = []
    acl['can_see_reports'] = []

    acl = algebra.sum_acls(acl, roles=roles, key=key_name,
        can_see_unapproved_content_lists=algebra.greater,
        can_see_reported_content_lists=algebra.greater
    )

    categories_roles = get_categories_roles(roles)
    categories = list(Category.objects.all_categories(include_root=True))

    approve_in_categories = []

    for category in categories:
        category_acl = acl['categories'].get(category.pk, {'can_browse': 0})
        if category_acl['can_browse']:
            category_acl = acl['categories'][category.pk] = build_category_acl(
                category_acl, category, categories_roles, key_name)

            if category_acl.get('can_see_reports'):
                acl['can_see_reports'].append(category.pk)
            if category_acl.get('can_approve_content'):
                approve_in_categories.append(category)

    return acl
コード例 #5
0
ファイル: threads.py プロジェクト: fengrussell/Misago
def build_acl(acl, roles, key_name):
    acl['can_review_moderated_content'] = []
    acl['can_see_reports'] = []
    categories_roles = get_categories_roles(roles)

    for category in Category.objects.all_categories():
        category_acl = acl['categories'].get(category.pk, {'can_browse': 0})
        if category_acl['can_browse']:
            acl['categories'][category.pk] = build_category_acl(
                category_acl, category, categories_roles, key_name)
            if acl['categories'][category.pk]['can_review_moderated_content']:
                acl['can_review_moderated_content'].append(category.pk)
            if acl['categories'][category.pk]['can_see_reports']:
                acl['can_see_reports'].append(category.pk)
    return acl
コード例 #6
0
def build_acl(acl, roles, key_name):
    categories_roles = get_categories_roles(roles)
    categories = list(Category.objects.all_categories(include_root=True))

    for category in categories:
        category_acl = acl['categories'].get(category.pk, {'can_browse': 0})
        if category_acl['can_browse']:
            acl['categories'][category.pk] = build_category_acl(
                category_acl, category, categories_roles, key_name)

    private_category = Category.objects.private_threads()
    private_threads_acl = acl['categories'].get(private_category.pk)
    if private_threads_acl:
        private_threads_acl.update({
            'can_mark_best_answers': 0,
            'can_change_marked_answers': 0,
            'best_answer_change_time': 0,
        })

    return acl
コード例 #7
0
def build_acl(acl, roles, key_name):
    acl.update({
        'can_download_other_users_attachments': False,
        'max_attachment_size': 0,
        'can_delete_other_users_attachments': False,
        'can_see_unapproved_content_lists': False,
        'can_see_reported_content_lists': False,
        'can_approve_content': [],
        'can_see_reports': [],
    })

    acl = algebra.sum_acls(
        acl,
        roles=roles,
        key=key_name,
        can_download_other_users_attachments=algebra.greater,
        max_attachment_size=algebra.greater,
        can_delete_other_users_attachments=algebra.greater,
        can_see_unapproved_content_lists=algebra.greater,
        can_see_reported_content_lists=algebra.greater)

    categories_roles = get_categories_roles(roles)
    categories = list(Category.objects.all_categories(include_root=True))

    approve_in_categories = []

    for category in categories:
        category_acl = acl['categories'].get(category.pk, {'can_browse': 0})
        if category_acl['can_browse']:
            category_acl = acl['categories'][category.pk] = build_category_acl(
                category_acl, category, categories_roles, key_name)

            if category_acl.get('can_see_reports'):
                acl['can_see_reports'].append(category.pk)
            if category_acl.get('can_approve_content'):
                approve_in_categories.append(category)

    return acl