blob: 8b740cf1e71372611ae69436411bcbfaf1e1dc66 (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
|
[%# This Source Code Form is subject to the terms of the Mozilla Public
# License, v. 2.0. If a copy of the MPL was not distributed with this
# file, You can obtain one at http://mozilla.org/MPL/2.0/.
#
# This Source Code Form is "Incompatible With Secondary Licenses", as
# defined by the Mozilla Public License, v. 2.0.
#%]
[%# INTERFACE:
# api_keys: array. Array of api keys this user has.
# any_revoked: boolean. True is any keys have been revoked.
#%]
<p>
API keys are used to authenticate WebService API calls. You can create more than
one API key if required. Each API key has an optional description which can help
you record what each key is used for. Documentation on how to log in is available from
<a href="https://bugzilla.readthedocs.org/en/latest/api/core/v1/general.html#authentication">
here</a>.
</p>
<h3>Existing API keys</h3>
<p>You can update the description, and revoke or unrevoke existing API keys
here.</p>
<table id="email_prefs">
<tr class="column_header">
<th>API key</th>
<th>Description (optional)</th>
<th>Last used</th>
<th>Revoked</th>
</tr>
[% FOREACH api_key IN api_keys %]
<tr[% IF api_key.revoked %] class="apikey_revoked"[% END %]>
<td>[% api_key.api_key FILTER html %]</td>
<td>
<input name="description_[% api_key.id FILTER html %]"
id="description_[% api_key.id FILTER html %]"
value="[% api_key.description FILTER html %]">
</td>
[% IF api_key.last_used %]
<td>[% api_key.last_used FILTER time %]
[% IF api_key.last_used_ip %] ([% api_key.last_used_ip FILTER html %]) [% END %]
</td>
[% ELSE %]
<td class="center"><i>never used</i></td>
[% END %]
<td class="center">
<input type="checkbox" value="1"
name="revoked_[% api_key.id FILTER html %]"
id="revoked_[% api_key.id FILTER html %]"
[% IF api_key.revoked %] checked="checked" [% END %]>
</td>
</tr>
[% END %]
[% UNLESS api_keys.size %]
<tr><td colspan="4">You don't have any API keys.</td></tr>
[% END %]
</table>
[% IF any_revoked %]
<a id="apikey_revoked_controller" class="bz_default_hidden"
href="javascript:TUI_toggle_class('apikey_revoked')">Hide Revoked Keys</a>
[%# Show the link if the browser supports JS %]
<script type="text/javascript">
TUI_hide_default('apikey_revoked');
TUI_alternates['apikey_revoked'] = 'Show Revoked Keys';
YAHOO.util.Dom.removeClass('apikey_revoked_controller',
'bz_default_hidden');
</script>
[% END %]
<h3>New API key</h3>
<p>You can generate a new API key by ticking the check box below and optionally
providing a description for the API key. The API key will be randomly
generated for you.</p>
<p>
<input type="checkbox" name="new_key" id="new_key"
onchange="if (this.checked) YAHOO.util.Dom.get('new_description').focus();">
<label for="new_key">
Generate a new API key with optional description</label>
<input name="new_description" id="new_description">
</p>
|