Exemple #1
0
        private void LoadSecurityOptions()
        {
            AceWorkspaceLocking aceWL = Program.Config.Security.WorkspaceLocking;

            uint uLockTime = aceWL.LockAfterTime;
            bool bLockTime = (uLockTime > 0);

            m_numLockAfterTime.Value  = (bLockTime ? uLockTime : 300);
            m_cbLockAfterTime.Checked = bLockTime;
            if (AppConfigEx.IsOptionEnforced(aceWL, "LockAfterTime"))
            {
                m_cbLockAfterTime.Enabled = false;
            }

            uLockTime = aceWL.LockAfterGlobalTime;
            bLockTime = (uLockTime > 0);
            m_numLockAfterGlobalTime.Value  = (bLockTime ? uLockTime : 240);
            m_cbLockAfterGlobalTime.Checked = bLockTime;
            if (AppConfigEx.IsOptionEnforced(aceWL, "LockAfterGlobalTime"))
            {
                m_cbLockAfterGlobalTime.Enabled = false;
            }

            int nDefaultExpireDays = Program.Config.Defaults.NewEntryExpiresInDays;

            if (nDefaultExpireDays < 0)
            {
                m_cbDefaultExpireDays.Checked = false;
            }
            else
            {
                m_cbDefaultExpireDays.Checked = true;
                try { m_numDefaultExpireDays.Value = nDefaultExpireDays; }
                catch (Exception) { Debug.Assert(false); }
            }
            if (AppConfigEx.IsOptionEnforced(Program.Config.Defaults, "NewEntryExpiresInDays"))
            {
                m_cbDefaultExpireDays.Enabled = false;
            }

            int nClipClear = Program.Config.Security.ClipboardClearAfterSeconds;

            if (nClipClear >= 0)
            {
                m_cbClipClearTime.Checked = true;
                m_numClipClearTime.Value  = nClipClear;
            }
            else
            {
                m_cbClipClearTime.Checked = false;
            }
            if (AppConfigEx.IsOptionEnforced(Program.Config.Security, "ClipboardClearAfterSeconds"))
            {
                m_cbClipClearTime.Enabled = false;
            }

            m_lvSecurityOptions.Columns.Add(string.Empty, 200);             // Resize below

            ListViewGroup lvg = new ListViewGroup(KPRes.Options);

            m_lvSecurityOptions.Groups.Add(lvg);
            Debug.Assert(lvg.ListView == m_lvSecurityOptions);

            m_cdxSecurityOptions = new CheckedLVItemDXList(m_lvSecurityOptions, true);

            m_cdxSecurityOptions.CreateItem(aceWL, "LockOnWindowMinimize",
                                            lvg, KPRes.LockOnMinimize);
            m_cdxSecurityOptions.CreateItem(aceWL, "LockOnSessionSwitch",
                                            lvg, KPRes.LockOnSessionSwitch);
            m_cdxSecurityOptions.CreateItem(aceWL, "LockOnSuspend",
                                            lvg, KPRes.LockOnSuspend);
            m_cdxSecurityOptions.CreateItem(aceWL, "LockOnRemoteControlChange",
                                            lvg, KPRes.LockOnRemoteControlChange);
            m_cdxSecurityOptions.CreateItem(aceWL, "ExitInsteadOfLockingAfterTime",
                                            lvg, KPRes.ExitInsteadOfLockingAfterTime);
            m_cdxSecurityOptions.CreateItem(aceWL, "AlwaysExitInsteadOfLocking",
                                            lvg, KPRes.ExitInsteadOfLockingAlways);
            m_cdxSecurityOptions.CreateItem(Program.Config.Security, "ClipboardClearOnExit",
                                            lvg, KPRes.ClipboardClearOnExit);
            m_cdxSecurityOptions.CreateItem(Program.Config.Security,
                                            "UseClipboardViewerIgnoreFormat", lvg,
                                            KPRes.ClipboardViewerIgnoreFormat + " " + KPRes.NotRecommended);

            if (NativeLib.IsLibraryInstalled())
            {
                m_cdxSecurityOptions.CreateItem(Program.Config.Native, "NativeKeyTransformations",
                                                lvg, KPRes.NativeLibUse);
            }

            m_cdxSecurityOptions.CreateItem(Program.Config.Security, "MasterKeyOnSecureDesktop",
                                            lvg, KPRes.MasterKeyOnSecureDesktop);
            m_cdxSecurityOptions.CreateItem(Program.Config.Security, "ClearKeyCommandLineParams",
                                            lvg, KPRes.ClearKeyCmdLineParams);

            m_cdxSecurityOptions.UpdateData(false);
            m_lvSecurityOptions.Columns[0].Width = m_lvSecurityOptions.ClientRectangle.Width -
                                                   UIUtil.GetVScrollBarWidth() - 1;
        }
Exemple #2
0
        public OptionsPanel(KeeAgentExt ext)
        {
            InitializeComponent();
            if (Type.GetType("Mono.Runtime") != null)
            {
                const int xOffset = -30;
                const int yOffset = -30;
                helpButton.Left        += xOffset;
                customListViewEx.Width += xOffset;
                groupBox1.Width        += xOffset;
                groupBox1.Height       += yOffset;
            }

            this.ext = ext;
            isUnix   = Environment.OSVersion.Platform == PlatformID.Unix ||
                       Environment.OSVersion.Platform == PlatformID.MacOSX;

            // make transparent so tab styling shows
            SetStyle(ControlStyles.SupportsTransparentBackColor, true);
            BackColor = Color.Transparent;

            modeComboBox.Items.Add(Translatable.OptionAgentModeAuto);
            modeComboBox.Items.Add(Translatable.OptionAgentModeAgent);
            modeComboBox.Items.Add(Translatable.OptionAgentModeClient);
            switch (ext.Options.AgentMode)
            {
            case AgentMode.Client:
                modeComboBox.SelectedItem = Translatable.OptionAgentModeClient;
                break;

            case AgentMode.Server:
                modeComboBox.SelectedItem = Translatable.OptionAgentModeAgent;
                break;

            default:
                modeComboBox.SelectedItem = Translatable.OptionAgentModeAuto;
                break;
            }

            // additional configuration of list view
            customListViewEx.UseCompatibleStateImageBehavior = false;
            UIUtil.SetExplorerTheme(customListViewEx, false);

            optionsList = new CheckedLVItemDXList(customListViewEx, true);
            var optionsGroup = new ListViewGroup("common", "Options");

            customListViewEx.Groups.Add(optionsGroup);
            optionsList.CreateItem(ext.Options, "IgnoreMissingExternalKeyFiles",
                                   optionsGroup, Translatable.OptionIgnoreMissingExternalKeyFiles);
            optionsList.CreateItem(ext.Options, "AllowAccessFromNonElevatedProcess",
                                   optionsGroup, Translatable.OptionAllowAccessFromNonElevatedProcess);

            var agentModeOptionsGroup = new ListViewGroup("agentMode",
                                                          "Agent Mode Options (no effect in Client Mode)");

            customListViewEx.Groups.Add(agentModeOptionsGroup);
            optionsList.CreateItem(ext.Options, "AlwaysConfirm", agentModeOptionsGroup,
                                   Translatable.OptionAlwaysConfirm);
            optionsList.CreateItem(ext.Options, "ShowBalloon", agentModeOptionsGroup,
                                   Translatable.OptionShowBalloon);
            //mOptionsList.CreateItem(aExt.Options, "LoggingEnabled", optionsGroup,
            //  Translatable.optionLoggingEnabled);
            optionsList.CreateItem(ext.Options, "UnlockOnActivity", agentModeOptionsGroup,
                                   Translatable.OptionUnlockOnActivity);
            optionsList.CreateItem(ext.Options, "UserPicksKeyOnRequestIdentities",
                                   agentModeOptionsGroup, Translatable.OptionUserPicksKeyOnRequestIdentities);
            if (!isUnix)
            {
                optionsList.CreateItem(ext.Options, "UseWindowsOpenSshPipe",
                                       agentModeOptionsGroup, Translatable.OptionUseWindowsOpenSshPipe);
            }

            columnHeader.Width = customListViewEx.ClientRectangle.Width -
                                 UIUtil.GetVScrollBarWidth() - 1;
            if (isUnix)
            {
                groupBox1.Text = "Agent mode socket file";
                useCygwinSocketCheckBox.Visible = false;
                cygwinSocketPathTextBox.Text    = ext.Options.UnixSocketPath;
                cygwinSocketPathTextBox.Enabled = true;
                cygwinPathBrowseButton.Enabled  = true;
                useMsysSocketCheckBox.Visible   = false;
                label4.Visible = false;
                msysSocketPathTextBox.Visible = false;
                msysPathBrowseButton.Visible  = false;
            }
            else
            {
                useCygwinSocketCheckBox.Checked = ext.Options.UseCygwinSocket;
                cygwinSocketPathTextBox.Text    = ext.Options.CygwinSocketPath;
                useMsysSocketCheckBox.Checked   = ext.Options.UseMsysSocket;
                msysSocketPathTextBox.Text      = ext.Options.MsysSocketPath;
            }
            optionsList.UpdateData(false);
        }