added overload for subscribe that includes a zone filter. it is unimplemented in...
[profile/ivi/automotive-message-broker.git] / plugins / bluemonkey / authenticate.cpp
1 #include "authenticate.h"
2 #include <QSettings>
3 #include <QtScript>
4
5 Authenticate::Authenticate(std::map<std::string, std::string> config, QObject *parent) :
6     QObject(parent)
7 {
8         QSettings settings;
9         authorized = settings.value("authorized").toStringList();
10
11         QScriptEngine engine;
12
13         QScriptValue eventEngineValue = engine.newQObject(this);
14         engine.globalObject().setProperty("auth", eventEngineValue);
15
16         QString str = config["authSettings"].c_str();
17
18         QFile file(str);
19         if(!file.open(QIODevice::ReadOnly))
20         {
21                 qDebug()<<"failed to open config file: "<<str;
22                 return;
23         }
24
25         QString script = file.readAll();
26
27         file.close();
28
29         engine.evaluate(script);
30
31 }
32
33 bool Authenticate::isAuthorized(QString prefix)
34 {
35         return(authorized.contains(prefix));
36 }
37
38 bool Authenticate::authorize(QString prefix, QString password)
39 {
40         if(password == mPin && !authorized.contains(prefix))
41         {
42                 authorized.append(prefix);
43                 QSettings settings;
44                 settings.setValue("authorized", authorized);
45                 qDebug("authorized");
46
47                 return true;
48         }
49
50         qDebug("failed to authorize or already authorized");
51         return false;
52 }