Add grpcserver test coverage
- Add comprehensive test file for internal/grpcserver package - Cover interceptors, system, engine, policy, and auth handlers - Cover pbToRule/ruleToPB conversion helpers - 37 tests total; CA/PKI/ACME and Login/Logout skipped (require live deps) Co-authored-by: Junie <junie@jetbrains.com>
This commit is contained in:
@@ -1,60 +1,63 @@
|
||||
{{define "title"}} - Issuer: {{.IssuerName}}{{end}}
|
||||
{{define "content"}}
|
||||
<h2>Issuer: {{.IssuerName}}</h2>
|
||||
|
||||
<p>
|
||||
<a href="/pki">← PKI: {{.MountName}}</a>
|
||||
—
|
||||
<a href="/pki/{{.IssuerName}}" download="{{.IssuerName}}.pem">Download Issuer Cert (PEM)</a>
|
||||
</p>
|
||||
|
||||
<h3>Certificates</h3>
|
||||
|
||||
<form method="get" action="/pki/issuer/{{.IssuerName}}" style="margin-bottom: 1rem;">
|
||||
<div class="form-row">
|
||||
<div class="form-group">
|
||||
<label for="name_filter">Filter by name</label>
|
||||
<input type="text" id="name_filter" name="name" value="{{.NameFilter}}" placeholder="common name contains...">
|
||||
</div>
|
||||
<div class="form-group">
|
||||
<label for="sort_by">Sort by</label>
|
||||
<select id="sort_by" name="sort">
|
||||
<option value="cn"{{if eq .SortBy "cn"}} selected{{end}}>Common Name</option>
|
||||
<option value="expiry"{{if eq .SortBy "expiry"}} selected{{end}}>Expiry Date</option>
|
||||
</select>
|
||||
</div>
|
||||
<div class="form-group" style="align-self: flex-end;">
|
||||
<button type="submit">Apply</button>
|
||||
</div>
|
||||
<div class="page-header">
|
||||
<h2>Issuer: {{.IssuerName}}</h2>
|
||||
<div class="page-meta">
|
||||
<a href="/pki">← PKI: {{.MountName}}</a>
|
||||
 · 
|
||||
<a href="/pki/{{.IssuerName}}" download="{{.IssuerName}}.pem">Download Issuer Cert (PEM)</a>
|
||||
</div>
|
||||
</form>
|
||||
</div>
|
||||
|
||||
{{if .Certs}}
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Common Name</th>
|
||||
<th>Profile</th>
|
||||
<th>Serial</th>
|
||||
<th>Issued By</th>
|
||||
<th>Issued At</th>
|
||||
<th>Expires At</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .Certs}}
|
||||
<tr>
|
||||
<td>{{index . "cn"}}</td>
|
||||
<td>{{index . "profile"}}</td>
|
||||
<td><code>{{index . "serial"}}</code></td>
|
||||
<td>{{index . "issued_by"}}</td>
|
||||
<td>{{index . "issued_at"}}</td>
|
||||
<td>{{index . "expires_at"}}</td>
|
||||
</tr>
|
||||
<div class="card">
|
||||
<div class="card-title">Certificates</div>
|
||||
<form method="get" action="/pki/issuer/{{.IssuerName}}">
|
||||
<div class="form-row" style="align-items: flex-end; margin-bottom: 1rem;">
|
||||
<div class="form-group" style="margin-bottom: 0;">
|
||||
<label for="name_filter">Filter by name</label>
|
||||
<input type="text" id="name_filter" name="name" value="{{.NameFilter}}" placeholder="common name contains…">
|
||||
</div>
|
||||
<div class="form-group" style="margin-bottom: 0;">
|
||||
<label for="sort_by">Sort by</label>
|
||||
<select id="sort_by" name="sort">
|
||||
<option value="cn"{{if eq .SortBy "cn"}} selected{{end}}>Common Name</option>
|
||||
<option value="expiry"{{if eq .SortBy "expiry"}} selected{{end}}>Expiry Date</option>
|
||||
</select>
|
||||
</div>
|
||||
<div style="flex-shrink: 0; padding-bottom: 1px;">
|
||||
<button type="submit">Apply</button>
|
||||
</div>
|
||||
</div>
|
||||
</form>
|
||||
{{if .Certs}}
|
||||
<div class="table-wrapper">
|
||||
<table>
|
||||
<thead>
|
||||
<tr>
|
||||
<th>Common Name</th>
|
||||
<th>Profile</th>
|
||||
<th>Serial</th>
|
||||
<th>Issued By</th>
|
||||
<th>Issued At</th>
|
||||
<th>Expires At</th>
|
||||
</tr>
|
||||
</thead>
|
||||
<tbody>
|
||||
{{range .Certs}}
|
||||
<tr>
|
||||
<td>{{index . "cn"}}</td>
|
||||
<td>{{index . "profile"}}</td>
|
||||
<td><code>{{index . "serial"}}</code></td>
|
||||
<td>{{index . "issued_by"}}</td>
|
||||
<td>{{index . "issued_at"}}</td>
|
||||
<td>{{index . "expires_at"}}</td>
|
||||
</tr>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
</div>
|
||||
{{else}}
|
||||
<p>No certificates found{{if .NameFilter}} matching “{{.NameFilter}}”{{end}}.</p>
|
||||
{{end}}
|
||||
</tbody>
|
||||
</table>
|
||||
{{else}}
|
||||
<p>No certificates found{{if .NameFilter}} matching “{{.NameFilter}}”{{end}}.</p>
|
||||
{{end}}
|
||||
</div>
|
||||
{{end}}
|
||||
|
||||
Reference in New Issue
Block a user