def Layout(self, request, response):
    self.subject = request.REQ.get("subject", "")
    self.silent = request.REQ.get("silent", "")

    token = request.token

    # When silent=True, we don't show ACLDialog in case of failure.
    # This is useful when we just want to make an access check and set
    # the correct reason (if found) without asking for a missing approval.
    if self.silent:
      self.layout_template = self.silent_template

    self.refresh_after_form_submit = True

    subject_urn = rdfvalue.RDFURN(self.subject)
    namespace, _ = subject_urn.Split(2)
    if self.CheckObjectAccess(subject_urn, token):
      return self.CallJavascript(response, "CheckAccess.AccessOk",
                                 reason=self.reason,
                                 silent=self.silent)

    self.cc_address = config_lib.CONFIG["Email.approval_optional_cc_address"]

    recent_reasons_list = api_user.ApiListUserClientApprovalsHandler().Handle(
        api_user.ApiListUserClientApprovalsArgs(count=5),
        token=request.token)
    self.recent_reasons = [x.reason for x in recent_reasons_list.items]

    if namespace == "hunts":
      self.approval_renderer = "HuntApprovalRequestRenderer"
      self.refresh_after_form_submit = False
    elif namespace == "cron":
      self.approval_renderer = "CronJobApprovalRequestRenderer"
      self.refresh_after_form_submit = False
    elif aff4.AFF4Object.VFSGRRClient.CLIENT_ID_RE.match(namespace):
      self.approval_renderer = "ClientApprovalRequestRenderer"
      self.show_keepalive_option = True
    else:
      raise RuntimeError(
          "Unexpected namespace for access check: %s (subject=%s)." %
          (namespace, self.subject))

    response = super(CheckAccess, self).Layout(request, response)
    if not self.silent:
      return self.CallJavascript(
          response, "CheckAccess.Layout", subject=self.subject,
          refresh_after_form_submit=self.refresh_after_form_submit,
          approval_renderer=self.approval_renderer)
    else:
      return response
:param dns_name: The DNS name of your Amazon S3 bucket to
dataset/ETHPy150Open google/grr/grr/gui/plugins/acl_manager.py/CheckAccess.Layout--crossover with--dataset/ETHPy150Open darcyliu/storyboard/boto/cloudfront/origin.py/CustomOrigin.__init__