X-Git-Url: https://git.stg.codes/stg.git/blobdiff_plain/f204a070a53f7a2f05686d5ecad30da3fe2f0d27..17dab87336302938de1f031008cc4c4af31d2590:/projects/sgconf/common_sg.cpp?ds=sidebyside diff --git a/projects/sgconf/common_sg.cpp b/projects/sgconf/common_sg.cpp index 1fc0685a..a15f7588 100644 --- a/projects/sgconf/common_sg.cpp +++ b/projects/sgconf/common_sg.cpp @@ -34,10 +34,10 @@ #include #include +#include "stg/common.h" +#include "sg_error_codes.h" #include "common_sg.h" #include "version_sg.h" -#include "common.h" -#include "sg_error_codes.h" using namespace std; @@ -84,7 +84,7 @@ HelpParams hp[] = {"set credit expire", "get credit expire", "-E", ""}, {"set password", "get password", "-o", ""}, {"set prepaid traffic", "get prepaid traffic", "-e", ""}, - {"set IP-addresses", "get IP-addresses", "-I", "<*|ip_addr[,ip_addr...]>"}, + {"set IP-addresses", "get IP-addresses", "-I", "<*|ip_addr[,ip_addr...]>"}, {"set name", "get name", "-A", ""}, {"set note", "get note", "-N", ""}, {"set street address", "get street address", "-D", "
"}, @@ -122,6 +122,9 @@ printf("sgconf set -s -p -a -w -u -- printf("To get userdata<0...9> use:\n"); printf("sgconf get -s -p -a -w -u --ud0 [--ud1 ...]\n\n"); +printf("To get user's authorizers list use:\n"); +printf("sgconf get -s -p -a -w -u --authorized-by\n\n"); + printf("To send message use:\n"); printf("sgconf set -s -p -a -w -u -m \n\n"); @@ -149,6 +152,7 @@ for (int i = 0; i < (int)strlen(login); i++) if (!(( login[i] >= 'a' && login[i] <= 'z') || (login[i] >= 'A' && login[i] <= 'Z') || (login[i] >= '0' && login[i] <= '9') + || login[i] == '.' || login[i] == '_' || login[i] == '-')) { @@ -394,7 +398,7 @@ StringReqParams strReqParams[] = {"group", req->group, &ud->group}, {"tariff", req->tariff, &ud->tariff}, {"password", req->usrPasswd, &ud->password}, - {"ip", req->ips, &ud->ips} // IP-address of user + {"ip", req->ips, &ud->ips} // IP-address of user }; for (unsigned i = 0; i < sizeof(strReqParams) / sizeof(StringReqParams); i++) { @@ -408,6 +412,13 @@ for (unsigned i = 0; i < sizeof(strReqParams) / sizeof(StringReqParams); i++) *result = true; } //----------------------------------------------------------------------------- +void RecvAuthByData(const PARSER_AUTH_BY::INFO & list, void *) +{ +for (std::vector::const_iterator it = list.begin(); it != list.end(); ++it) + cout << *it << "\n"; +cout << endl; +} +//----------------------------------------------------------------------------- int ProcessSetUser(const std::string &server, int port, const std::string &admLogin, @@ -496,3 +507,30 @@ else return 0; } //----------------------------------------------------------------------------- +int ProcessAuthBy(const std::string &server, + int port, + const std::string &admLogin, + const std::string &admPasswd, + const std::string &login, + void * data) +{ +SERVCONF sc; + +sc.SetServer(server.c_str()); +sc.SetPort(port); +sc.SetAdmLogin(admLogin.c_str()); +sc.SetAdmPassword(admPasswd.c_str()); + +sc.SetAuthByCallback(RecvAuthByData, NULL); +sc.AuthBy(login.c_str()); + +if (sc.GetError()) + { + printf("Error\n"); + return -1; + } + +printf("Ok\n"); +return 0; +} +//-----------------------------------------------------------------------------