New upstream version 23.2.1+dfsg1
This commit is contained in:
parent
cdc9a9fc87
commit
b14f9eae6d
1017 changed files with 37232 additions and 11111 deletions
71
UI/auth-base.cpp
Normal file
71
UI/auth-base.cpp
Normal file
|
|
@ -0,0 +1,71 @@
|
|||
#include "auth-base.hpp"
|
||||
#include "window-basic-main.hpp"
|
||||
|
||||
#include <vector>
|
||||
#include <map>
|
||||
|
||||
struct AuthInfo {
|
||||
Auth::Def def;
|
||||
Auth::create_cb create;
|
||||
};
|
||||
|
||||
static std::vector<AuthInfo> authDefs;
|
||||
|
||||
void Auth::RegisterAuth(const Def &d, create_cb create)
|
||||
{
|
||||
AuthInfo info = {d, create};
|
||||
authDefs.push_back(info);
|
||||
}
|
||||
|
||||
std::shared_ptr<Auth> Auth::Create(const std::string &service)
|
||||
{
|
||||
for (auto &a : authDefs) {
|
||||
if (service.find(a.def.service) != std::string::npos) {
|
||||
return a.create();
|
||||
}
|
||||
}
|
||||
|
||||
return nullptr;
|
||||
}
|
||||
|
||||
Auth::Type Auth::AuthType(const std::string &service)
|
||||
{
|
||||
for (auto &a : authDefs) {
|
||||
if (service.find(a.def.service) != std::string::npos) {
|
||||
return a.def.type;
|
||||
}
|
||||
}
|
||||
|
||||
return Type::None;
|
||||
}
|
||||
|
||||
void Auth::Load()
|
||||
{
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
const char *typeStr = config_get_string(main->Config(), "Auth", "Type");
|
||||
if (!typeStr) typeStr = "";
|
||||
|
||||
main->auth = Create(typeStr);
|
||||
if (main->auth) {
|
||||
if (main->auth->LoadInternal()) {
|
||||
main->auth->LoadUI();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void Auth::Save()
|
||||
{
|
||||
OBSBasic *main = OBSBasic::Get();
|
||||
Auth *auth = main->auth.get();
|
||||
if (!auth) {
|
||||
if (config_has_user_value(main->Config(), "Auth", "Type")) {
|
||||
config_remove_value(main->Config(), "Auth", "Type");
|
||||
config_save_safe(main->Config(), "tmp", nullptr);
|
||||
}
|
||||
return;
|
||||
}
|
||||
|
||||
config_set_string(main->Config(), "Auth", "Type", auth->service());
|
||||
auth->SaveInternal();
|
||||
config_save_safe(main->Config(), "tmp", nullptr);
|
||||
}
|
||||
Loading…
Add table
Add a link
Reference in a new issue