Ejemplo n.º 1
0
  def testRaisesWhenApprovalIsNotFound(self):
    args = user_plugin.ApiGetUserClientApprovalArgs(client_id=self.client_id,
                                                    reason="blah")

    # TODO(user): throw some standard exception that can be converted to
    # HTTP 404 status code.
    with self.assertRaises(IOError):
      self.handler.Handle(args, token=self.token)
Ejemplo n.º 2
0
  def testRendersRequestedClientApproval(self):
    flow.GRRFlow.StartFlow(client_id=self.client_id,
                           flow_name="RequestClientApprovalFlow",
                           reason="blah",
                           subject_urn=self.client_id,
                           approver="approver",
                           email_cc_address="*****@*****.**",
                           token=self.token)
    args = user_plugin.ApiGetUserClientApprovalArgs(client_id=self.client_id,
                                                    reason="blah")
    result = self.handler.Handle(args, token=self.token)

    self.assertEqual(result.subject.urn, self.client_id)
    self.assertEqual(result.reason, "blah")
    self.assertEqual(result.is_valid, False)
    self.assertEqual(result.is_valid_message,
                     "Requires 2 approvers for access.")

    self.assertEqual(result.notified_users, ["approver"])
    self.assertEqual(result.email_cc_addresses, ["*****@*****.**"])

    # Every approval is self-approved by default.
    self.assertEqual(result.approvers, [self.token.username])
Ejemplo n.º 3
0
  def testIncludesApproversInResultWhenApprovalIsGranted(self):
    flow.GRRFlow.StartFlow(client_id=self.client_id,
                           flow_name="RequestClientApprovalFlow",
                           reason="blah",
                           subject_urn=self.client_id,
                           approver="approver",
                           token=self.token)

    approver_token = access_control.ACLToken(username="******")
    flow.GRRFlow.StartFlow(client_id=self.client_id,
                           flow_name="GrantClientApprovalFlow",
                           reason="blah",
                           delegate=self.token.username,
                           subject_urn=self.client_id,
                           token=approver_token)

    args = user_plugin.ApiGetUserClientApprovalArgs(client_id=self.client_id,
                                                    reason="blah")
    result = self.handler.Handle(args, token=self.token)

    self.assertTrue(result.is_valid)
    self.assertEqual(
        sorted(result.approvers),
        sorted([approver_token.username, self.token.username]))