home *** CD-ROM | disk | FTP | other *** search
/ PC World 2003 May / PCWorld_2003-05_cd.bin / Komunik / phoenix / chrome / pippki.jar / content / pippki / pref-masterpass.js < prev    next >
Text File  |  2002-06-28  |  4KB  |  117 lines

  1. /* -*- Mode: C++; tab-width: 2; indent-tabs-mode: nil; c-basic-offset: 2 -*-
  2.  *
  3.  * The contents of this file are subject to the Mozilla Public
  4.  * License Version 1.1 (the "License"); you may not use this file
  5.  * except in compliance with the License. You may obtain a copy of
  6.  * the License at http://www.mozilla.org/MPL/
  7.  *
  8.  * Software distributed under the License is distributed on an "AS
  9.  * IS" basis, WITHOUT WARRANTY OF ANY KIND, either express or
  10.  * implied. See the License for the specific language governing
  11.  * rights and limitations under the License.
  12.  *
  13.  * The Original Code is mozilla.org code.
  14.  *
  15.  * The Initial Developer of the Original Code is Netscape
  16.  * Communications Corporation.  Portions created by Netscape are
  17.  * Copyright (C) 1998 Netscape Communications Corporation. All
  18.  * Rights Reserved.
  19.  *
  20.  * Contributor(s):
  21.  *  Javier Delgadillo <javi@netscape.com>
  22.  *
  23.  * Alternatively, the contents of this file may be used under the
  24.  * terms of the GNU General Public License Version 2 or later (the
  25.  * "GPL"), in which case the provisions of the GPL are applicable 
  26.  * instead of those above.  If you wish to allow use of your 
  27.  * version of this file only under the terms of the GPL and not to
  28.  * allow others to use your version of this file under the MPL,
  29.  * indicate your decision by deleting the provisions above and
  30.  * replace them with the notice and other provisions required by
  31.  * the GPL.  If you do not delete the provisions above, a recipient
  32.  * may use your version of this file under either the MPL or the
  33.  * GPL.
  34.  */
  35.  
  36. const nsIPK11Token = Components.interfaces.nsIPK11Token;
  37. const nsPK11TokenDB = "@mozilla.org/security/pk11tokendb;1";
  38. const nsIPK11TokenDB = Components.interfaces.nsIPK11TokenDB;
  39. const nsIDialogParamBlock = Components.interfaces.nsIDialogParamBlock;
  40. const nsDialogParamBlock = "@mozilla.org/embedcomp/dialogparam;1";
  41.  
  42. var internal_token;
  43.  
  44. function onMasterPasswordLoad()
  45. {
  46.   var tokendb = Components.classes[nsPK11TokenDB].getService(nsIPK11TokenDB);
  47.   internal_token = tokendb.getInternalKeyToken();
  48.   var askTimes = internal_token.getAskPasswordTimes();
  49.   switch (askTimes) {
  50.   case nsIPK11Token.ASK_FIRST_TIME:  askTimes = 0; break;
  51.   case nsIPK11Token.ASK_EVERY_TIME:  askTimes = 1; break;
  52.   case nsIPK11Token.ASK_EXPIRE_TIME: askTimes = 2; break;
  53.   }
  54.   var radiogroup = document.getElementById("passwordAskTimes");
  55.   var radioitem;
  56.   switch (askTimes) {
  57.   case 0: radioitem = document.getElementById("askFirstTime"); break;
  58.   case 1: radioitem = document.getElementById("askEveryTime"); break;
  59.   case 2: radioitem = document.getElementById("askTimeout"); break;
  60.   }
  61.   radiogroup.selectedItem = radioitem;
  62.   var timeout = internal_token.getAskPasswordTimeout();
  63.   var timeoutField = document.getElementById("passwordTimeout");
  64.   timeoutField.setAttribute("value", timeout);
  65.   
  66.   changePasswordSettings(false);
  67. }
  68.  
  69. function changePasswordSettings(setFocus)
  70. {
  71.   var askTimes = 0;
  72.   var timeout = internal_token.getAskPasswordTimeout();
  73.   var timeoutField = document.getElementById("passwordTimeout");
  74.   var radiogroup = document.getElementById("passwordAskTimes");
  75.   switch ( radiogroup.value ) {
  76.   case "0": 
  77.     timeoutField.setAttribute("disabled", true);
  78.     askTimes = nsIPK11Token.ASK_FIRST_TIME;
  79.     break;
  80.   case "1": 
  81.     timeoutField.setAttribute("disabled", true);
  82.     askTimes = nsIPK11Token.ASK_EVERY_TIME;
  83.     break;
  84.   case "2":
  85.     timeoutField.removeAttribute("disabled");
  86.     if ( setFocus ) {
  87.       timeoutField.focus();
  88.     }
  89.     timeout = timeoutField.value;
  90.     var re = new RegExp("^[0-9]+$");
  91.     if (!re.test(timeout)) {
  92.       timeout = "1";
  93.     }
  94.     askTimes = nsIPK11Token.ASK_EXPIRE_TIME;
  95.     break;
  96.   }
  97.   internal_token.setAskPasswordDefaults(askTimes, timeout);
  98.  
  99.   var askEveryTimeHidden = document.getElementById("askEveryTimeHidden");
  100.   askEveryTimeHidden.checked = (radiogroup.value == 1) ? true : false;
  101. }
  102.  
  103. function ChangePW()
  104. {
  105.   var params = Components.classes[nsDialogParamBlock].createInstance(nsIDialogParamBlock);
  106.   params.SetString(1,"");
  107.   window.openDialog("chrome://pippki/content/changepassword.xul","",
  108.               "chrome,resizable=1,modal=1,dialog=1",params);
  109. }
  110.  
  111. function ResetPW()
  112. {
  113.   window.open("chrome://pippki/content/resetpassword.xul",
  114.               internal_token.tokenName,
  115.               "centerscreen,chrome,resizable=1,modal=1,dialog=1");
  116. }
  117.