def test_group_request(session, users, groups, http_client, base_url):  # noqa: F811
    user = users["*****@*****.**"]
    group = groups["sad-team"]

    # Request to join

    fe_url = url(base_url, "/groups/{}/join".format(group.groupname))
    resp = yield http_client.fetch(
        fe_url,
        method="POST",
        headers={"X-Grouper-User": user.username},
        body=urlencode({"reason": "Test Request", "member": "User: [email protected]"}),
    )
    assert resp.code == 200

    request = Request.get(session, requester_id=user.id, requesting_id=group.id)
    assert request.status == "pending"

    # Approve request

    fe_url = url(base_url, "/groups/{}/requests/{}".format(group.groupname, request.id))
    resp = yield http_client.fetch(
        fe_url,
        method="POST",
        headers={"X-Grouper-User": "******"},
        body=urlencode({"reason": "Test Request", "status": "actioned"}),
    )
    assert resp.code == 200

    request = Request.get(session, requester_id=user.id, requesting_id=group.id)
    assert request.status == "actioned"
def test_group_request(session, users, groups, http_client, base_url):
    user = users['*****@*****.**']
    group = groups['sad-team']

    # Request to join

    fe_url = url(base_url, '/groups/{}/join'.format(group.groupname))
    resp = yield http_client.fetch(
        fe_url,
        method='POST',
        headers={'X-Grouper-User': user.username},
        body=urlencode({'reason': 'Test Request', 'member': 'User: [email protected]'}),
    )
    assert resp.code == 200

    request = Request.get(session, requester_id=user.id, requesting_id=group.id)
    assert request.status == 'pending'

    # Approve request

    fe_url = url(base_url, '/groups/{}/requests/{}'.format(group.groupname, request.id))
    resp = yield http_client.fetch(
        fe_url,
        method='POST',
        headers={'X-Grouper-User': '******'},
        body=urlencode({'reason': 'Test Request', 'status': 'actioned'}),
    )
    assert resp.code == 200

    request = Request.get(session, requester_id=user.id, requesting_id=group.id)
    assert request.status == 'actioned'
Exemple #3
0
    def cancel_user_request(self, user_request, reason, authorization):
        # type: (UserGroupRequest, str, Authorization) -> None
        now = datetime.utcnow()
        request = Request.get(self.session, id=user_request.id)
        if not request:
            raise UserGroupRequestNotFoundException(request)
        actor = User.get(self.session, name=authorization.actor)
        if not actor:
            raise UserNotFoundException(authorization.actor)

        request_status_change = RequestStatusChange(
            request=request,
            user_id=actor.id,
            from_status=request.status,
            to_status="cancelled",
            change_at=now,
        ).add(self.session)

        request.status = "cancelled"
        self.session.flush()

        Comment(
            obj_type=OBJ_TYPES["RequestStatusChange"],
            obj_pk=request_status_change.id,
            user_id=actor.id,
            comment=reason,
            created_on=now,
        ).add(self.session)
Exemple #4
0
    def cancel_user_request(self, user_request, reason, authorization):
        # type: (UserGroupRequest, str, Authorization) -> None
        now = datetime.utcnow()
        request = Request.get(self.session, id=user_request.id)
        if not request:
            raise UserGroupRequestNotFoundException(request)
        actor = User.get(self.session, name=authorization.actor)
        if not actor:
            raise UserNotFoundException(authorization.actor)

        request_status_change = RequestStatusChange(
            request=request,
            user_id=actor.id,
            from_status=request.status,
            to_status="cancelled",
            change_at=now,
        ).add(self.session)

        request.status = "cancelled"
        self.session.flush()

        Comment(
            obj_type=OBJ_TYPES["RequestStatusChange"],
            obj_pk=request_status_change.id,
            user_id=actor.id,
            comment=reason,
            created_on=now,
        ).add(self.session)
def test_group_request(session, users, groups, http_client, base_url):
    user = users['*****@*****.**']
    group = groups['sad-team']

    # Request to join

    fe_url = url(base_url, '/groups/{}/join'.format(group.groupname))
    resp = yield http_client.fetch(
        fe_url,
        method='POST',
        headers={'X-Grouper-User': user.username},
        body=urlencode({
            'reason': 'Test Request',
            'member': 'User: [email protected]'
        }),
    )
    assert resp.code == 200

    request = Request.get(session,
                          requester_id=user.id,
                          requesting_id=group.id)
    assert request.status == 'pending'

    # Approve request

    fe_url = url(base_url,
                 '/groups/{}/requests/{}'.format(group.groupname, request.id))
    resp = yield http_client.fetch(
        fe_url,
        method='POST',
        headers={'X-Grouper-User': '******'},
        body=urlencode({
            'reason': 'Test Request',
            'status': 'actioned'
        }),
    )
    assert resp.code == 200

    request = Request.get(session,
                          requester_id=user.id,
                          requesting_id=group.id)
    assert request.status == 'actioned'