diff options
author | Endi S. Dewata <edewata@redhat.com> | 2016-02-02 04:15:02 +0100 |
---|---|---|
committer | Endi S. Dewata <edewata@redhat.com> | 2016-02-03 01:57:21 +0100 |
commit | ce872456a09f5c5d146c6cb465b2466ad3ddc73d (patch) | |
tree | e0575b424ebc4cbd46577a1b02a0ef5a3ae7727c /base/tps/shared | |
parent | d42f39334ce4b4f5fa89707bfb6145039ff04579 (diff) | |
download | pki-ce872456a09f5c5d146c6cb465b2466ad3ddc73d.tar.gz pki-ce872456a09f5c5d146c6cb465b2466ad3ddc73d.tar.xz pki-ce872456a09f5c5d146c6cb465b2466ad3ddc73d.zip |
Fixed TPS token state transitions.
The TPS service has been modified to provide a list of allowed
state transitions based on the current token state. The TPS UI
was modified to display only the allowed state transitions when
changing the token status.
The allowed state transition list has been modified to remove
invalid token transitions including:
* UNINITIALIZED -> FOUND
* UNINITIALIZED -> TEMP_LOST_PERM_LOST
The token FOUND state has been renamed to ACTIVE for clarity.
The token TEMP_LOST_PERM_LOST state has been merged into
PERM_LOST since they are identical in the database.
https://fedorahosted.org/pki/ticket/1289
https://fedorahosted.org/pki/ticket/1291
https://fedorahosted.org/pki/ticket/1684
Diffstat (limited to 'base/tps/shared')
-rw-r--r-- | base/tps/shared/conf/CS.cfg.in | 32 | ||||
-rw-r--r-- | base/tps/shared/webapps/tps/js/token.js | 36 | ||||
-rw-r--r-- | base/tps/shared/webapps/tps/ui/token.html | 6 | ||||
-rw-r--r-- | base/tps/shared/webapps/tps/ui/tokens.html | 6 |
4 files changed, 50 insertions, 30 deletions
diff --git a/base/tps/shared/conf/CS.cfg.in b/base/tps/shared/conf/CS.cfg.in index 48fd8fe43..82801f2fb 100644 --- a/base/tps/shared/conf/CS.cfg.in +++ b/base/tps/shared/conf/CS.cfg.in @@ -1954,20 +1954,20 @@ tokendb._064=# is set to YES. Otherwise, re-enrollment is not tokendb._065=# allowed. tokendb._066=# tokendb.allowedTransitions: tokendb._067=# - has transitions between the following states -tokendb._068=# TOKEN_UNINITIALIZED = 0, -tokendb._069=# TOKEN_DAMAGED =1, -tokendb._070=# TOKEN_PERM_LOST=2, -tokendb._071=# TOKEN_TEMP_LOST=3, -tokendb._072=# TOKEN_FOUND =4, -tokendb._073=# TOKEN_TEMP_LOST_PERM_LOST =5, -tokendb._074=# TOKEN_TERMINATED = 6 +tokendb._068=# UNINITIALIZED = 0, +tokendb._069=# DAMAGED = 1, +tokendb._070=# PERM_LOST = 2, +tokendb._071=# TEMP_LOST = 3, +tokendb._072=# ACTIVE = 4, +tokendb._073=# TEMP_LOST_PERM_LOST = 5, +tokendb._074=# TERMINATED = 6 tokendb._075=######################################### tokendb.activityBaseDN=ou=Activities,[TOKENDB_ROOT] tokendb.addConfigTemplate=addConfig.template tokendb.addResultTemplate=addResults.template tokendb.agentSelectConfigTemplate=agentSelectConfig.template tokendb.agentViewConfigTemplate=agentViewConfig.template -tokendb.allowedTransitions=0:1,0:2,0:3,0:4,0:5,0:6,3:4,3:5,3:6,4:1,4:2,4:3,4:6 +tokendb.allowedTransitions=0:1,0:2,0:3,0:6,3:2,3:4,3:6,4:1,4:2,4:3,4:6 tokendb.auditAdminTemplate=auditAdmin.template tokendb.auditLog=[PKI_INSTANCE_PATH]/logs/tokendb-audit.log tokendb.baseDN=ou=Tokens,[TOKENDB_ROOT] @@ -2023,14 +2023,14 @@ tps._005=# tps.cert.subsystem.nickname=xxx tps._007=# tps.cert.audit_signing.nickname=xxx tps._008=# operations.allowedTransitions: tps._009=# - token operations, like formatting and enrollment have transitions between the following states -tps._010=# TOKEN_UNINITIALIZED = 0, -tps._011=# TOKEN_DAMAGED =1, -tps._012=# TOKEN_PERM_LOST=2, -tps._013=# TOKEN_TEMP_LOST=3, -tps._014=# TOKEN_FOUND =4, -tps._015=# TOKEN_TEMP_LOST_PERM_LOST =5, -tps._016=# TOKEN_TERMINATED = 6 -tps._017=# Sample: tps.operations.allowedTransitions=0:0,0:4,4:6,6:0 +tps._010=# UNINITIALIZED = 0, +tps._011=# DAMAGED = 1, +tps._012=# PERM_LOST = 2, +tps._013=# TEMP_LOST = 3, +tps._014=# ACTIVE = 4, +tps._015=# TEMP_LOST_PERM_LOST = 5, +tps._016=# TERMINATED = 6 +tps._017=# Sample: tps.operations.allowedTransitions=0:0,0:4,4:4,4:6,6:0 tps._018=######################################## tps.cert.audit_signing.certusage=ObjectSigner tps.cert.audit_signing.nickname=[HSM_LABEL][NICKNAME] diff --git a/base/tps/shared/webapps/tps/js/token.js b/base/tps/shared/webapps/tps/js/token.js index f4d2d8a78..1a4267f72 100644 --- a/base/tps/shared/webapps/tps/js/token.js +++ b/base/tps/shared/webapps/tps/js/token.js @@ -25,6 +25,7 @@ var TokenStatus = { TEMP_LOST: "Temporarily lost", PERM_LOST: "Permanently lost", DAMAGED: "Physically damaged", + TEMP_LOST_PERM_LOST: "Temporarily lost then permanently lost", TERMINATED: "Terminated" }; @@ -38,6 +39,7 @@ var TokenModel = Model.extend({ type: response.Type, status: response.Status, statusLabel: TokenStatus[response.Status], + nextStates: response.NextStates, appletID: response.AppletID, keyInfo: response.KeyInfo, policy: response.Policy, @@ -91,6 +93,7 @@ var TokenCollection = Collection.extend({ type: entry.Type, status: entry.Status, statusLabel: TokenStatus[entry.Status], + nextStates: entry.NextStates, appletID: entry.AppletID, keyInfo: entry.KeyInfo, policy: entry.Policy, @@ -100,6 +103,35 @@ var TokenCollection = Collection.extend({ } }); +var TokenDialog = Dialog.extend({ + loadField: function(input) { + var self = this; + + var name = input.attr("name"); + if (name != "status") { + TokenDialog.__super__.loadField.call(self, input); + return; + } + + var select = input.empty(); + var status = self.entry["status"]; + + $('<option/>', { + text: TokenStatus[status], + value: status, + selected: true + }).appendTo(select); + + var nextStates = self.entry["nextStates"]; + _.each(nextStates, function(nextState) { + $('<option/>', { + text: TokenStatus[nextState], + value: nextState + }).appendTo(select); + }); + } +}); + var TokenPage = EntryPage.extend({ initialize: function(options) { var self = this; @@ -116,7 +148,7 @@ var TokenPage = EntryPage.extend({ e.preventDefault(); - var dialog = new Dialog({ + var dialog = new TokenDialog({ el: $("#token-status-dialog"), title: "Change Token Status", readonly: ["tokenID"], @@ -198,7 +230,7 @@ var TokenTableItem = TableItem.extend({ var model = self.table.collection.get(self.entry.id); - var dialog = new Dialog({ + var dialog = new TokenDialog({ el: $("#token-status-dialog"), title: "Change Token Status", readonly: ["tokenID", "userID", "type", diff --git a/base/tps/shared/webapps/tps/ui/token.html b/base/tps/shared/webapps/tps/ui/token.html index ad681e9a0..90b9c72a5 100644 --- a/base/tps/shared/webapps/tps/ui/token.html +++ b/base/tps/shared/webapps/tps/ui/token.html @@ -79,12 +79,6 @@ <input name="tokenID" readonly="readonly"><br> <label>Status</label> <select name="status"> - <option value="UNINITIALIZED">Uninitialized</option> - <option value="ACTIVE">Active</option> - <option value="TEMP_LOST">Temporarily lost</option> - <option value="PERM_LOST">Permanently lost</option> - <option value="DAMAGED">Physically damaged</option> - <option value="TERMINATED">Terminated</option> </select><br> </fieldset> </div> diff --git a/base/tps/shared/webapps/tps/ui/tokens.html b/base/tps/shared/webapps/tps/ui/tokens.html index 06d4fdf2a..42a93cd93 100644 --- a/base/tps/shared/webapps/tps/ui/tokens.html +++ b/base/tps/shared/webapps/tps/ui/tokens.html @@ -107,12 +107,6 @@ <input name="type" readonly="readonly"><br> <label>Status</label> <select name="status"> - <option value="UNINITIALIZED">Uninitialized</option> - <option value="ACTIVE">Active</option> - <option value="TEMP_LOST">Temporarily lost</option> - <option value="PERM_LOST">Permanently lost</option> - <option value="DAMAGED">Physically damaged</option> - <option value="TERMINATED">Terminated</option> </select><br> <label>Applet ID</label> <input name="appletID" readonly="readonly"><br> |