![]() |
AnyConnect Secure Mobility Client 4.8.02045
|
00001 /************************************************************************** 00002 * Copyright (c) 2008, Cisco Systems, All Rights Reserved 00003 *************************************************************************** 00004 * 00005 * File: PromptEntryBase.h 00006 * Date: 01/2008 00007 * 00008 *************************************************************************** 00009 * 00010 * Prompt Entry base class implementation for the Client API. 00011 * 00012 ***************************************************************************/ 00013 00014 #ifndef _PROMPTENTRYBASE_ 00015 #define _PROMPTENTRYBASE_ 00016 00017 00018 #include "api.h" 00019 #include <list> 00020 00021 00022 #define PROMPT_ENTRY_VALUE_TRUE _T("true") 00023 #define PROMPT_ENTRY_VALUE_FALSE _T("false") 00024 00025 class VPN_VPNAPI PromptEntryBase 00026 { 00027 public: 00028 00029 bool setValue(const tstring& value); 00030 bool clearValue(); 00031 00032 const tstring &getPromptName() const; 00033 00034 const tstring &getPromptLabel() const; 00035 00036 bool isEnabled() const; 00037 00038 void setEnabled(bool bIsEnabled); 00039 00040 bool isVisible() const; 00041 00042 void setVisible(bool bIsVisible); 00043 00044 // if this is a PromptEntry that has a list of values 00045 // (e.g. combo box style) the default will be to mark it as a group 00046 // combo. This method allows the group designation to be set directly. 00047 // 00048 void setEntryGroup(bool bIsEntryGroup); 00049 00050 00051 PromptEntryBase(tstring PromptName, 00052 tstring PromptLabel, 00053 PromptType promptType = Prompt_Input, 00054 tstring DefaultValue = EmptyString, 00055 ApiStringMap LabelValues = EmptyLabelValues); 00056 00057 00058 void setPromptLabel(tstring label); 00059 00060 // In cases of prompt types with options (checkbox, combobox), 00061 // this will return the translated label (of the option). 00062 const tstring &getValue() const; 00063 00064 // this function returns the internal representation of the value 00065 const tstring &getTrueValue() const; 00066 00067 const std::list<tstring> &getValueOptions() const; 00068 00069 bool isEntryGroup() const; 00070 00071 bool isReadOnly() const; 00072 00073 PromptType getPromptType() const; 00074 00075 size_t GetGroupAttributesCount(); 00076 00077 00078 ~PromptEntryBase(); 00079 00080 static const tstring EmptyString; 00081 00082 static const std::list<tstring> EmptyList; 00083 00084 static const ApiStringMap EmptyLabelValues; 00085 00086 PromptEntryBase& operator=(const PromptEntryBase& assignmentOperator); 00087 00088 PromptEntryBase(const PromptEntryBase& existingEntry); 00089 00090 00091 private: 00092 00093 tstring ms_PromptName; 00094 00095 tstring ms_PromptLabel; 00096 00097 PromptType me_PromptType; 00098 00099 tstring ms_Value; 00100 00101 ApiStringMap msm_LabelValueMap; 00102 00103 std::list<tstring> mls_ValueOptions; 00104 00105 bool mb_IsEntryGroup; 00106 00107 bool mb_Enabled; 00108 00109 bool mb_Visible; 00110 00111 public: 00112 00113 class GroupAttributes 00114 { 00115 public: 00116 GroupAttributes() : 00117 CredRequired(true), 00118 UsesSDIAuth(false), 00119 UsernameEditable(true), 00120 Username(), 00121 SecondaryUsernameEditable(true), 00122 SecondaryUsername(), 00123 UsesSecondaryAuth(false) {} 00124 00125 bool CredRequired; 00126 bool UsesSDIAuth; 00127 bool UsernameEditable; 00128 tstring Username; 00129 bool SecondaryUsernameEditable; 00130 tstring SecondaryUsername; 00131 bool UsesSecondaryAuth; 00132 }; 00133 00134 class SingleAttributes 00135 { 00136 public: 00137 SingleAttributes() : 00138 SecondaryAuthEntry(false), 00139 SSOTimeoutSeconds(0) {} 00140 00141 bool SecondaryAuthEntry; 00142 tstring SSOURL; 00143 tstring SSOFinalURL; 00144 tstring SSOTokenCookieName; 00145 tstring SSOErrorCookieName; 00146 unsigned int SSOTimeoutSeconds; 00147 tstring SSOUserAgent; 00148 }; 00149 00150 typedef std::map<tstring, GroupAttributes> GroupAttributeMap; 00151 00152 const GroupAttributes& getGroupAttributes(const tstring& group) const; 00153 void setGroupAttributeMap(const GroupAttributeMap& groupAttributeMap); 00154 00155 const SingleAttributes& getSingleAttributes() const; 00156 void setSingleAttributes(const SingleAttributes& singleAttributes); 00157 00158 private: 00159 00160 void copyGroupAttributeMap (const GroupAttributeMap &source, 00161 GroupAttributeMap &destination); 00162 static const GroupAttributes DefaultGroupAttributes; 00163 GroupAttributeMap m_GroupAttributeMap; 00164 00165 SingleAttributes m_SingleAttributes; 00166 }; 00167 00168 00169 #endif // _PROMPTENTRYBASE_