Skip to content

Rename closed category/thread permission checks #1980

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
Merged
Show file tree
Hide file tree
Changes from 1 commit
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# `check_post_in_closed_category_permission_hook`
# `check_locked_category_permission_hook`

This hook wraps the standard function that Misago uses to check if the user has permission to post in a closed category. It raises Django's `PermissionDenied` with an error message if category is closed and they can't post in it.

Expand All @@ -8,14 +8,14 @@ This hook wraps the standard function that Misago uses to check if the user has
This hook can be imported from `misago.permissions.hooks`:

```python
from misago.permissions.hooks import check_post_in_closed_category_permission_hook
from misago.permissions.hooks import check_locked_category_permission_hook
```


## Filter

```python
def custom_check_post_in_closed_category_permission_filter(
def custom_check_locked_category_permission_filter(
action: CheckPostInClosedCategoryPermissionHookAction,
permissions: 'UserPermissionsProxy',
category: Category,
Expand Down Expand Up @@ -48,7 +48,7 @@ A category to check permissions for.
## Action

```python
def check_post_in_closed_category_permission_action(
def check_locked_category_permission_action(
permissions: 'UserPermissionsProxy', category: Category
) -> None:
...
Expand All @@ -75,10 +75,10 @@ The code below implements a custom filter function that permits a user to post i

```python
from misago.categories.models import Category
from misago.permissions.hooks import check_post_in_closed_category_permission_hook
from misago.permissions.hooks import check_locked_category_permission_hook
from misago.permissions.proxy import UserPermissionsProxy

@check_post_in_closed_category_permission_hook.append_filter
@check_locked_category_permission_hook.append_filter
def check_user_can_post_in_closed_category(
action,
permissions: UserPermissionsProxy,
Expand Down
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
# `check_post_in_closed_thread_permission_hook`
# `check_locked_thread_permission_hook`

This hook wraps the standard function that Misago uses to check if the user has permission to post in a closed thread. It raises Django's `PermissionDenied` with an error message if thread is closed and they can't post in it.

Expand All @@ -8,14 +8,14 @@ This hook wraps the standard function that Misago uses to check if the user has
This hook can be imported from `misago.permissions.hooks`:

```python
from misago.permissions.hooks import check_post_in_closed_thread_permission_hook
from misago.permissions.hooks import check_locked_thread_permission_hook
```


## Filter

```python
def custom_check_post_in_closed_thread_permission_filter(
def custom_check_locked_thread_permission_filter(
action: CheckPostInClosedThreadPermissionHookAction,
permissions: 'UserPermissionsProxy',
thread: Thread,
Expand Down Expand Up @@ -48,7 +48,7 @@ A thread to check permissions for.
## Action

```python
def check_post_in_closed_thread_permission_action(
def check_locked_thread_permission_action(
permissions: 'UserPermissionsProxy', thread: Thread
) -> None:
...
Expand All @@ -74,11 +74,11 @@ A thread to check permissions for.
The code below implements a custom filter function that permits a user to post in the specific thread if they have a custom flag set on their account.

```python
from misago.permissions.hooks import check_post_in_closed_thread_permission_hook
from misago.permissions.hooks import check_locked_thread_permission_hook
from misago.permissions.proxy import UserPermissionsProxy
from misago.threads.models import Thread

@check_post_in_closed_thread_permission_hook.append_filter
@check_locked_thread_permission_hook.append_filter
def check_user_can_post_in_closed_thread(
action,
permissions: UserPermissionsProxy,
Expand Down
4 changes: 2 additions & 2 deletions dev-docs/plugins/hooks/reference.md
Original file line number Diff line number Diff line change
Expand Up @@ -85,8 +85,8 @@ Hooks instances are importable from the following Python modules:
- [`check_edit_thread_poll_permission_hook`](./check-edit-thread-poll-permission-hook.md)
- [`check_edit_thread_post_permission_hook`](./check-edit-thread-post-permission-hook.md)
- [`check_open_thread_poll_permission_hook`](./check-open-thread-poll-permission-hook.md)
- [`check_post_in_closed_category_permission_hook`](./check-post-in-closed-category-permission-hook.md)
- [`check_post_in_closed_thread_permission_hook`](./check-post-in-closed-thread-permission-hook.md)
- [`check_locked_category_permission_hook`](./check-post-in-closed-category-permission-hook.md)
- [`check_locked_thread_permission_hook`](./check-post-in-closed-thread-permission-hook.md)
- [`check_private_threads_permission_hook`](./check-private-threads-permission-hook.md)
- [`check_reply_private_thread_permission_hook`](./check-reply-private-thread-permission-hook.md)
- [`check_reply_thread_permission_hook`](./check-reply-thread-permission-hook.md)
Expand Down
12 changes: 6 additions & 6 deletions misago/permissions/hooks/__init__.py
Original file line number Diff line number Diff line change
Expand Up @@ -28,11 +28,11 @@
from .check_edit_thread_poll_permission import check_edit_thread_poll_permission_hook
from .check_edit_thread_post_permission import check_edit_thread_post_permission_hook
from .check_open_thread_poll_permission import check_open_thread_poll_permission_hook
from .check_post_in_closed_category_permission import (
check_post_in_closed_category_permission_hook,
from .check_locked_category_permission import (
check_locked_category_permission_hook,
)
from .check_post_in_closed_thread_permission import (
check_post_in_closed_thread_permission_hook,
from .check_locked_thread_permission import (
check_locked_thread_permission_hook,
)
from .check_private_threads_permission import check_private_threads_permission_hook
from .check_reply_private_thread_permission import (
Expand Down Expand Up @@ -103,8 +103,8 @@
"check_edit_thread_poll_permission_hook",
"check_edit_thread_post_permission_hook",
"check_open_thread_poll_permission_hook",
"check_post_in_closed_category_permission_hook",
"check_post_in_closed_thread_permission_hook",
"check_locked_category_permission_hook",
"check_locked_thread_permission_hook",
"check_private_threads_permission_hook",
"check_reply_private_thread_permission_hook",
"check_reply_thread_permission_hook",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -80,10 +80,10 @@ class CheckPostInClosedCategoryPermissionHook(

```python
from misago.categories.models import Category
from misago.permissions.hooks import check_post_in_closed_category_permission_hook
from misago.permissions.hooks import check_locked_category_permission_hook
from misago.permissions.proxy import UserPermissionsProxy

@check_post_in_closed_category_permission_hook.append_filter
@check_locked_category_permission_hook.append_filter
def check_user_can_post_in_closed_category(
action,
permissions: UserPermissionsProxy,
Expand Down Expand Up @@ -116,6 +116,6 @@ def __call__(
return super().__call__(action, permissions, category)


check_post_in_closed_category_permission_hook = (
check_locked_category_permission_hook = (
CheckPostInClosedCategoryPermissionHook()
)
Original file line number Diff line number Diff line change
Expand Up @@ -79,11 +79,11 @@ class CheckPostInClosedThreadPermissionHook(
post in the specific thread if they have a custom flag set on their account.

```python
from misago.permissions.hooks import check_post_in_closed_thread_permission_hook
from misago.permissions.hooks import check_locked_thread_permission_hook
from misago.permissions.proxy import UserPermissionsProxy
from misago.threads.models import Thread

@check_post_in_closed_thread_permission_hook.append_filter
@check_locked_thread_permission_hook.append_filter
def check_user_can_post_in_closed_thread(
action,
permissions: UserPermissionsProxy,
Expand Down Expand Up @@ -116,4 +116,4 @@ def __call__(
return super().__call__(action, permissions, thread)


check_post_in_closed_thread_permission_hook = CheckPostInClosedThreadPermissionHook()
check_locked_thread_permission_hook = CheckPostInClosedThreadPermissionHook()
16 changes: 8 additions & 8 deletions misago/permissions/polls.py
Original file line number Diff line number Diff line change
Expand Up @@ -18,8 +18,8 @@
)
from .proxy import UserPermissionsProxy
from .threads import (
check_post_in_closed_category_permission,
check_post_in_closed_thread_permission,
check_locked_category_permission,
check_locked_thread_permission,
)


Expand Down Expand Up @@ -60,8 +60,8 @@ def _check_start_thread_poll_permission_action(
category: Category,
thread: Thread,
):
check_post_in_closed_category_permission(permissions, category)
check_post_in_closed_thread_permission(permissions, thread)
check_locked_category_permission(permissions, category)
check_locked_thread_permission(permissions, thread)

if thread.has_poll:
raise PermissionDenied(
Expand Down Expand Up @@ -97,8 +97,8 @@ def check_edit_thread_poll_permission(
def _check_edit_thread_poll_permission_action(
permissions: UserPermissionsProxy, category: Category, thread: Thread, poll: Poll
):
check_post_in_closed_category_permission(permissions, category)
check_post_in_closed_thread_permission(permissions, thread)
check_locked_category_permission(permissions, category)
check_locked_thread_permission(permissions, thread)

if permissions.is_category_moderator(thread.category_id):
return
Expand Down Expand Up @@ -194,8 +194,8 @@ def check_close_thread_poll_permission(
def _check_close_thread_poll_permission_action(
permissions: UserPermissionsProxy, category: Category, thread: Thread, poll: Poll
):
check_post_in_closed_category_permission(permissions, category)
check_post_in_closed_thread_permission(permissions, thread)
check_locked_category_permission(permissions, category)
check_locked_thread_permission(permissions, thread)

if permissions.is_category_moderator(thread.category_id):
return
Expand Down
44 changes: 22 additions & 22 deletions misago/permissions/tests/test_threads_permissions.py
Original file line number Diff line number Diff line change
Expand Up @@ -8,8 +8,8 @@
from ..threads import (
check_edit_thread_post_permission,
check_edit_thread_permission,
check_post_in_closed_category_permission,
check_post_in_closed_thread_permission,
check_locked_category_permission,
check_locked_thread_permission,
check_reply_thread_permission,
check_see_thread_post_permission,
check_see_thread_permission,
Expand Down Expand Up @@ -459,24 +459,24 @@ def test_check_edit_thread_permission_passes_for_category_moderator_if_out_of_ti
check_edit_thread_permission(permissions, default_category, thread)


def test_check_post_in_closed_category_permission_passes_if_category_is_open(
def test_check_locked_category_permission_passes_if_category_is_open(
user, cache_versions, default_category
):
permissions = UserPermissionsProxy(user, cache_versions)
check_post_in_closed_category_permission(permissions, default_category)
check_locked_category_permission(permissions, default_category)


def test_check_post_in_closed_category_permission_passes_if_user_is_global_moderator(
def test_check_locked_category_permission_passes_if_user_is_global_moderator(
moderator, cache_versions, default_category
):
default_category.is_closed = True
default_category.save()

permissions = UserPermissionsProxy(moderator, cache_versions)
check_post_in_closed_category_permission(permissions, default_category)
check_locked_category_permission(permissions, default_category)


def test_check_post_in_closed_category_permission_passes_if_user_is_category_moderator(
def test_check_locked_category_permission_passes_if_user_is_category_moderator(
user, cache_versions, default_category
):
default_category.is_closed = True
Expand All @@ -489,10 +489,10 @@ def test_check_post_in_closed_category_permission_passes_if_user_is_category_mod
)

permissions = UserPermissionsProxy(user, cache_versions)
check_post_in_closed_category_permission(permissions, default_category)
check_locked_category_permission(permissions, default_category)


def test_check_post_in_closed_category_permission_fails_if_user_is_not_moderator(
def test_check_locked_category_permission_fails_if_user_is_not_moderator(
user, cache_versions, default_category
):
default_category.is_closed = True
Expand All @@ -501,10 +501,10 @@ def test_check_post_in_closed_category_permission_fails_if_user_is_not_moderator
permissions = UserPermissionsProxy(user, cache_versions)

with pytest.raises(PermissionDenied):
check_post_in_closed_category_permission(permissions, default_category)
check_locked_category_permission(permissions, default_category)


def test_check_post_in_closed_category_permission_fails_if_user_is_anonymous(
def test_check_locked_category_permission_fails_if_user_is_anonymous(
anonymous_user, cache_versions, default_category
):
default_category.is_closed = True
Expand All @@ -513,27 +513,27 @@ def test_check_post_in_closed_category_permission_fails_if_user_is_anonymous(
permissions = UserPermissionsProxy(anonymous_user, cache_versions)

with pytest.raises(PermissionDenied):
check_post_in_closed_category_permission(permissions, default_category)
check_locked_category_permission(permissions, default_category)


def test_check_post_in_closed_thread_permission_passes_if_thread_is_open(
def test_check_locked_thread_permission_passes_if_thread_is_open(
user, cache_versions, thread
):
permissions = UserPermissionsProxy(user, cache_versions)
check_post_in_closed_thread_permission(permissions, thread)
check_locked_thread_permission(permissions, thread)


def test_check_post_in_closed_thread_permission_passes_if_user_is_global_moderator(
def test_check_locked_thread_permission_passes_if_user_is_global_moderator(
moderator, cache_versions, thread
):
thread.is_closed = True
thread.save()

permissions = UserPermissionsProxy(moderator, cache_versions)
check_post_in_closed_thread_permission(permissions, thread)
check_locked_thread_permission(permissions, thread)


def test_check_post_in_closed_thread_permission_passes_if_user_is_category_moderator(
def test_check_locked_thread_permission_passes_if_user_is_category_moderator(
user, cache_versions, thread
):
thread.is_closed = True
Expand All @@ -546,10 +546,10 @@ def test_check_post_in_closed_thread_permission_passes_if_user_is_category_moder
)

permissions = UserPermissionsProxy(user, cache_versions)
check_post_in_closed_thread_permission(permissions, thread)
check_locked_thread_permission(permissions, thread)


def test_check_post_in_closed_thread_permission_fails_if_user_is_not_moderator(
def test_check_locked_thread_permission_fails_if_user_is_not_moderator(
user, cache_versions, thread
):
thread.is_closed = True
Expand All @@ -558,10 +558,10 @@ def test_check_post_in_closed_thread_permission_fails_if_user_is_not_moderator(
permissions = UserPermissionsProxy(user, cache_versions)

with pytest.raises(PermissionDenied):
check_post_in_closed_thread_permission(permissions, thread)
check_locked_thread_permission(permissions, thread)


def test_check_post_in_closed_thread_permission_fails_if_user_is_anonymous(
def test_check_locked_thread_permission_fails_if_user_is_anonymous(
anonymous_user, cache_versions, thread
):
thread.is_closed = True
Expand All @@ -570,7 +570,7 @@ def test_check_post_in_closed_thread_permission_fails_if_user_is_anonymous(
permissions = UserPermissionsProxy(anonymous_user, cache_versions)

with pytest.raises(PermissionDenied):
check_post_in_closed_thread_permission(permissions, thread)
check_locked_thread_permission(permissions, thread)


def test_check_reply_thread_permission_passes_if_user_has_permission(
Expand Down
8 changes: 4 additions & 4 deletions misago/permissions/threads/__init__.py
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
from .checks import (
check_edit_thread_post_permission,
check_edit_thread_permission,
check_post_in_closed_category_permission,
check_post_in_closed_thread_permission,
check_locked_category_permission,
check_locked_thread_permission,
check_reply_thread_permission,
check_see_thread_permission,
check_see_thread_post_permission,
Expand All @@ -22,8 +22,8 @@
"can_upload_thread_attachments",
"check_edit_thread_post_permission",
"check_edit_thread_permission",
"check_post_in_closed_category_permission",
"check_post_in_closed_thread_permission",
"check_locked_category_permission",
"check_locked_thread_permission",
"check_reply_thread_permission",
"check_see_thread_permission",
"check_see_thread_post_permission",
Expand Down
Loading
Loading