diff options
| author | jmagne <jmagne@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2010-07-23 00:56:50 +0000 |
|---|---|---|
| committer | jmagne <jmagne@c9f7a03b-bd48-0410-a16d-cbbf54688b0b> | 2010-07-23 00:56:50 +0000 |
| commit | 9f8b12b0400f654f8b3f10ddbd731735c1d45607 (patch) | |
| tree | a02c45448b167425190e3934e4a6f847fdbc99a4 | |
| parent | 6737a416d8cf688b15ec72a5ca574b0208a4dfc8 (diff) | |
| download | pki-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-x | pki/dogtag/tps-ui/shared/cgi-bin/sow/enroll.html | 68 | ||||
| -rwxr-xr-x | pki/dogtag/tps-ui/shared/cgi-bin/sow/enroll_temp.html | 67 | ||||
| -rwxr-xr-x | pki/dogtag/tps-ui/shared/cgi-bin/sow/format.html | 62 |
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'); } } |
