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'
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'