summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorjmagne <jmagne@c9f7a03b-bd48-0410-a16d-cbbf54688b0b>2010-07-23 00:56:50 +0000
committerjmagne <jmagne@c9f7a03b-bd48-0410-a16d-cbbf54688b0b>2010-07-23 00:56:50 +0000
commit9f8b12b0400f654f8b3f10ddbd731735c1d45607 (patch)
treea02c45448b167425190e3934e4a6f847fdbc99a4
parent6737a416d8cf688b15ec72a5ca574b0208a4dfc8 (diff)
downloadpki-9f8b12b0400f654f8b3f10ddbd731735c1d45607.tar.gz
pki-9f8b12b0400f654f8b3f10ddbd731735c1d45607.tar.xz
pki-9f8b12b0400f654f8b3f10ddbd731735c1d45607.zip
Fix Bug 541031 - Security officer: Format card operation with a blank token throws Cant format a card that belong to security officer.
git-svn-id: svn+ssh://svn.fedorahosted.org/svn/pki/trunk@1132 c9f7a03b-bd48-0410-a16d-cbbf54688b0b
-rwxr-xr-xpki/dogtag/tps-ui/shared/cgi-bin/sow/enroll.html68
-rwxr-xr-xpki/dogtag/tps-ui/shared/cgi-bin/sow/enroll_temp.html67
-rwxr-xr-xpki/dogtag/tps-ui/shared/cgi-bin/sow/format.html62
3 files changed, 169 insertions, 28 deletions
diff --git a/pki/dogtag/tps-ui/shared/cgi-bin/sow/enroll.html b/pki/dogtag/tps-ui/shared/cgi-bin/sow/enroll.html
index b82d10372..ed38423f5 100755
--- a/pki/dogtag/tps-ui/shared/cgi-bin/sow/enroll.html
+++ b/pki/dogtag/tps-ui/shared/cgi-bin/sow/enroll.html
@@ -54,6 +54,8 @@ function updateKeyText(text)
f.appendChild(text);
}
+var officerToken = null;
+
function UserOnDoneInitializeBindingTable()
{
document.body.onkeyup = onUserKeyUp;
@@ -79,20 +81,76 @@ function UserOnDoneInitializeBindingTable()
updateKeyText('An ' + keyStatus + ' smartcard "' + keyID + '" is detected!');
UserSelectRowByKeyID(keyType, keyID);
}
+ if(keyStatus == "ENROLLED" ) {
+ var uid = GetCoolKeyIssuedTo(keyType,keyID);
+ if(uid)
+ {
+ isAgent = window.IsAgentOrUser(uid,"agent");
+ }
+ if(isAgent == true)
+ {
+ officerToken = keyID;
+ }
+ }
+
}
}
function UserOnCOOLKeyInserted(keyType, keyID)
{
- var keyStatus = GetStatusForKeyID(keyType, keyID);
- if (keyStatus == "ENROLLED" || keyStatus == "UNINITIALIZED") {
- updateKeyText('An ' + keyStatus + ' smartcard "' + keyID + '" is detected!');
+ var arr = GetAvailableCOOLKeys();
+ var curKeyType = null;
+ var curKeyID = null;
+ var curKeyStatus = null;
+ var i = 0;
+ var enrollbtn = document.getElementById('enrollbtn');
+ while(1) {
+ if (arr && arr.length <= 1 )
+ {
+ toggleButton('enrollbtn','off');
+ return;
+ }
+ if (arr && arr.length > 1 )
+ {
+ toggleButton('enrollbtn','on');
+ }
+ curKeyType = arr[i][0];
+ curKeyID = arr[i][1];
+
+ var curKeyStatus = GetStatusForKeyID(curKeyType, curKeyID);
+ if(!(curKeyID == officerToken && curKeyStatus == "ENROLLED")) {
+ break;
+ }
+ i++;
+ }
+
+ if (curKeyStatus == "ENROLLED" || curKeyStatus == "UNINITIALIZED") {
+ updateKeyText('An ' + curKeyStatus + ' smartcard "' + curKeyID + '" is detected!');
} else {
- updateKeyText('A ' + keyStatus + ' smartcard "' + keyID + '" is detected!');
+ updateKeyText('A ' + curKeyStatus + ' smartcard "' + curKeyID + '" is detected!');
+ }
+
+ var uid = null;
+ var isAgent = null;
+ UserSelectRowByKeyID(curKeyType, curKeyID);
+
+ if(curKeyStatus == "ENROLLED")
+ {
+ uid = GetCoolKeyIssuedTo(curKeyType,curKeyID);
+ if(uid)
+ {
+ isAgent = window.IsAgentOrUser(uid,"agent");
+ }
+ if(isAgent == true)
+ {
+ MyAlert("You can't Enroll a card that belongs to another Security Officer!");
+ updateKeyText('A ' + curKeyStatus + ' smartcard "' + curKeyID + '" SECURITY OFFICER is detected!');
+ toggleButton('enrollbtn','off');
+ }
}
- UserSelectRowByKeyID(keyType, keyID);
}
+
function UserOnCOOLKeyRemoved(keyType, keyID)
{
updateKeyText('Please insert a blank smartcard now!');
diff --git a/pki/dogtag/tps-ui/shared/cgi-bin/sow/enroll_temp.html b/pki/dogtag/tps-ui/shared/cgi-bin/sow/enroll_temp.html
index c6571a7d6..d74a89d8d 100755
--- a/pki/dogtag/tps-ui/shared/cgi-bin/sow/enroll_temp.html
+++ b/pki/dogtag/tps-ui/shared/cgi-bin/sow/enroll_temp.html
@@ -54,6 +54,7 @@ function updateKeyText(text)
f.appendChild(text);
}
+var officerToken = null;
function UserOnDoneInitializeBindingTable()
{
// display existing blank smart
@@ -73,18 +74,74 @@ function UserOnDoneInitializeBindingTable()
updateKeyText('An ' + keyStatus + ' smartcard "' + keyID + '" is detected!');
UserSelectRowByKeyID(keyType, keyID);
}
+
+ if(keyStatus == "ENROLLED" ) {
+ var uid = GetCoolKeyIssuedTo(keyType,keyID);
+ if(uid)
+ {
+ isAgent = window.IsAgentOrUser(uid,"agent");
+ }
+ if(isAgent == true)
+ {
+ officerToken = keyID;
+ }
+ }
+
}
}
function UserOnCOOLKeyInserted(keyType, keyID)
{
- var keyStatus = GetStatusForKeyID(keyType, keyID);
- if (keyStatus == "ENROLLED" || keyStatus == "UNINITIALIZED") {
- updateKeyText('An ' + keyStatus + ' smartcard "' + keyID + '" is detected!');
+ var arr = GetAvailableCOOLKeys();
+ var curKeyType = null;
+ var curKeyID = null;
+ var curKeyStatus = null;
+ var i = 0;
+ var enrollbtn = document.getElementById('enrollbtn');
+ while(1) {
+ if (arr && arr.length <= 1 )
+ {
+ toggleButton('enrollbtn','off');
+ return;
+ }
+ if (arr && arr.length > 1 )
+ {
+ toggleButton('enrollbtn','on');
+ }
+ curKeyType = arr[i][0];
+ curKeyID = arr[i][1];
+
+ var curKeyStatus = GetStatusForKeyID(curKeyType, curKeyID);
+ if(!(curKeyID == officerToken && curKeyStatus == "ENROLLED")) {
+ break;
+ }
+ i++;
+ }
+
+ if (curKeyStatus == "ENROLLED" || curKeyStatus == "UNINITIALIZED") {
+ updateKeyText('An ' + curKeyStatus + ' smartcard "' + curKeyID + '" is detected!');
} else {
- updateKeyText('A ' + keyStatus + ' smartcard "' + keyID + '" is detected!');
+ updateKeyText('A ' + curKeyStatus + ' smartcard "' + curKeyID + '" is detected!');
+ }
+
+ var uid = null;
+ var isAgent = null;
+ UserSelectRowByKeyID(curKeyType, curKeyID);
+
+ if(curKeyStatus == "ENROLLED")
+ {
+ uid = GetCoolKeyIssuedTo(curKeyType,curKeyID);
+ if(uid)
+ {
+ isAgent = window.IsAgentOrUser(uid,"agent");
+ }
+ if(isAgent == true)
+ {
+ MyAlert("You can't Enroll a temporary card that belongs to another Security Officer!");
+ updateKeyText('A ' + curKeyStatus + ' smartcard "' + curKeyID + '" SECURITY OFFICER is detected!');
+ toggleButton('enrollbtn','off');
+ }
}
- UserSelectRowByKeyID(keyType, keyID);
}
function UserOnCOOLKeyRemoved(keyType, keyID)
diff --git a/pki/dogtag/tps-ui/shared/cgi-bin/sow/format.html b/pki/dogtag/tps-ui/shared/cgi-bin/sow/format.html
index 2662e8062..6cd0d2dc0 100755
--- a/pki/dogtag/tps-ui/shared/cgi-bin/sow/format.html
+++ b/pki/dogtag/tps-ui/shared/cgi-bin/sow/format.html
@@ -62,6 +62,8 @@ function UserSelectRowByKeyID(keyType, keyID)
SelectRowByKeyID(keyType, keyID);
}
+var officerToken = null;
+
function UserOnDoneInitializeBindingTable()
{
// display existing blank smart
@@ -81,6 +83,18 @@ function UserOnDoneInitializeBindingTable()
updateKeyText('An ' + keyStatus + ' smartcard "' + keyID + '" is detected!');
UserSelectRowByKeyID(keyType, keyID);
}
+
+ if(keyStatus == "ENROLLED" ) {
+ var uid = GetCoolKeyIssuedTo(keyType,keyID);
+ if(uid)
+ {
+ isAgent = window.IsAgentOrUser(uid,"agent");
+ }
+ if(isAgent == true)
+ {
+ officerToken = keyID;
+ }
+ }
}
if (arr && arr.length <= 1 )
@@ -92,30 +106,43 @@ function UserOnDoneInitializeBindingTable()
function UserOnCOOLKeyInserted(keyType, keyID)
{
var arr = GetAvailableCOOLKeys();
- if (arr && arr.length <= 1 )
- {
- toggleButton('enrollbtn','off');
- }
- if (arr && arr.length > 1 )
- {
- toggleButton('enrollbtn','on');
+ var curKeyType = null;
+ var curKeyID = null;
+ var curKeyStatus = null;
+ var i = 0;
+ while(1) {
+ if (arr && arr.length <= 1 )
+ {
+ toggleButton('enrollbtn','off');
+ return;
+ }
+ if (arr && arr.length > 1 )
+ {
+ toggleButton('enrollbtn','on');
+ }
+ curKeyType = arr[i][0];
+ curKeyID = arr[i][1];
+
+ var curKeyStatus = GetStatusForKeyID(curKeyType, curKeyID);
+ if(!(curKeyID == officerToken && curKeyStatus == "ENROLLED")) {
+ break;
+ }
+ i++;
}
- var keyStatus = GetStatusForKeyID(keyType, keyID);
- if (keyStatus == "ENROLLED" || keyStatus == "UNINITIALIZED") {
- updateKeyText('An ' + keyStatus + ' smartcard "' + keyID + '" is detected!');
+ if (curKeyStatus == "ENROLLED" || curKeyStatus == "UNINITIALIZED") {
+ updateKeyText('An ' + curKeyStatus + ' smartcard "' + curKeyID + '" is detected!');
} else {
- updateKeyText('A ' + keyStatus + ' smartcard "' + keyID + '" is detected!');
+ updateKeyText('A ' + curKeyStatus + ' smartcard "' + curKeyID + '" is detected!');
}
- UserSelectRowByKeyID(keyType, keyID);
var uid = null;
- var isAgent = false;
+ var isAgent = null;
+ UserSelectRowByKeyID(curKeyType, curKeyID);
- if(keyStatus == "ENROLLED")
+ if(curKeyStatus == "ENROLLED")
{
- uid = GetCoolKeyIssuedTo(keyType,keyID);
-
+ uid = GetCoolKeyIssuedTo(curKeyType,curKeyID);
if(uid)
{
isAgent = window.IsAgentOrUser(uid,"agent");
@@ -123,8 +150,7 @@ function UserOnCOOLKeyInserted(keyType, keyID)
if(isAgent == true)
{
MyAlert("You can't Format a card that belongs to another Security Officer!");
-
- updateKeyText('A ' + keyStatus + ' smartcard "' + keyID + '" SECURITY OFFICER is detected!');
+ updateKeyText('A ' + curKeyStatus + ' smartcard "' + curKeyID + '" SECURITY OFFICER is detected!');
toggleButton('enrollbtn','off');
}
}