Bug 148945. Handle the case were micasad is restarted, before
a user sets their master password
This commit is contained in:
		| @@ -1,3 +1,9 @@ | |||||||
|  | ------------------------------------------------------------------- | ||||||
|  | Mon Feb 21 12:05:17 MST 2006 - jnorman@novell.com | ||||||
|  |  | ||||||
|  | - Bug 148945. Handle the case were micasad is restarted, before | ||||||
|  |   a user sets their master password | ||||||
|  |  | ||||||
| ------------------------------------------------------------------- | ------------------------------------------------------------------- | ||||||
| Mon Feb 20 10:40:17 IST 2006 - smanojna@novell.com | Mon Feb 20 10:40:17 IST 2006 - smanojna@novell.com | ||||||
|  |  | ||||||
|   | |||||||
| @@ -67,6 +67,7 @@ namespace Novell.CASA.GUI | |||||||
| 			dialogAbout,  | 			dialogAbout,  | ||||||
| 			dialogLogin,  | 			dialogLogin,  | ||||||
| 			dialogLoginContinue,  | 			dialogLoginContinue,  | ||||||
|  |             dialogDesktopPassword, | ||||||
| 			dialogConfirmRefresh, | 			dialogConfirmRefresh, | ||||||
| 			dialogSingleInstance, | 			dialogSingleInstance, | ||||||
| 			dialogLoginReprompt, | 			dialogLoginReprompt, | ||||||
| @@ -79,6 +80,8 @@ namespace Novell.CASA.GUI | |||||||
| 			entryMasterPassword2,  | 			entryMasterPassword2,  | ||||||
| 			entryMasterPassword3,  | 			entryMasterPassword3,  | ||||||
| 			entryMasterPassword4, | 			entryMasterPassword4, | ||||||
|  |             entryDesktopPassword1, | ||||||
|  |             entryDesktopPassword2, | ||||||
| 			entryOldMP, | 			entryOldMP, | ||||||
| 			entryNewMP1, | 			entryNewMP1, | ||||||
| 			entryNewMP2; | 			entryNewMP2; | ||||||
| @@ -93,7 +96,8 @@ namespace Novell.CASA.GUI | |||||||
| 		[Glade.Widget]  | 		[Glade.Widget]  | ||||||
| 		Gtk.Label			label88,  | 		Gtk.Label			label88,  | ||||||
| 			labelLoginContinue1,  | 			labelLoginContinue1,  | ||||||
| 			labelLoginContinue2; | 			labelLoginContinue2, | ||||||
|  |             labelDesktopPasswordMessage; | ||||||
| 						 | 						 | ||||||
| 		[Glade.Widget]  | 		[Glade.Widget]  | ||||||
| 		Gtk.Button	okbuttonPersistentStorage; | 		Gtk.Button	okbuttonPersistentStorage; | ||||||
| @@ -345,16 +349,93 @@ namespace Novell.CASA.GUI | |||||||
| 			{        	 | 			{        	 | ||||||
| 				Logger.DbgLog("GUI:CasaMain.Login() - IsMasterPasswordSet returned false"); | 				Logger.DbgLog("GUI:CasaMain.Login() - IsMasterPasswordSet returned false"); | ||||||
|                                  |                                  | ||||||
|  |                 // did the daemon get restarted before the user created a master password? | ||||||
|  |                 // if so, let's ask the user for there desktop password and set it if there's a cache file | ||||||
|  |                 if (true == DoPersistentFilesExist()) | ||||||
|  |                 { | ||||||
|  |                     Glade.XML gxmlTemp = new Glade.XML(Common.GladeFile, "dialogDesktopPassword", null); | ||||||
|  |                     gxmlTemp.Autoconnect(this); | ||||||
|  |  | ||||||
|  |                 } | ||||||
|  |                 else | ||||||
|  |                 { | ||||||
|                     Glade.XML gxmlTemp = new Glade.XML(Common.GladeFile, "dialogLogin", null); |                     Glade.XML gxmlTemp = new Glade.XML(Common.GladeFile, "dialogLogin", null); | ||||||
|                     gxmlTemp.Autoconnect(this); |                     gxmlTemp.Autoconnect(this); | ||||||
| 				entryMasterPassword3.Text=""; |                     entryMasterPassword3.Text = ""; | ||||||
| 				entryMasterPassword4.Text=""; |                     entryMasterPassword4.Text = ""; | ||||||
|  |                 } | ||||||
| 			} 	          	         | 			} 	          	         | ||||||
|      |      | ||||||
| 			Logger.DbgLog("GUI:CasaMain.Login() - END"); | 			Logger.DbgLog("GUI:CasaMain.Login() - END"); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  |         public void on_entryDesktopPassword1_activate(object obj, EventArgs args) | ||||||
|  |         { | ||||||
|  |             on_buttonPasswordOk_clicked(obj, args); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         public void on_entryDesktopPassword2_activate(object obj, EventArgs args) | ||||||
|  |         { | ||||||
|  |             on_buttonPasswordOk_clicked(obj, args); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         public void on_buttonPasswordOk_clicked(object obj, EventArgs args) | ||||||
|  |         { | ||||||
|  |             object o = obj; | ||||||
|  |             if (entryDesktopPassword1 != null && entryDesktopPassword2.Text != null) | ||||||
|  |             { | ||||||
|  |  | ||||||
|  |                 if (entryDesktopPassword1.Text.Length < 1) | ||||||
|  |                 {                     | ||||||
|  |                     labelDesktopPasswordMessage.Text = "Please enter your desktop password"; | ||||||
|  |                     return; | ||||||
|  |                 } | ||||||
|  |  | ||||||
|  |                 if (entryDesktopPassword1.Text.Equals(entryDesktopPassword2.Text)) | ||||||
|  |                 { | ||||||
|  |                     // set the desktop password in micasa | ||||||
|  |                     try | ||||||
|  |                     { | ||||||
|  |                         Novell.CASA.miCASA.SetCredential(0, | ||||||
|  |                                         "Desktop", | ||||||
|  |                                         null, | ||||||
|  |                                         Novell.CASA.miCASA.USERNAME_TYPE_CN_F, | ||||||
|  |                                         GetLocalUsername(), | ||||||
|  |                                         entryDesktopPassword1.Text); | ||||||
|  |                     } | ||||||
|  |                     catch (Exception e) | ||||||
|  |                     { | ||||||
|  |                         Logger.DbgLog(e.ToString()); | ||||||
|  |                     } | ||||||
|  |  | ||||||
|  |                     if (dialogDesktopPassword != null) | ||||||
|  |                         dialogDesktopPassword.Destroy(); | ||||||
|  |  | ||||||
|  |                     MasterPasswordAuthentication(); | ||||||
|  |  | ||||||
|  |                 } | ||||||
|  |                 else | ||||||
|  |                 { | ||||||
|  |                     labelDesktopPasswordMessage.Text = "Passwords do not match"; | ||||||
|  |                     entryDesktopPassword1.Text = ""; | ||||||
|  |                     entryDesktopPassword2.Text = "";                     | ||||||
|  |                 } | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |         public void on_helpbuttonDesktopPassword_clicked(object obj, EventArgs args) | ||||||
|  |         { | ||||||
|  |             Common.ShowHelpUrl("CASADesktopPassword.htm"); | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |  | ||||||
|  |         public void on_buttonPasswordClose_clicked(object obj, EventArgs args) | ||||||
|  |         { | ||||||
|  |             if (dialogDesktopPassword != null) | ||||||
|  |                 dialogDesktopPassword.Destroy(); | ||||||
|  |  | ||||||
|  |             closebuttonLogin_clicked(obj, args); | ||||||
|  |         } | ||||||
|      |      | ||||||
| 		public void okbuttonLogin_clicked(object abj, EventArgs args) | 		public void okbuttonLogin_clicked(object abj, EventArgs args) | ||||||
| 		{     | 		{     | ||||||
| @@ -444,7 +525,9 @@ namespace Novell.CASA.GUI | |||||||
|      |      | ||||||
| 		public void closebuttonLogin_clicked(object abj, EventArgs args) | 		public void closebuttonLogin_clicked(object abj, EventArgs args) | ||||||
| 		{ | 		{ | ||||||
|  |             if (dialogLogin != null) | ||||||
| 			    dialogLogin.Destroy();  | 			    dialogLogin.Destroy();  | ||||||
|  |  | ||||||
| 			// close tray too | 			// close tray too | ||||||
| 			if (mCasaTray != null) | 			if (mCasaTray != null) | ||||||
| 			{	 | 			{	 | ||||||
| @@ -496,6 +579,38 @@ namespace Novell.CASA.GUI | |||||||
| 			return (File.Exists(fileName)); | 			return (File.Exists(fileName)); | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  |         public bool DoPersistentFilesExist() | ||||||
|  |         { | ||||||
|  |             Logger.DbgLog("GUI:CasaMain.DoesPersistentFilesExist() - BEGIN"); | ||||||
|  |  | ||||||
|  |             // is the desktop password set already? | ||||||
|  |             try | ||||||
|  |             { | ||||||
|  |                 BasicCredential bc = Novell.CASA.miCASA.GetCredential(0, | ||||||
|  |                                                     "Desktop", | ||||||
|  |                                                     null, | ||||||
|  |                                                     Novell.CASA.miCASA.USERNAME_TYPE_CN_F); | ||||||
|  |                 return false; | ||||||
|  |             } | ||||||
|  |             catch | ||||||
|  |             { | ||||||
|  |                 // check for existence of persistent files | ||||||
|  |                 string MICASA_PASSCODE_BY_DESKTOP_FILE = "/.miCASAPCByDesktop"; | ||||||
|  |                 string MICASA_KEY_FILE = "/.miCASAKey"; | ||||||
|  |                 string MICASA_PERSISTENCE_FILE = "/.miCASA"; | ||||||
|  |                 string MICASA_VALIDATION_FILE = "/.miCASAValidate"; | ||||||
|  |  | ||||||
|  |                 string sHomeDir = GetUserHomeDir(); | ||||||
|  |  | ||||||
|  |                 Logger.DbgLog("GUI:CasaMain.DoesPersistentFilesExist() - END"); | ||||||
|  |                 return (File.Exists(sHomeDir + MICASA_PERSISTENCE_FILE) | ||||||
|  |                         && File.Exists(sHomeDir + MICASA_KEY_FILE) | ||||||
|  |                         && File.Exists(sHomeDir + MICASA_PASSCODE_BY_DESKTOP_FILE) | ||||||
|  |                         && File.Exists(sHomeDir + MICASA_VALIDATION_FILE)); | ||||||
|  |             } | ||||||
|  |         } | ||||||
|  |         | ||||||
|  |      | ||||||
| 		private string GetUserHomeDir() | 		private string GetUserHomeDir() | ||||||
| 		{ | 		{ | ||||||
| 			if (Common.IS_LINUX)	 | 			if (Common.IS_LINUX)	 | ||||||
| @@ -505,6 +620,12 @@ namespace Novell.CASA.GUI | |||||||
| 		 | 		 | ||||||
| 		} | 		} | ||||||
|  |  | ||||||
|  |         private string GetLocalUsername() | ||||||
|  |         { | ||||||
|  |             return Environment.GetEnvironmentVariable("USERNAME");                     | ||||||
|  |         } | ||||||
|  |  | ||||||
|  |      | ||||||
| 		///####################################################################### | 		///####################################################################### | ||||||
| 		/// LOGIN WARNING DIALOG | 		/// LOGIN WARNING DIALOG | ||||||
|      |      | ||||||
|   | |||||||
							
								
								
									
										45
									
								
								c_gui/help/en/CASADesktopPassword.htm
									
									
									
									
									
										Normal file
									
								
							
							
						
						
									
										45
									
								
								c_gui/help/en/CASADesktopPassword.htm
									
									
									
									
									
										Normal file
									
								
							| @@ -0,0 +1,45 @@ | |||||||
|  | <html> | ||||||
|  | <head> | ||||||
|  |    <meta http-equiv="content-type" content="text/html;charset=iso-8859-1"> | ||||||
|  | <!-- #BeginEditable "doctitle" --> | ||||||
|  | <title>Novell® CASA Manager</title> | ||||||
|  | <!-- #EndEditable --> | ||||||
|  | <link href="hf_style.css" rel="styleSheet" type="text/css"> | ||||||
|  |    <style type="text/css" media="screen"> | ||||||
|  |       <!-- | ||||||
|  |       body            { font-family: "Trebuchet MS", Arial, Helvetica, Geneva; background: white url(help_zcc_bg.gif) repeat-x 0% 0% } | ||||||
|  |       #headgraphic    { position: absolute; z-index: 0; top: 0px; left: 0px; width: 380px; visibility: visible } | ||||||
|  |       #helpcontent    { position: absolute; top: 37px; left: 10px; width: 93%; visibility: visible } | ||||||
|  |       --> | ||||||
|  |    </style> | ||||||
|  | </head> | ||||||
|  |  | ||||||
|  | <body bgcolor="white" marginwidth="0" marginheight="0" leftmargin="0" topmargin="0"> | ||||||
|  | <div id="headgraphic"> | ||||||
|  | <img src="h1_help_zcc.gif" width="221" height="26" border="0"></div> | ||||||
|  | <div id="helpcontent"> | ||||||
|  |  | ||||||
|  | <!--Begin Content --> | ||||||
|  |  | ||||||
|  |   <div class="head3b">Entering your workstation password</div> | ||||||
|  |  | ||||||
|  |   <!--Remove this section if you do not need introductory text for this topic --> | ||||||
|  |   <p class="margintop2">You are prompted for your workstation password if the CASA | ||||||
|  |     service is restarted and before you have set your master password.</p> | ||||||
|  |      | ||||||
|  | 	<p>Your desktop password and master password are used to encypt your secrets  | ||||||
|  | 	and store them on your computer. When you login to the computer, CASA will decrypt | ||||||
|  | 	the saved secrets using your desktop password and make them available for  | ||||||
|  | 	applications integrated with CASA. | ||||||
|  | 	If your desktop password changes, you must run CASA Manager and enter your master | ||||||
|  | 	password before CASA can decrypt your saved secrets.</p>  | ||||||
|  | 	 | ||||||
|  |      | ||||||
|  |   <p><b>Important:</b> To prevent unauthorized access to your credential stores,  | ||||||
|  |     always create confidential passwords that are not easily discovered.</p> | ||||||
|  |    | ||||||
|  |     <!--End Content --> | ||||||
|  |     <br> | ||||||
|  | <div class="ruleabove"></div></div> | ||||||
|  | </body> | ||||||
|  | </html> | ||||||
| @@ -8244,4 +8244,353 @@ prompted for the Master Password at startup.</property> | |||||||
|   </child> |   </child> | ||||||
| </widget> | </widget> | ||||||
|  |  | ||||||
|  | <widget class="GtkDialog" id="dialogDesktopPassword"> | ||||||
|  |   <property name="visible">True</property> | ||||||
|  |   <property name="title" translatable="yes">Enter Workstation Password</property> | ||||||
|  |   <property name="type">GTK_WINDOW_TOPLEVEL</property> | ||||||
|  |   <property name="window_position">GTK_WIN_POS_CENTER_ALWAYS</property> | ||||||
|  |   <property name="modal">True</property> | ||||||
|  |   <property name="resizable">False</property> | ||||||
|  |   <property name="destroy_with_parent">True</property> | ||||||
|  |   <property name="icon">CASAicons.ico</property> | ||||||
|  |   <property name="decorated">True</property> | ||||||
|  |   <property name="skip_taskbar_hint">False</property> | ||||||
|  |   <property name="skip_pager_hint">False</property> | ||||||
|  |   <property name="type_hint">GDK_WINDOW_TYPE_HINT_DIALOG</property> | ||||||
|  |   <property name="gravity">GDK_GRAVITY_NORTH_WEST</property> | ||||||
|  |   <property name="has_separator">True</property> | ||||||
|  |  | ||||||
|  |   <child internal-child="vbox"> | ||||||
|  |     <widget class="GtkVBox" id="vbox105"> | ||||||
|  |       <property name="visible">True</property> | ||||||
|  |       <property name="homogeneous">False</property> | ||||||
|  |       <property name="spacing">0</property> | ||||||
|  |  | ||||||
|  |       <child internal-child="action_area"> | ||||||
|  | 	<widget class="GtkHButtonBox" id="hbuttonbox13"> | ||||||
|  | 	  <property name="visible">True</property> | ||||||
|  | 	  <property name="layout_style">GTK_BUTTONBOX_END</property> | ||||||
|  |  | ||||||
|  | 	  <child> | ||||||
|  | 	    <widget class="GtkButton" id="helpbuttonDesktopPassword"> | ||||||
|  | 	      <property name="visible">True</property> | ||||||
|  | 	      <property name="can_default">True</property> | ||||||
|  | 	      <property name="can_focus">True</property> | ||||||
|  | 	      <property name="label">gtk-help</property> | ||||||
|  | 	      <property name="use_stock">True</property> | ||||||
|  | 	      <property name="relief">GTK_RELIEF_NONE</property> | ||||||
|  | 	      <property name="focus_on_click">True</property> | ||||||
|  | 	      <property name="response_id">-11</property> | ||||||
|  | 	      <signal name="clicked" handler="on_helpbuttonDesktopPassword_clicked" last_modification_time="Tue, 21 Feb 2006 16:51:04 GMT"/> | ||||||
|  | 	    </widget> | ||||||
|  | 	  </child> | ||||||
|  |  | ||||||
|  | 	  <child> | ||||||
|  | 	    <widget class="GtkButton" id="buttonPasswordClose"> | ||||||
|  | 	      <property name="visible">True</property> | ||||||
|  | 	      <property name="can_default">True</property> | ||||||
|  | 	      <property name="can_focus">True</property> | ||||||
|  | 	      <property name="label">gtk-close</property> | ||||||
|  | 	      <property name="use_stock">True</property> | ||||||
|  | 	      <property name="relief">GTK_RELIEF_NORMAL</property> | ||||||
|  | 	      <property name="focus_on_click">True</property> | ||||||
|  | 	      <property name="response_id">-7</property> | ||||||
|  | 	      <signal name="clicked" handler="on_buttonPasswordClose_clicked" last_modification_time="Fri, 17 Feb 2006 23:00:27 GMT"/> | ||||||
|  | 	    </widget> | ||||||
|  | 	  </child> | ||||||
|  |  | ||||||
|  | 	  <child> | ||||||
|  | 	    <widget class="GtkButton" id="buttonPasswordOk"> | ||||||
|  | 	      <property name="visible">True</property> | ||||||
|  | 	      <property name="can_default">True</property> | ||||||
|  | 	      <property name="can_focus">True</property> | ||||||
|  | 	      <property name="label">gtk-ok</property> | ||||||
|  | 	      <property name="use_stock">True</property> | ||||||
|  | 	      <property name="relief">GTK_RELIEF_NORMAL</property> | ||||||
|  | 	      <property name="focus_on_click">True</property> | ||||||
|  | 	      <property name="response_id">-5</property> | ||||||
|  | 	      <signal name="clicked" handler="on_buttonPasswordOk_clicked" last_modification_time="Tue, 21 Feb 2006 18:15:24 GMT"/> | ||||||
|  | 	    </widget> | ||||||
|  | 	  </child> | ||||||
|  | 	</widget> | ||||||
|  | 	<packing> | ||||||
|  | 	  <property name="padding">0</property> | ||||||
|  | 	  <property name="expand">False</property> | ||||||
|  | 	  <property name="fill">True</property> | ||||||
|  | 	  <property name="pack_type">GTK_PACK_END</property> | ||||||
|  | 	</packing> | ||||||
|  |       </child> | ||||||
|  |  | ||||||
|  |       <child> | ||||||
|  | 	<widget class="GtkVBox" id="vbox106"> | ||||||
|  | 	  <property name="visible">True</property> | ||||||
|  | 	  <property name="homogeneous">False</property> | ||||||
|  | 	  <property name="spacing">0</property> | ||||||
|  |  | ||||||
|  | 	  <child> | ||||||
|  | 	    <widget class="GtkHBox" id="hbox71"> | ||||||
|  | 	      <property name="visible">True</property> | ||||||
|  | 	      <property name="homogeneous">False</property> | ||||||
|  | 	      <property name="spacing">0</property> | ||||||
|  |  | ||||||
|  | 	      <child> | ||||||
|  | 		<widget class="GtkVBox" id="vbox107"> | ||||||
|  | 		  <property name="visible">True</property> | ||||||
|  | 		  <property name="homogeneous">False</property> | ||||||
|  | 		  <property name="spacing">0</property> | ||||||
|  |  | ||||||
|  | 		  <child> | ||||||
|  | 		    <widget class="GtkImage" id="image2776"> | ||||||
|  | 		      <property name="visible">True</property> | ||||||
|  | 		      <property name="stock">gtk-dialog-question</property> | ||||||
|  | 		      <property name="icon_size">6</property> | ||||||
|  | 		      <property name="xalign">0.5</property> | ||||||
|  | 		      <property name="yalign">0.5</property> | ||||||
|  | 		      <property name="xpad">0</property> | ||||||
|  | 		      <property name="ypad">0</property> | ||||||
|  | 		    </widget> | ||||||
|  | 		    <packing> | ||||||
|  | 		      <property name="padding">6</property> | ||||||
|  | 		      <property name="expand">False</property> | ||||||
|  | 		      <property name="fill">True</property> | ||||||
|  | 		    </packing> | ||||||
|  | 		  </child> | ||||||
|  | 		</widget> | ||||||
|  | 		<packing> | ||||||
|  | 		  <property name="padding">4</property> | ||||||
|  | 		  <property name="expand">True</property> | ||||||
|  | 		  <property name="fill">True</property> | ||||||
|  | 		</packing> | ||||||
|  | 	      </child> | ||||||
|  |  | ||||||
|  | 	      <child> | ||||||
|  | 		<widget class="GtkVBox" id="vbox108"> | ||||||
|  | 		  <property name="visible">True</property> | ||||||
|  | 		  <property name="homogeneous">False</property> | ||||||
|  | 		  <property name="spacing">0</property> | ||||||
|  |  | ||||||
|  | 		  <child> | ||||||
|  | 		    <widget class="GtkLabel" id="label174"> | ||||||
|  | 		      <property name="visible">True</property> | ||||||
|  | 		      <property name="label" translatable="yes"><b>Enter Workstation Password</b></property> | ||||||
|  | 		      <property name="use_underline">False</property> | ||||||
|  | 		      <property name="use_markup">True</property> | ||||||
|  | 		      <property name="justify">GTK_JUSTIFY_LEFT</property> | ||||||
|  | 		      <property name="wrap">False</property> | ||||||
|  | 		      <property name="selectable">False</property> | ||||||
|  | 		      <property name="xalign">0</property> | ||||||
|  | 		      <property name="yalign">0.5</property> | ||||||
|  | 		      <property name="xpad">0</property> | ||||||
|  | 		      <property name="ypad">0</property> | ||||||
|  | 		    </widget> | ||||||
|  | 		    <packing> | ||||||
|  | 		      <property name="padding">5</property> | ||||||
|  | 		      <property name="expand">False</property> | ||||||
|  | 		      <property name="fill">False</property> | ||||||
|  | 		    </packing> | ||||||
|  | 		  </child> | ||||||
|  |  | ||||||
|  | 		  <child> | ||||||
|  | 		    <widget class="GtkLabel" id="label175"> | ||||||
|  | 		      <property name="visible">True</property> | ||||||
|  | 		      <property name="label" translatable="yes">CASA encypts your credentials | ||||||
|  | and writes them in your home directory. | ||||||
|  | To retrieve them, please enter your  | ||||||
|  | workstation password.  | ||||||
|  | </property> | ||||||
|  | 		      <property name="use_underline">False</property> | ||||||
|  | 		      <property name="use_markup">False</property> | ||||||
|  | 		      <property name="justify">GTK_JUSTIFY_LEFT</property> | ||||||
|  | 		      <property name="wrap">False</property> | ||||||
|  | 		      <property name="selectable">False</property> | ||||||
|  | 		      <property name="xalign">0</property> | ||||||
|  | 		      <property name="yalign">0.5</property> | ||||||
|  | 		      <property name="xpad">0</property> | ||||||
|  | 		      <property name="ypad">0</property> | ||||||
|  | 		    </widget> | ||||||
|  | 		    <packing> | ||||||
|  | 		      <property name="padding">4</property> | ||||||
|  | 		      <property name="expand">False</property> | ||||||
|  | 		      <property name="fill">False</property> | ||||||
|  | 		    </packing> | ||||||
|  | 		  </child> | ||||||
|  | 		</widget> | ||||||
|  | 		<packing> | ||||||
|  | 		  <property name="padding">0</property> | ||||||
|  | 		  <property name="expand">True</property> | ||||||
|  | 		  <property name="fill">True</property> | ||||||
|  | 		</packing> | ||||||
|  | 	      </child> | ||||||
|  | 	    </widget> | ||||||
|  | 	    <packing> | ||||||
|  | 	      <property name="padding">0</property> | ||||||
|  | 	      <property name="expand">True</property> | ||||||
|  | 	      <property name="fill">True</property> | ||||||
|  | 	    </packing> | ||||||
|  | 	  </child> | ||||||
|  |  | ||||||
|  | 	  <child> | ||||||
|  | 	    <widget class="GtkLabel" id="labelDesktopPasswordMessage"> | ||||||
|  | 	      <property name="visible">True</property> | ||||||
|  | 	      <property name="label" translatable="yes"></property> | ||||||
|  | 	      <property name="use_underline">True</property> | ||||||
|  | 	      <property name="use_markup">True</property> | ||||||
|  | 	      <property name="justify">GTK_JUSTIFY_LEFT</property> | ||||||
|  | 	      <property name="wrap">False</property> | ||||||
|  | 	      <property name="selectable">False</property> | ||||||
|  | 	      <property name="xalign">0.5</property> | ||||||
|  | 	      <property name="yalign">0.5</property> | ||||||
|  | 	      <property name="xpad">0</property> | ||||||
|  | 	      <property name="ypad">0</property> | ||||||
|  | 	    </widget> | ||||||
|  | 	    <packing> | ||||||
|  | 	      <property name="padding">0</property> | ||||||
|  | 	      <property name="expand">False</property> | ||||||
|  | 	      <property name="fill">False</property> | ||||||
|  | 	    </packing> | ||||||
|  | 	  </child> | ||||||
|  |  | ||||||
|  | 	  <child> | ||||||
|  | 	    <widget class="GtkFrame" id="frame20"> | ||||||
|  | 	      <property name="border_width">6</property> | ||||||
|  | 	      <property name="visible">True</property> | ||||||
|  | 	      <property name="label_xalign">0</property> | ||||||
|  | 	      <property name="label_yalign">0.5</property> | ||||||
|  | 	      <property name="shadow_type">GTK_SHADOW_IN</property> | ||||||
|  |  | ||||||
|  | 	      <child> | ||||||
|  | 		<widget class="GtkAlignment" id="alignment33"> | ||||||
|  | 		  <property name="visible">True</property> | ||||||
|  | 		  <property name="xalign">0.5</property> | ||||||
|  | 		  <property name="yalign">0.5</property> | ||||||
|  | 		  <property name="xscale">1</property> | ||||||
|  | 		  <property name="yscale">1</property> | ||||||
|  | 		  <property name="top_padding">0</property> | ||||||
|  | 		  <property name="bottom_padding">0</property> | ||||||
|  | 		  <property name="left_padding">12</property> | ||||||
|  | 		  <property name="right_padding">0</property> | ||||||
|  |  | ||||||
|  | 		  <child> | ||||||
|  | 		    <widget class="GtkTable" id="table17"> | ||||||
|  | 		      <property name="border_width">6</property> | ||||||
|  | 		      <property name="visible">True</property> | ||||||
|  | 		      <property name="n_rows">2</property> | ||||||
|  | 		      <property name="n_columns">2</property> | ||||||
|  | 		      <property name="homogeneous">False</property> | ||||||
|  | 		      <property name="row_spacing">6</property> | ||||||
|  | 		      <property name="column_spacing">6</property> | ||||||
|  |  | ||||||
|  | 		      <child> | ||||||
|  | 			<widget class="GtkLabel" id="label176"> | ||||||
|  | 			  <property name="visible">True</property> | ||||||
|  | 			  <property name="label" translatable="yes">Workstation Password :</property> | ||||||
|  | 			  <property name="use_underline">False</property> | ||||||
|  | 			  <property name="use_markup">False</property> | ||||||
|  | 			  <property name="justify">GTK_JUSTIFY_LEFT</property> | ||||||
|  | 			  <property name="wrap">False</property> | ||||||
|  | 			  <property name="selectable">False</property> | ||||||
|  | 			  <property name="xalign">1</property> | ||||||
|  | 			  <property name="yalign">0.5</property> | ||||||
|  | 			  <property name="xpad">0</property> | ||||||
|  | 			  <property name="ypad">0</property> | ||||||
|  | 			</widget> | ||||||
|  | 			<packing> | ||||||
|  | 			  <property name="left_attach">0</property> | ||||||
|  | 			  <property name="right_attach">1</property> | ||||||
|  | 			  <property name="top_attach">0</property> | ||||||
|  | 			  <property name="bottom_attach">1</property> | ||||||
|  | 			  <property name="x_options">fill</property> | ||||||
|  | 			  <property name="y_options"></property> | ||||||
|  | 			</packing> | ||||||
|  | 		      </child> | ||||||
|  |  | ||||||
|  | 		      <child> | ||||||
|  | 			<widget class="GtkLabel" id="label177"> | ||||||
|  | 			  <property name="visible">True</property> | ||||||
|  | 			  <property name="label" translatable="yes">Re-enter Password :</property> | ||||||
|  | 			  <property name="use_underline">False</property> | ||||||
|  | 			  <property name="use_markup">False</property> | ||||||
|  | 			  <property name="justify">GTK_JUSTIFY_LEFT</property> | ||||||
|  | 			  <property name="wrap">False</property> | ||||||
|  | 			  <property name="selectable">False</property> | ||||||
|  | 			  <property name="xalign">1</property> | ||||||
|  | 			  <property name="yalign">0.5</property> | ||||||
|  | 			  <property name="xpad">0</property> | ||||||
|  | 			  <property name="ypad">0</property> | ||||||
|  | 			</widget> | ||||||
|  | 			<packing> | ||||||
|  | 			  <property name="left_attach">0</property> | ||||||
|  | 			  <property name="right_attach">1</property> | ||||||
|  | 			  <property name="top_attach">1</property> | ||||||
|  | 			  <property name="bottom_attach">2</property> | ||||||
|  | 			  <property name="x_options">fill</property> | ||||||
|  | 			  <property name="y_options"></property> | ||||||
|  | 			</packing> | ||||||
|  | 		      </child> | ||||||
|  |  | ||||||
|  | 		      <child> | ||||||
|  | 			<widget class="GtkEntry" id="entryDesktopPassword1"> | ||||||
|  | 			  <property name="visible">True</property> | ||||||
|  | 			  <property name="can_focus">True</property> | ||||||
|  | 			  <property name="editable">True</property> | ||||||
|  | 			  <property name="visibility">False</property> | ||||||
|  | 			  <property name="max_length">0</property> | ||||||
|  | 			  <property name="text" translatable="yes"></property> | ||||||
|  | 			  <property name="has_frame">True</property> | ||||||
|  | 			  <property name="invisible_char">*</property> | ||||||
|  | 			  <property name="activates_default">False</property> | ||||||
|  | 			  <signal name="activate" handler="on_entryDesktopPassword1_activate" last_modification_time="Tue, 21 Feb 2006 18:30:33 GMT"/> | ||||||
|  | 			</widget> | ||||||
|  | 			<packing> | ||||||
|  | 			  <property name="left_attach">1</property> | ||||||
|  | 			  <property name="right_attach">2</property> | ||||||
|  | 			  <property name="top_attach">0</property> | ||||||
|  | 			  <property name="bottom_attach">1</property> | ||||||
|  | 			  <property name="y_options"></property> | ||||||
|  | 			</packing> | ||||||
|  | 		      </child> | ||||||
|  |  | ||||||
|  | 		      <child> | ||||||
|  | 			<widget class="GtkEntry" id="entryDesktopPassword2"> | ||||||
|  | 			  <property name="visible">True</property> | ||||||
|  | 			  <property name="can_focus">True</property> | ||||||
|  | 			  <property name="editable">True</property> | ||||||
|  | 			  <property name="visibility">False</property> | ||||||
|  | 			  <property name="max_length">0</property> | ||||||
|  | 			  <property name="text" translatable="yes"></property> | ||||||
|  | 			  <property name="has_frame">True</property> | ||||||
|  | 			  <property name="invisible_char">*</property> | ||||||
|  | 			  <property name="activates_default">False</property> | ||||||
|  | 			  <signal name="activate" handler="on_entryDesktopPassword2_activate" last_modification_time="Tue, 21 Feb 2006 18:31:48 GMT"/> | ||||||
|  | 			</widget> | ||||||
|  | 			<packing> | ||||||
|  | 			  <property name="left_attach">1</property> | ||||||
|  | 			  <property name="right_attach">2</property> | ||||||
|  | 			  <property name="top_attach">1</property> | ||||||
|  | 			  <property name="bottom_attach">2</property> | ||||||
|  | 			  <property name="y_options"></property> | ||||||
|  | 			</packing> | ||||||
|  | 		      </child> | ||||||
|  | 		    </widget> | ||||||
|  | 		  </child> | ||||||
|  | 		</widget> | ||||||
|  | 	      </child> | ||||||
|  | 	    </widget> | ||||||
|  | 	    <packing> | ||||||
|  | 	      <property name="padding">0</property> | ||||||
|  | 	      <property name="expand">True</property> | ||||||
|  | 	      <property name="fill">True</property> | ||||||
|  | 	    </packing> | ||||||
|  | 	  </child> | ||||||
|  | 	</widget> | ||||||
|  | 	<packing> | ||||||
|  | 	  <property name="padding">0</property> | ||||||
|  | 	  <property name="expand">True</property> | ||||||
|  | 	  <property name="fill">True</property> | ||||||
|  | 	</packing> | ||||||
|  |       </child> | ||||||
|  |     </widget> | ||||||
|  |   </child> | ||||||
|  | </widget> | ||||||
|  |  | ||||||
| </glade-interface> | </glade-interface> | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user