<?cs include "header.cs"?>

<div id="ctxtnav" class="nav"></div>

<div id="content" class="error">
 <?cs if error.type == "TracError" ?>
  <h3><?cs var:error.title ?></h3>
  <p class="message">
  <?cs var:error.message ?>
  </p>

 <?cs elif error.type == "internal" ?>
  <h3>Oops...</h3>
  <div class="message">
   <strong>Trac detected an internal error:</strong>
   <pre><?cs var:error.message ?></pre>
  </div>
  <p>
   If you think this really should work and you can reproduce it. Then you
   should consider to report this problem to the Trac team.
  </p>
  <p>
   Go to <a href="<?cs var:trac.href.homepage ?>"><?cs
     var:trac.href.homepage ?></a>  and create a new ticket where you describe
   the problem, how to reproduce it. Don't forget to include the python
   traceback found below.
  </p>

 <?cs elif error.type == "permission" ?>
  <h3>Permission Denied</h3>

    <?cs if trac.authname == "anonymous"?>
      <p>You are not logged in; if you <a href="<?cs var:trac.href.login?>">login</a>, you may be able to access this page.</
p>
      <?cs set:user_has_options = true ?>
    <?cs /if ?>
    <?cs if subcount(trac.acl) > 0 ?>
    <p>
     You do not have permission to view this page. You could try one of the following instead:
     <?cs set:user_has_options = true ?>
    </p>
    <ul>
    <?cs each:item = trac.acl?>
      <?cs if name(item) == "WIKI_VIEW" ?>
        <?cs set:allowed.ref = trac.href.wiki?>
        <?cs set:allowed.name = "Wiki" ?>
      <?cs elif name(item) == "TIMELINE_VIEW" ?>
        <?cs set:allowed.ref = trac.href.timeline ?>
        <?cs set:allowed.name = "Timeline" ?>
      <?cs elif name(item) == "TICKET_VIEW" ?>
        <?cs set:allowed.ref = trac.href.query?>
        <?cs set:allowed.name = "Query Tickets" ?>
      <?cs elif name(item) == "TICKET_CREATE" ?>
        <?cs set:allowed.ref = trac.href.newticket?>
        <?cs set:allowed.name = "Create a new ticket" ?>
      <?cs elif name(item) == "REPORT_VIEW" ?>
        <?cs set:allowed.ref = trac.href.report?>
        <?cs set:allowed.name = "Reports" ?>
      <?cs elif name(item) == "BROWSER_VIEW" ?>
        <?cs set:allowed.ref = trac.href.browser?>
        <?cs set:allowed.name = "Source Browser" ?>
      <?cs elif name(item) == "ROADMAP_VIEW" || name(item) == "MILESTONE_ADMIN" ?>
        <?cs set:allowed.ref = trac.href.roadmap?>
        <?cs set:allowed.name = "Roadmap" ?>
      <?cs elif name(item) == "SEARCH_VIEW" ?>
        <?cs set:allowed.ref = trac.href.search ?>
        <?cs set:allowed.name = "Search" ?>
      <?cs else ?>
        <?cs set:allowed.ref = false ?>
        <?cs set:allowed.name = "" ?>
      <?cs /if ?>
      <?cs if allowed.name ?>
        <li><a href="<?cs var:allowed.ref ?>"><?cs var:allowed.name?></a></li>
      <?cs /if ?>

    <?cs /each ?>
    </ul>
    <?cs set:user_has_options = true ?>
  <?cs /if ?>

  <?cs if user_has_options != true ?>
    <p class="message">
    <?cs var:error.message ?>
    </p>
  <?cs /if ?>
  <div id="help">
   <strong>Note</strong>: See
   <a href="<?cs var:trac.href.wiki ?>/TracPermissions">TracPermissions</a> for
   help on managing Trac permissions.
  </div>

 <?cs /if ?>

 <p>
  <a href="<?cs var:trac.href.wiki ?>/TracGuide">TracGuide</a>
  &mdash; The Trac User and Administration Guide
 </p>

 <?cs if $error.traceback ?>
  <h4>Python traceback</h4>
  <pre><?cs var:error.traceback ?></pre>
 <?cs /if ?>

</div>
<?cs include "footer.cs"?>

