OpenTwin 0.1
OpenTwin
 
Loading...
Searching...
No Matches
UserManagement.h
Go to the documentation of this file.
1/*
2 * UserManagement.h
3 *
4 * Author: Peter Thoma
5 * Copyright (c) 2020 openTwin
6 */
7
8#pragma once
9
10// Frontend header
11#include "LoginData.h"
12
13// std header
14#include <string>
15#include <list>
16
17// BSON header
18#include <bsoncxx/document/view.hpp>
19#include <bsoncxx/builder/basic/document.hpp>
20
22{
23public:
25 UserManagement(const LoginData& _loginData);
27
28 void setAuthServerURL(const std::string &url);
29 void setDatabaseURL(const std::string &url);
30 bool checkConnection(void) const;
32 bool checkConnectionDataBase(const std::string &userName, const std::string &password) const;
33 void initializeNewSession(void);
34
35 bool addUser(const std::string &userName, const std::string &password) const;
36 bool deleteUser(const std::string &userName) const;
37 //bool changePassword(const std::string &oldPassword, const std::string &newPassword);
38
39 bool checkUserName(const std::string &userName) const;
40 bool checkPassword(const std::string &userName, const std::string &password, bool isEncryptedPassword, std::string& sessionUser, std::string& sessionPassword, std::string &validPassword, std::string &validEncryptedPassword) const;
41
42 bool storeSetting(const std::string &settingName, const std::string &settingString);
43 std::string restoreSetting(const std::string &settingName);
44
45 bool addRecentProject(const std::string &projectName);
46 bool removeRecentProject(const std::string &projectName);
47 void getListOfRecentProjects(std::list<std::string> &recentProjectList);
48
49 std::string getUserSettingsCollection(void);
50
51private:
52 bool hasError(const std::string& _response) const;
53 bool hasSuccessful(const std::string& _response) const;
54 bool initializeDatabaseConnection(void);
55 bool ensureSettingsCollectionCanBeAccessed(void);
56 bool storeListOfRecentProjects(std::list<std::string> &recentProjectList);
57
58 const int maxNumberRecentProjects;
59
60 bool isConnected;
61 std::string authServerURL;
62 std::string databaseURL;
63 const std::string settingsDataBaseName;
64 static std::string userSettingsCollection;
65};
Definition LoginData.h:14
Definition UserManagement.h:22
bool checkConnectionAuthorizationService(void) const
Definition UserManagement.cpp:76
void getListOfRecentProjects(std::list< std::string > &recentProjectList)
Definition UserManagement.cpp:508
bool checkConnectionDataBase(const std::string &userName, const std::string &password) const
Definition UserManagement.cpp:92
bool deleteUser(const std::string &userName) const
Definition UserManagement.cpp:142
UserManagement()
Definition UserManagement.cpp:34
std::string restoreSetting(const std::string &settingName)
Definition UserManagement.cpp:362
bool checkPassword(const std::string &userName, const std::string &password, bool isEncryptedPassword, std::string &sessionUser, std::string &sessionPassword, std::string &validPassword, std::string &validEncryptedPassword) const
Definition UserManagement.cpp:233
bool addUser(const std::string &userName, const std::string &password) const
Definition UserManagement.cpp:121
bool storeSetting(const std::string &settingName, const std::string &settingString)
Definition UserManagement.cpp:310
std::string getUserSettingsCollection(void)
Definition UserManagement.cpp:428
~UserManagement()
Definition UserManagement.cpp:52
void initializeNewSession(void)
Definition UserManagement.cpp:116
bool checkConnection(void) const
Definition UserManagement.cpp:67
void setDatabaseURL(const std::string &url)
Definition UserManagement.cpp:62
bool removeRecentProject(const std::string &projectName)
Definition UserManagement.cpp:493
bool addRecentProject(const std::string &projectName)
Definition UserManagement.cpp:465
void setAuthServerURL(const std::string &url)
Definition UserManagement.cpp:57
bool checkUserName(const std::string &userName) const
Definition UserManagement.cpp:210