示例#1
0
    def RequestClientApproval(self,
                              client_id,
                              reason=None,
                              requestor=None,
                              email_cc_address=None,
                              approver=u"approver"):
        """Create an approval request to be sent to approver."""
        if hasattr(client_id, "Basename"):
            client_id = client_id.Basename()

        if not requestor:
            requestor = self.token.username

        if not reason:
            reason = self.token.reason

        self.CreateUser(requestor)
        self.CreateUser(approver)

        args = api_user.ApiCreateClientApprovalArgs(
            client_id=client_id,
            approval=api_user.ApiClientApproval(
                reason=reason,
                notified_users=[approver],
                email_cc_addresses=([email_cc_address]
                                    if email_cc_address else [])))
        handler = api_user.ApiCreateClientApprovalHandler()
        result = handler.Handle(
            args, token=access_control.ACLToken(username=requestor))

        return result.id
示例#2
0
    def RequestClientApproval(self,
                              client_id,
                              reason=None,
                              requestor=None,
                              email_cc_address=None,
                              approver=u"approver"):
        """Create an approval request to be sent to approver."""
        if not requestor:
            requestor = self.token.username

        if not reason:
            reason = self.token.reason

        self.CreateUser(requestor)
        self.CreateUser(approver)

        args = api_user.ApiCreateClientApprovalArgs(
            client_id=client_id,
            approval=api_user.ApiClientApproval(
                reason=reason,
                notified_users=[approver],
                email_cc_addresses=([email_cc_address]
                                    if email_cc_address else [])))
        handler = api_user.ApiCreateClientApprovalHandler()
        result = handler.Handle(
            args, context=api_call_context.ApiCallContext(username=requestor))

        return result.id
示例#3
0
    def Run(self):
        with test_lib.FakeTime(42):
            self.CreateUser(u"approver")

            client_id = self.SetupClient(0)

            # Delete the certificate as it's being regenerated every time the
            # client is created.
            with aff4.FACTORY.Open(client_id, mode="rw",
                                   token=self.token) as grr_client:
                grr_client.DeleteAttribute(grr_client.Schema.CERT)

        def ReplaceApprovalId():
            approvals = self.ListClientApprovals()
            return {approvals[0].id: "approval:112233"}

        with test_lib.FakeTime(126):
            self.Check("CreateClientApproval",
                       args=user_plugin.ApiCreateClientApprovalArgs(
                           client_id=client_id.Basename(),
                           approval=user_plugin.ApiClientApproval(
                               reason="really important reason!",
                               notified_users=[u"approver1", u"approver2"],
                               email_cc_addresses=["*****@*****.**"])),
                       replace=ReplaceApprovalId)
示例#4
0
文件: user_test.py 项目: ehossam/grr
  def setUp(self):
    super(ApiCreateClientApprovalHandlerTest, self).setUp()

    self.SetUpApprovalTest()

    self.subject_urn = client_id = self.SetupClient(0)

    self.handler = user_plugin.ApiCreateClientApprovalHandler()

    self.args = user_plugin.ApiCreateClientApprovalArgs(client_id=client_id)
    self.args.approval.reason = self.token.reason
    self.args.approval.notified_users = [u"approver"]
    self.args.approval.email_cc_addresses = ["*****@*****.**"]
示例#5
0
文件: user_test.py 项目: avmi/grr
    def setUp(self):
        super().setUp()

        self.SetUpApprovalTest()

        self.client_id = self.SetupClient(0)

        self.handler = user_plugin.ApiCreateClientApprovalHandler()

        self.args = user_plugin.ApiCreateClientApprovalArgs(
            client_id=self.client_id)
        self.args.approval.reason = "Running tests"
        self.args.approval.notified_users = ["approver"]
        self.args.approval.email_cc_addresses = ["*****@*****.**"]
示例#6
0
    def Run(self):
        with test_lib.FakeTime(42):
            self.CreateUser(u"approver")
            client_id = self.SetupClient(0)

        def ReplaceApprovalId():
            approvals = self.ListClientApprovals()
            return {approvals[0].id: "approval:112233"}

        with test_lib.FakeTime(126):
            self.Check("CreateClientApproval",
                       args=user_plugin.ApiCreateClientApprovalArgs(
                           client_id=client_id,
                           approval=user_plugin.ApiClientApproval(
                               reason="really important reason!",
                               notified_users=[u"approver1", u"approver2"],
                               email_cc_addresses=["*****@*****.**"])),
                       replace=ReplaceApprovalId)