diff --git a/aleksis/apps/matrix/forms.py b/aleksis/apps/matrix/forms.py index e194a7433b3c1674dcb72e140b0708c953f4ba21..4cf2f12a27bcd559efb6af7f8dc44f1f35c78009 100644 --- a/aleksis/apps/matrix/forms.py +++ b/aleksis/apps/matrix/forms.py @@ -1,17 +1,17 @@ from django.utils.translation import gettext as _ -from aleksis.apps.matrix.tasks import use_groups_in_matrix +from aleksis.apps.matrix.tasks import provision_groups_in_matrix from aleksis.core.forms import ActionForm -def use_in_matrix_action(modeladmin, request, queryset): - """Use selected groups in Matrix.""" - use_groups_in_matrix.delay(list(queryset.values_list("pk", flat=True))) +def provision_in_matrix_action(modeladmin, request, queryset): + """Provision selected groups in Matrix.""" + provision_groups_in_matrix.delay(list(queryset.values_list("pk", flat=True))) -use_in_matrix_action.short_description = _("Use in Matrix") +provision_in_matrix_action.short_description = _("Provision in Matrix") class GroupMatrixRoomActionForm(ActionForm): def get_actions(self): - return [use_in_matrix_action] + return [provision_in_matrix_action] diff --git a/aleksis/apps/matrix/migrations/0001_initial.py b/aleksis/apps/matrix/migrations/0001_initial.py index ba8190a05649f9e62ac6bccad1f268be6eac83d1..8d4865efc32d897c22c9d78ba1c1ed5c2fef43b1 100644 --- a/aleksis/apps/matrix/migrations/0001_initial.py +++ b/aleksis/apps/matrix/migrations/0001_initial.py @@ -31,7 +31,7 @@ class Migration(migrations.Migration): options={ 'verbose_name': 'Matrix room', 'verbose_name_plural': 'Matrix rooms', - 'permissions': (('use_group_in_matrix', 'Can use group in Matrix'),), + 'permissions': (('provision_group_in_matrix', 'Can provision group in Matrix'),), }, managers=[ ('objects', aleksis.core.managers.PolymorphicCurrentSiteManager()), diff --git a/aleksis/apps/matrix/model_extensions.py b/aleksis/apps/matrix/model_extensions.py index 04057970c013522d3fd33b7569479fe78e2b4476..4e0472b2a75acaea8486a95e10982815ef61619f 100644 --- a/aleksis/apps/matrix/model_extensions.py +++ b/aleksis/apps/matrix/model_extensions.py @@ -5,21 +5,21 @@ from django.utils.translation import gettext_lazy as _ from celery.result import AsyncResult from aleksis.apps.matrix.models import MatrixRoom -from aleksis.apps.matrix.tasks import use_group_in_matrix +from aleksis.apps.matrix.tasks import provision_group_in_matrix from aleksis.core.models import Group @Group.method -def use_in_matrix(self, sync: bool = False) -> Union[MatrixRoom, AsyncResult]: +def provision_in_matrix(self, sync: bool = False) -> Union[MatrixRoom, AsyncResult]: """Create and sync a room for this group in Matrix.""" if sync: - return self._use_in_matrix() + return self._provision_in_matrix() else: - return use_group_in_matrix.delay(self.pk) + return provision_group_in_matrix.delay(self.pk) @Group.method -def _use_in_matrix(self) -> MatrixRoom: +def _provision_in_matrix(self) -> MatrixRoom: """Create and sync a room for this group in Matrix.""" room = MatrixRoom.from_group(self) room.sync() diff --git a/aleksis/apps/matrix/models.py b/aleksis/apps/matrix/models.py index 444c643e4ce59eea86c088696114d6982d6baef1..4ab8df110397c418be57e9ff5bb602b4ceb7fa98 100644 --- a/aleksis/apps/matrix/models.py +++ b/aleksis/apps/matrix/models.py @@ -248,7 +248,7 @@ class MatrixRoom(ExtensiblePolymorphicModel): class Meta: verbose_name = _("Matrix room") verbose_name_plural = _("Matrix rooms") - permissions = (("use_group_in_matrix", "Can use group in Matrix"),) + permissions = (("provision_group_in_matrix", "Can provision group in Matrix"),) class MatrixSpace(MatrixRoom): @@ -321,7 +321,7 @@ class MatrixSpace(MatrixRoom): def ensure_children(self): """Ensure that all child rooms/spaces exist.""" for group in self.group.child_groups.all().prefetch_related("child_groups"): - group.use_in_matrix(sync=True) + group.provision_in_matrix(sync=True) if group.child_groups.all(): space = MatrixSpace.from_group(group) space.ensure_children() diff --git a/aleksis/apps/matrix/rules.py b/aleksis/apps/matrix/rules.py index 4628e35ad5a32880211163731d14459960336c81..7617732cf5af37f924c493b5f902ca2c572eb679 100644 --- a/aleksis/apps/matrix/rules.py +++ b/aleksis/apps/matrix/rules.py @@ -15,10 +15,10 @@ view_matrix_room_predicate = view_group_predicate & ( ) rules.add_perm("matrix.view_matrixroom_rule", view_matrix_room_predicate) -use_room_for_matrix_predicate = view_matrix_room_predicate & ( - has_global_perm("matrix.use_group_in_matrix") +provision_room_for_matrix_predicate = view_matrix_room_predicate & ( + has_global_perm("matrix.provision_group_in_matrix") ) -rules.add_perm("matrix.use_group_in_matrix_rule", use_room_for_matrix_predicate) +rules.add_perm("matrix.provision_group_in_matrix_rule", provision_room_for_matrix_predicate) show_menu_predicate = view_matrix_rooms_predicate rules.add_perm("matrix.show_menu_rule", show_menu_predicate) diff --git a/aleksis/apps/matrix/tasks.py b/aleksis/apps/matrix/tasks.py index 59be28ce689ca12c9fb9e3383c4511a1f2c39f46..c7346d8c5eb632fd7255e678cd5ca6aeb4c18075 100644 --- a/aleksis/apps/matrix/tasks.py +++ b/aleksis/apps/matrix/tasks.py @@ -13,15 +13,15 @@ def sync_room(pk: int): @app.task -def use_groups_in_matrix(pks: Sequence[int]): - """Use provided groups in Matrix.""" +def provision_groups_in_matrix(pks: Sequence[int]): + """Provision provided groups in Matrix.""" groups = Group.objects.filter(pk__in=pks) for group in groups: - group._use_in_matrix() + group._provision_in_matrix() @app.task -def use_group_in_matrix(pk: int): - """Use provided group in Matrix.""" +def provision_group_in_matrix(pk: int): + """Provision provided group in Matrix.""" group = Group.objects.get(pk=pk) - group._use_in_matrix() + group._provision_in_matrix() diff --git a/aleksis/apps/matrix/tests/test_matrix.py b/aleksis/apps/matrix/tests/test_matrix.py index cd05c507dbfba91d72e31441b5399b94bbe7b491..52f9a885760f99e26cad373039fee8bde2acc1a2 100644 --- a/aleksis/apps/matrix/tests/test_matrix.py +++ b/aleksis/apps/matrix/tests/test_matrix.py @@ -307,7 +307,7 @@ def test_use_room_sync(matrix_bot_user): g.members.add(p1) - r = g.use_in_matrix(sync=True) + r = g.provision_in_matrix(sync=True) assert isinstance(r, MatrixRoom) @@ -335,7 +335,7 @@ class MatrixCeleryTest(TransactionTestCase): g.members.add(p1) - r = g.use_in_matrix(sync=False) + r = g.provision_in_matrix(sync=False) assert isinstance(r, AsyncResult) time.sleep(3) @@ -352,7 +352,7 @@ def test_space_creation(matrix_bot_user): child_3 = Group.objects.create(name="Test Group 3") parent_group.child_groups.set([child_1, child_2, child_3]) - parent_group.use_in_matrix(sync=True) + parent_group.provision_in_matrix(sync=True) get_site_preferences()["matrix__use_spaces"] = True @@ -399,7 +399,7 @@ def test_space_creation_with_child_spaces(matrix_bot_user): child_3 = Group.objects.create(name="Test Group 3") parent_group.child_groups.set([child_1, child_2, child_3]) - parent_group.use_in_matrix(sync=True) + parent_group.provision_in_matrix(sync=True) get_site_preferences()["matrix__use_spaces"] = True diff --git a/aleksis/apps/matrix/views.py b/aleksis/apps/matrix/views.py index 8da912ade0bdd9852c580cff9e6feebc21202127..f3f9dd9beb7a00337874b19b11606c487890ab7c 100644 --- a/aleksis/apps/matrix/views.py +++ b/aleksis/apps/matrix/views.py @@ -34,6 +34,8 @@ class MatrixRoomListView(PermissionRequiredMixin, SingleTableMixin, FilterView): def post(self, request, *args, **kwargs): r = super().get(request, *args, **kwargs) - if self.action_form.is_valid() and request.user.has_perm("matrix.use_group_in_matrix_rule"): + if self.action_form.is_valid() and request.user.has_perm( + "matrix.provision_group_in_matrix_rule" + ): self.action_form.execute() return r