00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019 #if !defined(mascot_session_DA3EC794_90F8_4c4f_AD5D_13C3B6971A51__INCLUDED_)
00020 #define mascot_session_DA3EC794_90F8_4c4f_AD5D_13C3B6971A51__INCLUDED_
00021
00022
00023
00024 #include <string>
00025 #include <set>
00026 #include <vector>
00027 #include <map>
00028 #include <time.h>
00029
00030 namespace matrix_science {
00035 class ms_security;
00036 class ms_security_options;
00037
00039
00122 class MS_MASCOTRESFILE_API ms_session : public ms_errors
00123 {
00124 public:
00126 ms_session(const std::string session_id = "");
00127
00129 ms_session(const std::string userName,
00130 const std::string userPassword);
00131
00133 ms_session(const std::string userName,
00134 const std::string connectionID,
00135 const std::string database);
00136
00138 ms_session(const int timeout, const std::string prefix);
00139
00140
00141 #if !defined(DOXYGEN_SHOULD_SKIP_THIS)
00142 ms_session(const ms_session& src);
00143 #endif
00144
00145
00146
00147
00148
00149
00150 #if !defined(DOXYGEN_SHOULD_SKIP_THIS) && !defined(SWIG)
00151 ms_session(const ms_security &sec,
00152 const std::string &session_id);
00153 ms_session(const ms_security &sec,
00154 const ms_user & user);
00155 ms_session& operator =(const ms_session& right);
00156 #endif
00157
00158 ~ms_session();
00159
00160 public:
00162 std::string getID() const;
00163
00165 int getUserID() const;
00166
00168 std::string getUserName() const;
00169
00171 std::string getFullUserName() const;
00172
00174 std::string getEmailAddress() const;
00175
00177 bool isSecurityEnabled() const;
00178
00180 time_t getLastAccessed() const;
00181
00183 time_t getTimeout() const;
00184
00186 std::string getIPAddress() const;
00187
00189 matrix_science::ms_security_tasks getPermittedTasks() const;
00190
00192 bool setPermittedTasks(const matrix_science::ms_security_tasks & val);
00193
00195 std::map<std::string, std::string> getParams() const;
00196
00198 bool isPermitted(const int taskID) const;
00199
00201 bool isPermitted_long(const int taskID, const long value) const;
00202
00204 bool isPermitted_double(const int taskID, const double value) const;
00205
00207 bool isPermitted_string(const int taskID, const std::string value) const;
00208
00210 bool isFastaPermitted(const std::string database) const;
00211
00213 bool canResultsFileBeViewed(const int userID) const;
00214
00216 bool saveStringParam(const std::string name, const std::string param);
00217
00219 bool saveIntParam(const std::string name, int param);
00220
00222 bool saveLongParam(const std::string name, long param);
00223
00225 bool saveTimeParam(const std::string name, time_t param);
00226
00228 bool saveDoubleParam(const std::string name, double param);
00229
00231 bool saveBoolParam(const std::string name, bool param);
00232
00233 #ifndef SWIG
00234
00235 bool getStringParam(const std::string name, std::string & param) const;
00236 #endif
00237
00238 std::string getStringParam(const std::string name) const;
00239
00241 bool getIntParam(const std::string name, int & param) const;
00242
00244 int getIntParam(const std::string name) const;
00245
00247 bool getLongParam(const std::string name, long & param) const;
00248
00250 long getLongParam(const std::string name) const;
00251
00253 bool getTimeParam(const std::string name, time_t & param) const;
00254
00256 time_t getTimeParam(const std::string name) const;
00257
00259 bool getDoubleParam(const std::string name, double & param) const;
00260
00262 double getDoubleParam(const std::string name) const;
00263
00265 bool getBoolParam(const std::string name, bool & param) const;
00266
00268 bool clearParam(const std::string name);
00269
00271 bool destroy();
00272
00274 bool isTimedOut() const;
00275
00277 matrix_science::ms_user::usertype getUserType() const;
00278
00280 bool update(const ms_security & sec);
00281
00283 std::vector<int> getSpoofableUsers() const;
00284
00285 private:
00286 typedef std::map<std::string, std::string> param_t;
00287 std::string sessionID_;
00288 param_t params_;
00289 param_t customParams_;
00290 typedef std::set<std::string> cpIdentifier_t;
00291 cpIdentifier_t systemIdentifiers_;
00292 ms_security_tasks permittedTasks_;
00293 bool saveParamShouldSaveFile_;
00294 bool allowParamAndFileSaving_;
00295
00296 void init();
00297 bool loadSessionFromFile(const ms_security * const sec);
00298 bool saveSessionToFile(const ms_security * const sec);
00299 void setDisabledSession(const ms_security_options & opts);
00300 bool setCommandLineSession(const ms_security_options & secOpt);
00301 bool setGuestSession();
00302 bool doesSessionFileExist(const std::string sess);
00303 bool getAllParams(const ms_user & u, const ms_security & sec);
00304 std::string getSessionIDFromUser(const ms_user & user);
00305 std::string getWebSvrAuthSessionID(std::string userName = "");
00306 bool checkIPAddressOrComputerName(const std::string ipAddress,
00307 std::string & sessionID);
00308 bool checkAgentString(std::string & sessionID);
00309 bool validateIntegraPassword(const ms_user & u,
00310 const ms_security_options & secOpt,
00311 const std::string & userPassword,
00312 std::string & session_id,
00313 int & errorFlag) const;
00314 bool verifyIntegraConnection() const;
00315 bool isSessionIdentical(const ms_session & sess) const;
00316 void copyFrom(const ms_session * src);
00317 void createSessionFromID(const std::string session_id);
00318 };
00320 }
00321 #endif // !defined(mascot_session_DA3EC794_90F8_4c4f_AD5D_13C3B6971A51__INCLUDED_)