Skip to content
Snippets Groups Projects
Commit 041f65d2 authored by Hangzhi Yu's avatar Hangzhi Yu
Browse files

Rename has_person_predicate predicate to has_predicate

Rename has_person_predicate predicate to has_predicate
parent e6206af4
No related branches found
No related tags found
1 merge request!207Resolve "Roles and permissions"
Pipeline #1589 failed
......@@ -2,7 +2,7 @@ from rules import add_perm, always_allow
from aleksis.core.models import Person, Group, Announcement
from aleksis.core.util.predicates import (
has_person_predicate,
has_person,
has_global_perm,
has_any_object,
is_current_person,
......@@ -13,82 +13,82 @@ from aleksis.core.util.predicates import (
add_perm("core", always_allow)
# View dashboard
add_perm("core.view_dashboard", has_person_predicate)
add_perm("core.view_dashboard", has_person)
# Use search
search_predicate = has_person_predicate & has_global_perm("core.search")
search_predicate = has_person & has_global_perm("core.search")
add_perm("core.search", search_predicate)
# View persons
view_persons_predicate = has_person_predicate & (
view_persons_predicate = has_person & (
has_global_perm("core.view_person") | has_any_object("core.view_person", Person)
)
add_perm("core.view_persons", view_persons_predicate)
# View person
view_person_predicate = has_person_predicate & (
view_person_predicate = has_person & (
has_global_perm("core.view_person") | has_object_perm("core.view_person") | is_current_person
)
add_perm("core.view_person", view_person_predicate)
# View person address
view_address_predicate = has_person_predicate & (
view_address_predicate = has_person & (
has_global_perm("core.view_address") | has_object_perm("core.view_address") | is_current_person
)
add_perm("core.view_address", view_address_predicate)
# View person contact details
view_contact_details_predicate = has_person_predicate & (
view_contact_details_predicate = has_person & (
has_global_perm("core.view_contact_details") | has_object_perm("core.view_contact_details") | is_current_person
)
add_perm("core.view_contact_details", view_contact_details_predicate)
# View person photo
view_photo_predicate = has_person_predicate & (
view_photo_predicate = has_person & (
has_global_perm("core.view_photo") | has_object_perm("core.view_photo") | is_current_person
)
add_perm("core.view_photo", view_photo_predicate)
# View persons groups
view_groups_predicate = has_person_predicate & (
view_groups_predicate = has_person & (
has_global_perm("core.view_person_groups") | has_object_perm("core.view_person_groups") | is_current_person
)
add_perm("core.view_person_groups", view_groups_predicate)
# Edit person
edit_person_predicate = has_person_predicate & (
edit_person_predicate = has_person & (
has_global_perm("core.change_person") | has_object_perm("core.change_person")
)
add_perm("core.edit_person", edit_person_predicate)
# Link persons with accounts
link_persons_accounts_predicate = has_person_predicate & has_global_perm("core.link_persons_accounts")
link_persons_accounts_predicate = has_person & has_global_perm("core.link_persons_accounts")
add_perm("core.link_persons_accounts", link_persons_accounts_predicate)
# View groups
view_groups_predicate = has_person_predicate & (
view_groups_predicate = has_person & (
has_global_perm("core.view_group") | has_any_object("core.view_group", Group)
)
add_perm("core.view_groups", view_groups_predicate)
# View group
view_group_predicate = has_person_predicate & (
view_group_predicate = has_person & (
has_global_perm("core.view_group") | has_object_perm("core.view_group")
)
add_perm("core.view_group", view_group_predicate)
# Edit group
edit_group_predicate = has_person_predicate & (
edit_group_predicate = has_person & (
has_global_perm("core.change_group") | has_object_perm("core.change_group")
)
add_perm("core.edit_group", edit_group_predicate)
# Edit school information
edit_school_information_predicate = has_person_predicate & has_global_perm("core.change_school")
edit_school_information_predicate = has_person & has_global_perm("core.change_school")
add_perm("core.edit_school_information", edit_school_information_predicate)
# Edit school term
edit_schoolterm_predicate = has_person_predicate & has_global_perm("core.change_schoolterm")
edit_schoolterm_predicate = has_person & has_global_perm("core.change_schoolterm")
add_perm("core.edit_schoolterm", edit_schoolterm_predicate)
# Manage school
......@@ -96,38 +96,38 @@ manage_school_predicate = edit_school_information_predicate | edit_schoolterm_pr
add_perm("core.manage_school", manage_school_predicate)
# Manage data
manage_data_predicate = has_person_predicate & has_global_perm("core.manage_data")
manage_data_predicate = has_person & has_global_perm("core.manage_data")
add_perm("core.manage_data", manage_data_predicate)
# View announcements
view_announcements_predicate = has_person_predicate & (
view_announcements_predicate = has_person & (
has_global_perm("core.view_announcement") | has_any_object("core.view_announcement", Announcement)
)
add_perm("core.view_announcements", view_announcements_predicate)
# Create or edit announcement
create_or_edit_announcement_predicate = has_person_predicate & (
create_or_edit_announcement_predicate = has_person & (
has_global_perm("core.add_announcement") & (has_global_perm("core.change_announcement") | has_object_perm("core.change_announcement"))
)
add_perm("core.create_or_edit_announcement", create_or_edit_announcement_predicate)
# Delete announcement
delete_announcement_predicate = has_person_predicate & (
delete_announcement_predicate = has_person & (
has_global_perm("core.delete_announcement") | has_object_perm("core.delete_announcement")
)
add_perm("core.delete_announcement", delete_announcement_predicate)
# Use impersonate
impersonate_predicate = has_person_predicate & has_global_perm("core.impersonate")
impersonate_predicate = has_person & has_global_perm("core.impersonate")
add_perm("core.impersonate", impersonate_predicate)
# View system status
view_system_status_predicate = has_person_predicate & has_global_perm("core.view_system_status")
view_system_status_predicate = has_person & has_global_perm("core.view_system_status")
add_perm("core.view_system_status", view_system_status_predicate)
# View people menu (persons + objects)
add_perm("core.view_people_menu", has_person_predicate & (view_persons_predicate | view_groups_predicate))
add_perm("core.view_people_menu", has_person & (view_persons_predicate | view_groups_predicate))
# View admin menu
view_admin_menu_predicate = has_person_predicate & (manage_data_predicate | manage_school_predicate | impersonate_predicate | view_system_status_predicate | view_announcements_predicate)
view_admin_menu_predicate = has_person & (manage_data_predicate | manage_school_predicate | impersonate_predicate | view_system_status_predicate | view_announcements_predicate)
add_perm("core.view_admin_menu", view_admin_menu_predicate)
......@@ -6,7 +6,7 @@ from guardian.backends import ObjectPermissionBackend
from guardian.shortcuts import get_objects_for_user
from rules import predicate
from aleksis.core.util.core_helpers import has_person
from aleksis.core.util.core_helpers import has_person as has_person_helper
# 1. Global permissions (view all, add, change all, delete all)
# 2. Object permissions (view, change, delete)
......@@ -73,10 +73,10 @@ def has_any_object(perm: str, klass):
@predicate
def has_person_predicate(user: User) -> bool:
def has_person(user: User) -> bool:
""" Predicate which checks whether a user has a linked person """
return has_person(user)
return has_person_helper(user)
@predicate
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment