added timer to suppress viewing values(passwords) for micasa store after a preset time in seconds.
This commit is contained in:
parent
22fb775d99
commit
64cfa770fc
@ -1,3 +1,8 @@
|
|||||||
|
-------------------------------------------------------------------
|
||||||
|
Tue Apr 4 14:24:10 MST 2006 - jnorman@novell.com
|
||||||
|
- added timer to suppress viewing values(passwords) for micasa store
|
||||||
|
after a preset time in seconds.
|
||||||
|
|
||||||
-------------------------------------------------------------------
|
-------------------------------------------------------------------
|
||||||
Mon Apr 3 8:45:10 MST 2006 - cmashayekhi@novell.com
|
Mon Apr 3 8:45:10 MST 2006 - cmashayekhi@novell.com
|
||||||
- micasad is set to be off on install and be turned on from YAST
|
- micasad is set to be off on install and be turned on from YAST
|
||||||
|
107
c_gui/MiCasa.cs
107
c_gui/MiCasa.cs
@ -26,6 +26,8 @@ namespace Novell.CASA.GUI {
|
|||||||
using System;
|
using System;
|
||||||
using System.Collections;
|
using System.Collections;
|
||||||
using System.Collections.Specialized;
|
using System.Collections.Specialized;
|
||||||
|
using System.Threading;
|
||||||
|
|
||||||
using Gtk;
|
using Gtk;
|
||||||
using Glade;
|
using Glade;
|
||||||
using Novell.CASA.MiCasa.Common;
|
using Novell.CASA.MiCasa.Common;
|
||||||
@ -46,6 +48,10 @@ public class MiCasa : Store
|
|||||||
ArrayList arrDeletedKeys = null;
|
ArrayList arrDeletedKeys = null;
|
||||||
|
|
||||||
private SecretStore m_store = null;
|
private SecretStore m_store = null;
|
||||||
|
private String m_sRememberFor = "5";
|
||||||
|
private DateTime m_dtRememberMPUntil = DateTime.Now;
|
||||||
|
private Thread m_tRememberTimer = null;
|
||||||
|
private int m_iRememberSeconds = 5;
|
||||||
|
|
||||||
#region Glade Widgets
|
#region Glade Widgets
|
||||||
|
|
||||||
@ -98,7 +104,12 @@ public class MiCasa : Store
|
|||||||
Gtk.Label labelLinkSecretID,
|
Gtk.Label labelLinkSecretID,
|
||||||
labelLinkKeyID,
|
labelLinkKeyID,
|
||||||
label86,
|
label86,
|
||||||
label88;
|
label88,
|
||||||
|
labelRememberFor,
|
||||||
|
labelSeconds;
|
||||||
|
|
||||||
|
[Glade.Widget]
|
||||||
|
Gtk.SpinButton spinbuttonRememberFor;
|
||||||
#endregion
|
#endregion
|
||||||
|
|
||||||
|
|
||||||
@ -472,29 +483,43 @@ public class MiCasa : Store
|
|||||||
{
|
{
|
||||||
TreeViewColumn tvCol;
|
TreeViewColumn tvCol;
|
||||||
|
|
||||||
if( tvKeyValue.Model.IterNChildren() > 0 )
|
if (tvKeyValue.Model.IterNChildren() > 0)
|
||||||
if( true == cbuttonShowPassword.Active)
|
{
|
||||||
{
|
|
||||||
// prompt user for MasterPassword
|
|
||||||
|
|
||||||
Glade.XML gxmlTemp = new Glade.XML (Common.GladeFile, "dialogLogin", null);
|
if ((true == cbuttonShowPassword.Active) && (m_dtRememberMPUntil.CompareTo(DateTime.Now) > 0))
|
||||||
gxmlTemp.Autoconnect (this);
|
{
|
||||||
dialogLogin.TransientFor = dialogManageSecret;
|
tvKeyValue.RemoveColumn(tvKeyValue.GetColumn(1));
|
||||||
|
tvCol = new TreeViewColumn("Value", cellEditable, "text", 1);
|
||||||
|
tvKeyValue.InsertColumn(tvCol, 1);
|
||||||
|
}
|
||||||
|
else if (true == cbuttonShowPassword.Active)
|
||||||
|
{
|
||||||
|
// prompt user for MasterPassword
|
||||||
|
|
||||||
label86.Text = "Enter your Master Password to view values";
|
Glade.XML gxmlTemp = new Glade.XML(Common.GladeFile, "dialogLogin", null);
|
||||||
entryMasterPassword3.Text="";
|
gxmlTemp.Autoconnect(this);
|
||||||
entryMasterPassword3.HasFocus = true;
|
dialogLogin.TransientFor = dialogManageSecret;
|
||||||
label88.Hide();
|
|
||||||
entryMasterPassword4.Hide();
|
|
||||||
dialogLogin.Show();
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
tvKeyValue.RemoveColumn(tvKeyValue.GetColumn(1));
|
|
||||||
tvCol = new TreeViewColumn("Value", cellEditable, "text", 2);
|
|
||||||
tvKeyValue.InsertColumn(tvCol, 1);
|
|
||||||
}
|
|
||||||
|
|
||||||
|
label86.Text = "Enter your Master Password to view values";
|
||||||
|
entryMasterPassword3.Text = "";
|
||||||
|
entryMasterPassword3.HasFocus = true;
|
||||||
|
label88.Hide();
|
||||||
|
entryMasterPassword4.Hide();
|
||||||
|
|
||||||
|
labelRememberFor.Visible = true;
|
||||||
|
labelSeconds.Visible = true;
|
||||||
|
spinbuttonRememberFor.Visible = true;
|
||||||
|
spinbuttonRememberFor.Text = m_sRememberFor;
|
||||||
|
|
||||||
|
dialogLogin.Show();
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
tvKeyValue.RemoveColumn(tvKeyValue.GetColumn(1));
|
||||||
|
tvCol = new TreeViewColumn("Value", cellEditable, "text", 2);
|
||||||
|
tvKeyValue.InsertColumn(tvCol, 1);
|
||||||
|
}
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
public void okbuttonLogin_clicked(object abj, EventArgs args)
|
public void okbuttonLogin_clicked(object abj, EventArgs args)
|
||||||
@ -508,7 +533,18 @@ public class MiCasa : Store
|
|||||||
tvKeyValue.RemoveColumn(tvKeyValue.GetColumn(1));
|
tvKeyValue.RemoveColumn(tvKeyValue.GetColumn(1));
|
||||||
tvCol = new TreeViewColumn("Value", cellEditable, "text", 1);
|
tvCol = new TreeViewColumn("Value", cellEditable, "text", 1);
|
||||||
tvKeyValue.InsertColumn(tvCol, 1);
|
tvKeyValue.InsertColumn(tvCol, 1);
|
||||||
|
|
||||||
|
// get seconds to remember
|
||||||
|
m_sRememberFor = spinbuttonRememberFor.Text;
|
||||||
|
if (m_sRememberFor != null)
|
||||||
|
{
|
||||||
|
DateTime dtNow = DateTime.Now;
|
||||||
|
m_iRememberSeconds = int.Parse(m_sRememberFor);
|
||||||
|
m_dtRememberMPUntil = dtNow.AddSeconds(m_iRememberSeconds);
|
||||||
|
}
|
||||||
dialogLogin.Destroy();
|
dialogLogin.Destroy();
|
||||||
|
if (m_iRememberSeconds > 0)
|
||||||
|
StartRememberTimer();
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -539,6 +575,35 @@ public class MiCasa : Store
|
|||||||
args.RetVal = true;
|
args.RetVal = true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void StartRememberTimer()
|
||||||
|
{
|
||||||
|
//if (m_tRememberTimer == null)
|
||||||
|
{
|
||||||
|
m_tRememberTimer = new Thread(new ThreadStart(ResetTimerThreadFn));
|
||||||
|
m_tRememberTimer.Start();
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
internal void ResetTimerThreadFn()
|
||||||
|
{
|
||||||
|
TreeViewColumn tvCol;
|
||||||
|
Thread.Sleep(m_iRememberSeconds * 1000);
|
||||||
|
if (tvKeyValue != null)
|
||||||
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
tvKeyValue.RemoveColumn(tvKeyValue.GetColumn(1));
|
||||||
|
tvCol = new TreeViewColumn("Value", cellEditable, "text", 2);
|
||||||
|
tvKeyValue.InsertColumn(tvCol, 1);
|
||||||
|
cbuttonShowPassword.Active = false;
|
||||||
|
}
|
||||||
|
catch
|
||||||
|
{
|
||||||
|
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
public void on_entryMasterPassword3_activate(object obj, EventArgs args)
|
public void on_entryMasterPassword3_activate(object obj, EventArgs args)
|
||||||
{
|
{
|
||||||
if( "" != entryMasterPassword3.Text )
|
if( "" != entryMasterPassword3.Text )
|
||||||
|
File diff suppressed because it is too large
Load Diff
Loading…
Reference in New Issue
Block a user