]> git.stg.codes - stg.git/blobdiff - projects/stargazer/plugins/configuration/sgconfig/parser_admins.cpp
Do not flush indexes on stop (fixes #44).
[stg.git] / projects / stargazer / plugins / configuration / sgconfig / parser_admins.cpp
index c75dc8a727eeba6a1cc0f1f8299d86c4033034ad..0db867bb3e680e1132e59a7c7a1aaaac29a0891f 100644 (file)
@@ -22,7 +22,6 @@
 #include "parser_admins.h"
 
 #include "stg/admins.h"
 #include "parser_admins.h"
 
 #include "stg/admins.h"
-#include "stg/common.h"
 
 #include <strings.h> // strcasecmp
 
 
 #include <strings.h> // strcasecmp
 
@@ -31,18 +30,21 @@ using STG::PARSER::ADD_ADMIN;
 using STG::PARSER::DEL_ADMIN;
 using STG::PARSER::CHG_ADMIN;
 
 using STG::PARSER::DEL_ADMIN;
 using STG::PARSER::CHG_ADMIN;
 
+const char * GET_ADMINS::tag = "GetAdmins";
+const char * ADD_ADMIN::tag  = "AddAdmin";
+const char * DEL_ADMIN::tag  = "DelAdmin";
+const char * CHG_ADMIN::tag  = "ChgAdmin";
+
 void GET_ADMINS::CreateAnswer()
 {
 void GET_ADMINS::CreateAnswer()
 {
-    const PRIV * priv = currAdmin.GetPriv();
+    const PRIV * priv = m_currAdmin.GetPriv();
     if (!priv->adminChg)
     {
     if (!priv->adminChg)
     {
-        answer = "<Error Result=\"Error. Access denied.\"/>";
+        m_answer = "<Error Result=\"Error. Access denied.\"/>";
         return;
     }
 
         return;
     }
 
-    answer.clear();
-
-    answer += GetOpenTag();
+    m_answer = "<Admins>";
     ADMIN_CONF ac;
     int h = m_admins.OpenSearch();
 
     ADMIN_CONF ac;
     int h = m_admins.OpenSearch();
 
@@ -55,17 +57,17 @@ void GET_ADMINS::CreateAnswer()
                          (ac.priv.userAddDel << 8) +
                          (ac.priv.adminChg << 10) +
                          (ac.priv.tariffChg << 12);
                          (ac.priv.userAddDel << 8) +
                          (ac.priv.adminChg << 10) +
                          (ac.priv.tariffChg << 12);
-        answer += "<admin login=\"" + ac.login + "\" priv=\"" + x2str(p) + "\"/>";
+        m_answer += "<admin login=\"" + ac.login + "\" priv=\"" + x2str(p) + "\"/>";
     }
     m_admins.CloseSearch(h);
     }
     m_admins.CloseSearch(h);
-    answer += GetCloseTag();
+    m_answer += "</Admins>";
 }
 
 int DEL_ADMIN::Start(void *, const char * el, const char ** attr)
 {
 }
 
 int DEL_ADMIN::Start(void *, const char * el, const char ** attr)
 {
-    if (strcasecmp(el, tag.c_str()) == 0)
+    if (strcasecmp(el, m_tag.c_str()) == 0)
     {
     {
-        admin = attr[1];
+        m_admin = attr[1];
         return 0;
     }
     return -1;
         return 0;
     }
     return -1;
@@ -73,17 +75,17 @@ int DEL_ADMIN::Start(void *, const char * el, const char ** attr)
 
 void DEL_ADMIN::CreateAnswer()
 {
 
 void DEL_ADMIN::CreateAnswer()
 {
-    if (m_admins.Del(admin, &currAdmin) == 0)
-        answer = "<" + tag + " Result=\"Ok\"/>";
+    if (m_admins.Del(m_admin, &m_currAdmin) == 0)
+        m_answer = "<" + m_tag + " Result=\"Ok\"/>";
     else
     else
-        answer = "<" + tag + " Result=\"Error. " + m_admins.GetStrError() + "\"/>";
+        m_answer = "<" + m_tag + " Result=\"Error. " + m_admins.GetStrError() + "\"/>";
 }
 
 int ADD_ADMIN::Start(void *, const char *el, const char **attr)
 {
 }
 
 int ADD_ADMIN::Start(void *, const char *el, const char **attr)
 {
-    if (strcasecmp(el, tag.c_str()) == 0)
+    if (strcasecmp(el, m_tag.c_str()) == 0)
     {
     {
-        admin = attr[1];
+        m_admin = attr[1];
         return 0;
     }
     return -1;
         return 0;
     }
     return -1;
@@ -91,15 +93,15 @@ int ADD_ADMIN::Start(void *, const char *el, const char **attr)
 
 void ADD_ADMIN::CreateAnswer()
 {
 
 void ADD_ADMIN::CreateAnswer()
 {
-    if (m_admins.Add(admin, &currAdmin) == 0)
-        answer = "<" + tag + " Result=\"Ok\"/>";
+    if (m_admins.Add(m_admin, &m_currAdmin) == 0)
+        m_answer = "<" + m_tag + " Result=\"Ok\"/>";
     else
     else
-        answer = "<" + tag + " Result=\"Error. " + m_admins.GetStrError() + "\"/>";
+        m_answer = "<" + m_tag + " Result=\"Error. " + m_admins.GetStrError() + "\"/>";
 }
 
 int CHG_ADMIN::Start(void *, const char * el, const char ** attr)
 {
 }
 
 int CHG_ADMIN::Start(void *, const char * el, const char ** attr)
 {
-    if (strcasecmp(el, tag.c_str()) == 0)
+    if (strcasecmp(el, m_tag.c_str()) == 0)
     {
         for (size_t i = 0; i < 6; i += 2)
         {
     {
         for (size_t i = 0; i < 6; i += 2)
         {
@@ -139,7 +141,7 @@ void CHG_ADMIN::CreateAnswer()
 
         if (m_admins.Find(login, &origAdmin))
         {
 
         if (m_admins.Find(login, &origAdmin))
         {
-            answer = "<" + tag + " Result = \"Admin '" + login + "' is not found.\"/>";
+            m_answer = "<" + m_tag + " Result = \"Admin '" + login + "' is not found.\"/>";
             return;
         }
 
             return;
         }
 
@@ -153,18 +155,18 @@ void CHG_ADMIN::CreateAnswer()
             int p = 0;
             if (str2x(privAsString.data().c_str(), p) < 0)
             {
             int p = 0;
             if (str2x(privAsString.data().c_str(), p) < 0)
             {
-                answer = "<" + tag + " Result = \"Incorrect parameter Priv.\"/>";
+                m_answer = "<" + m_tag + " Result = \"Incorrect parameter Priv.\"/>";
                 return;
             }
 
             conf.priv.FromInt(p);
         }
 
                 return;
             }
 
             conf.priv.FromInt(p);
         }
 
-        if (m_admins.Change(conf, &currAdmin) != 0)
-            answer = "<" + tag + " Result = \"" + m_admins.GetStrError() + "\"/>";
+        if (m_admins.Change(conf, &m_currAdmin) != 0)
+            m_answer = "<" + m_tag + " Result = \"" + m_admins.GetStrError() + "\"/>";
         else
         else
-            answer = "<" + tag + " Result = \"Ok\"/>";
+            m_answer = "<" + m_tag + " Result = \"Ok\"/>";
     }
     else
     }
     else
-        answer = "<" + tag + " Result = \"Incorrect parameter login.\"/>";
+        m_answer = "<" + m_tag + " Result = \"Incorrect parameter login.\"/>";
 }
 }