add AQH_ModService_HandleRequestWithTable(). Shorten code.
This commit is contained in:
@@ -25,10 +25,10 @@
|
|||||||
* ------------------------------------------------------------------------------------------------
|
* ------------------------------------------------------------------------------------------------
|
||||||
*/
|
*/
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
#define GBAS GWEN_Buffer_AppendString
|
||||||
* global vars
|
#define GBAA GWEN_Buffer_AppendArgs
|
||||||
* ------------------------------------------------------------------------------------------------
|
|
||||||
*/
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
* forward declarations
|
* forward declarations
|
||||||
@@ -40,22 +40,19 @@ static void _createRoleList(AQH_MODULE *m);
|
|||||||
|
|
||||||
static AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName);
|
static AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName);
|
||||||
static int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sLastPathElem);
|
static int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sLastPathElem);
|
||||||
static int _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
static void _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
||||||
|
|
||||||
static int _handleRqEditMod(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
static void _handleRqEditModGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
||||||
static int _handleRqEditModGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
static void _handleRqEditModPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
||||||
static int _handleRqEditModPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
|
||||||
|
|
||||||
static int _handleRqAddRole(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
static void _handleRqAddRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
||||||
static int _handleRqAddRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
static void _handleRqAddRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
||||||
static int _handleRqAddRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
|
||||||
|
|
||||||
static int _handleRqEditRole(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
static void _handleRqEditRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
||||||
static int _handleRqEditRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
static void _handleRqEditRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
||||||
static int _handleRqEditRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
|
||||||
static int _getHighestUsedRoleId(const AQH_ROLE_LIST *roleList);
|
static int _getHighestUsedRoleId(const AQH_ROLE_LIST *roleList);
|
||||||
|
|
||||||
static int _handleRqDeleteRole(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
static void _handleRqDeleteRole(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
||||||
|
|
||||||
static void _writeEditModForm(const AQH_MODULE *currentMod, const char *sModName, GWEN_BUFFER *dbuf);
|
static void _writeEditModForm(const AQH_MODULE *currentMod, const char *sModName, GWEN_BUFFER *dbuf);
|
||||||
static void _writeRoleListToForm(const AQH_ROLE_LIST *roleList,
|
static void _writeRoleListToForm(const AQH_ROLE_LIST *roleList,
|
||||||
@@ -70,6 +67,25 @@ static uint32_t _readPermissionsFromForm(GWEN_DB_NODE *dbPost, const AQH_PERMDEF
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
/* ------------------------------------------------------------------------------------------------
|
||||||
|
* vars
|
||||||
|
* ------------------------------------------------------------------------------------------------
|
||||||
|
*/
|
||||||
|
|
||||||
|
AQH_MODSERVICE_HANDLER_ENTRY _requestTable[]={
|
||||||
|
{"index.html", AQCGI_REQUEST_METHOD_GET, AQH_MODADMMODULES_PERMS_MODULESREAD, _handleRqIndex},
|
||||||
|
{"editmodule.html", AQCGI_REQUEST_METHOD_GET, AQH_MODADMMODULES_PERMS_MODULESWRITE, _handleRqEditModGet},
|
||||||
|
{"editmodule.html", AQCGI_REQUEST_METHOD_POST, AQH_MODADMMODULES_PERMS_MODULESWRITE, _handleRqEditModPost},
|
||||||
|
{"addrole.html", AQCGI_REQUEST_METHOD_GET, AQH_MODADMMODULES_PERMS_MODULESWRITE, _handleRqAddRoleGet},
|
||||||
|
{"addrole.html", AQCGI_REQUEST_METHOD_POST, AQH_MODADMMODULES_PERMS_MODULESWRITE, _handleRqAddRolePost},
|
||||||
|
{"editrole.html", AQCGI_REQUEST_METHOD_GET, AQH_MODADMMODULES_PERMS_MODULESWRITE, _handleRqEditRoleGet},
|
||||||
|
{"editrole.html", AQCGI_REQUEST_METHOD_POST, AQH_MODADMMODULES_PERMS_MODULESWRITE, _handleRqEditRolePost},
|
||||||
|
{"delrole.html", AQCGI_REQUEST_METHOD_GET, AQH_MODADMMODULES_PERMS_MODULESWRITE, _handleRqDeleteRole},
|
||||||
|
{NULL, 0, 0, NULL}
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
/* ------------------------------------------------------------------------------------------------
|
/* ------------------------------------------------------------------------------------------------
|
||||||
* code
|
* code
|
||||||
* ------------------------------------------------------------------------------------------------
|
* ------------------------------------------------------------------------------------------------
|
||||||
@@ -150,51 +166,26 @@ AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *sessio
|
|||||||
|
|
||||||
int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sLastPathElem)
|
int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sLastPathElem)
|
||||||
{
|
{
|
||||||
GWEN_BUFFER *dbuf;
|
AQH_ModService_HandleRequestWithTable(m, rq, session, sLastPathElem, _requestTable);
|
||||||
|
|
||||||
dbuf=GWEN_Buffer_new(0, 256, 0, 1);
|
|
||||||
AQH_ModService_AddHeader(m, "en", dbuf);
|
|
||||||
|
|
||||||
if (strcasecmp(sLastPathElem, "index.html")==0)
|
|
||||||
_handleRqIndex(m, rq, session, dbuf);
|
|
||||||
else if (strcasecmp(sLastPathElem, "editmodule.html")==0)
|
|
||||||
_handleRqEditMod(m, rq, session, dbuf);
|
|
||||||
else if (strcasecmp(sLastPathElem, "addrole.html")==0)
|
|
||||||
_handleRqAddRole(m, rq, session, dbuf);
|
|
||||||
else if (strcasecmp(sLastPathElem, "editrole.html")==0)
|
|
||||||
_handleRqEditRole(m, rq, session, dbuf);
|
|
||||||
else if (strcasecmp(sLastPathElem, "delrole.html")==0)
|
|
||||||
_handleRqDeleteRole(m, rq, session, dbuf);
|
|
||||||
else {
|
|
||||||
AQCGI_Request_SetResponseCode(rq, 404);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Not Found");
|
|
||||||
}
|
|
||||||
AQH_ModService_AddFooter(m, "en", dbuf);
|
|
||||||
AQCGI_Request_SetBufferResponseBody(rq, dbuf);
|
|
||||||
AQCGI_Request_AddResponseHeaderData(rq, "Content-type: text/html");
|
|
||||||
|
|
||||||
return AQCGI_SendResponse(rq);
|
return AQCGI_SendResponse(rq);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
void _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
||||||
{
|
{
|
||||||
|
AQH_SERVICE *sv;
|
||||||
|
GWEN_STRINGLIST *slModules;
|
||||||
uint32_t perms;
|
uint32_t perms;
|
||||||
|
|
||||||
perms=AQH_ModService_GetUserPerms(m);
|
perms=AQH_ModService_GetUserPerms(m);
|
||||||
DBG_ERROR(NULL, "Perms=%08x", perms);
|
|
||||||
if (perms & AQH_MODADMMODULES_PERMS_MODULESREAD) {
|
|
||||||
AQH_SERVICE *sv;
|
|
||||||
GWEN_STRINGLIST *slModules;
|
|
||||||
|
|
||||||
sv=AQH_ModService_GetService(m);
|
sv=AQH_ModService_GetService(m);
|
||||||
slModules=AQH_Service_ListModules(sv);
|
slModules=AQH_Service_ListModules(sv);
|
||||||
if (slModules) {
|
if (slModules) {
|
||||||
GWEN_STRINGLISTENTRY *se;
|
GWEN_STRINGLISTENTRY *se;
|
||||||
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<h1>Modules</h1>\n");
|
GBAS(dbuf, "<h1>Modules</h1>\n");
|
||||||
GWEN_Buffer_AppendString(dbuf,
|
GBAS(dbuf,
|
||||||
"<table class=\"datatable\">\n"
|
"<table class=\"datatable\">\n"
|
||||||
"<thead>"
|
"<thead>"
|
||||||
"<tr><th>Id</th><th>Name</th><th>Description</th><th>Actions</th></tr>\n"
|
"<tr><th>Id</th><th>Name</th><th>Description</th><th>Actions</th></tr>\n"
|
||||||
@@ -214,71 +205,34 @@ int _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_
|
|||||||
const char *sName;
|
const char *sName;
|
||||||
|
|
||||||
sName=AQH_Module_GetName(currentMod);
|
sName=AQH_Module_GetName(currentMod);
|
||||||
GWEN_Buffer_AppendString(dbuf, "<tr>");
|
GBAS(dbuf, "<tr>");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<td>%lu</td>", (unsigned long int) AQH_Module_GetId(currentMod));
|
GBAA(dbuf, "<td>%lu</td>", (unsigned long int) AQH_Module_GetId(currentMod));
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<td>%s</td>", sName?sName:"");
|
GBAA(dbuf, "<td>%s</td>", sName?sName:"");
|
||||||
s=AQH_Module_GetDescr(currentMod);
|
s=AQH_Module_GetDescr(currentMod);
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<td>%s</td>", s?s:"");
|
GBAA(dbuf, "<td>%s</td>", s?s:"");
|
||||||
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<td>");
|
GBAS(dbuf, "<td>");
|
||||||
if (perms & AQH_MODADMMODULES_PERMS_MODULESWRITE)
|
if (perms & AQH_MODADMMODULES_PERMS_MODULESWRITE)
|
||||||
GWEN_Buffer_AppendArgs(dbuf,
|
GBAA(dbuf, "<a href=\"editmodule.html?name=%s\"><img src=\"/pics/edit.png\"></a>", sName?sName:"");
|
||||||
"<a href=\"editmodule.html?name=%s\"><img src=\"/pics/edit.png\"></a>",
|
GBAA(dbuf, "</td>\n");
|
||||||
sName?sName:"");
|
GBAA(dbuf, "</tr>\n");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "</td>\n");
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "</tr>\n");
|
|
||||||
AQH_Module_free(currentMod);
|
AQH_Module_free(currentMod);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
se=GWEN_StringListEntry_Next(se);
|
se=GWEN_StringListEntry_Next(se);
|
||||||
}
|
}
|
||||||
GWEN_Buffer_AppendString(dbuf,
|
GBAS(dbuf,
|
||||||
"</tbody>\n"
|
"</tbody>\n"
|
||||||
"</table>\n");
|
"</table>\n");
|
||||||
GWEN_StringList_free(slModules);
|
GWEN_StringList_free(slModules);
|
||||||
}
|
}
|
||||||
GWEN_Buffer_AppendString(dbuf, "<hr><a href=\"addmodule.html\">Add Module</a>");
|
if (perms & AQH_MODADMMODULES_PERMS_MODULESADD)
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
GBAS(dbuf, "<hr><a href=\"addmodule.html\">Add Module</a>");
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>No permissions to read module list.</p>");
|
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int _handleRqEditMod(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
void _handleRqEditModGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
||||||
{
|
|
||||||
uint32_t perms;
|
|
||||||
|
|
||||||
perms=AQH_ModService_GetUserPerms(m);
|
|
||||||
DBG_ERROR(NULL, "Perms=%08x", perms);
|
|
||||||
if (perms & AQH_MODADMMODULES_PERMS_MODULESWRITE) {
|
|
||||||
if (AQCGI_Request_GetRequestMethod(rq)==AQCGI_REQUEST_METHOD_GET)
|
|
||||||
return _handleRqEditModGet(m, rq, session, dbuf);
|
|
||||||
else if (AQCGI_Request_GetRequestMethod(rq)==AQCGI_REQUEST_METHOD_POST)
|
|
||||||
return _handleRqEditModPost(m, rq, session, dbuf);
|
|
||||||
else {
|
|
||||||
DBG_ERROR(NULL, "Invalid request method %d", AQCGI_Request_GetRequestMethod(rq));
|
|
||||||
AQCGI_Request_SetResponseCode(rq, 405);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Method Not Allowed");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>No permissions to edit modules.</p>");
|
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int _handleRqEditModGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
|
||||||
{
|
{
|
||||||
AQH_SERVICE *sv;
|
AQH_SERVICE *sv;
|
||||||
GWEN_DB_NODE *dbQuery;
|
GWEN_DB_NODE *dbQuery;
|
||||||
@@ -291,8 +245,6 @@ int _handleRqEditModGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
|
|||||||
currentMod=(sModName && *sModName)?AQH_Service_LoadModule(sv, sModName):NULL;
|
currentMod=(sModName && *sModName)?AQH_Service_LoadModule(sv, sModName):NULL;
|
||||||
if (currentMod) {
|
if (currentMod) {
|
||||||
_writeEditModForm(currentMod, sModName, dbuf);
|
_writeEditModForm(currentMod, sModName, dbuf);
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
AQH_Module_free(currentMod);
|
AQH_Module_free(currentMod);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
@@ -300,123 +252,11 @@ int _handleRqEditModGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
|
|||||||
AQCGI_Request_SetResponseCode(rq, 303);
|
AQCGI_Request_SetResponseCode(rq, 303);
|
||||||
AQCGI_Request_SetResponseText(rq, "See other");
|
AQCGI_Request_SetResponseText(rq, "See other");
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void _writeEditModForm(const AQH_MODULE *currentMod, const char *sModName, GWEN_BUFFER *dbuf)
|
void _handleRqEditModPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
||||||
{
|
|
||||||
const char *sName;
|
|
||||||
const char *sDescr;
|
|
||||||
const AQH_PERMDEF_LIST *permDefList;
|
|
||||||
const AQH_ROLE_LIST *roleList;
|
|
||||||
|
|
||||||
permDefList=AQH_Module_GetPermDefList(currentMod);
|
|
||||||
roleList=AQH_Module_GetRoleList(currentMod);
|
|
||||||
sName=AQH_Module_GetName(currentMod);
|
|
||||||
sDescr=AQH_Module_GetDescr(currentMod);
|
|
||||||
/* write module info */
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<h2>Module Info</h2>\n");
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf,
|
|
||||||
"<form action=\"editmodule.html\" method=\"post\">\n"
|
|
||||||
"<table class=\"formtable\">\n"
|
|
||||||
"<tr>"
|
|
||||||
"<td><label for=\"name\">Name:</label></td>"
|
|
||||||
"<td><input type=\"text\" name=\"name\" value=\"%s\"></td>"
|
|
||||||
"</tr>\n"
|
|
||||||
"<tr>"
|
|
||||||
"<td><label for=\"descr\">Description:</label></td>"
|
|
||||||
"<td><input type=\"text\" name=\"descr\" value=\"%s\"></td>"
|
|
||||||
"</tr>\n",
|
|
||||||
sName?sName:"", sDescr?sDescr:"");
|
|
||||||
|
|
||||||
if (permDefList) {
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf,
|
|
||||||
"<tr>"
|
|
||||||
"<td><label>Guest Permissions:</label></td>\n"
|
|
||||||
"<td>");
|
|
||||||
_writePermissionsToForm(permDefList, AQH_Module_GetGuestPerms(currentMod), dbuf);
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "</td>" "</tr>");
|
|
||||||
}
|
|
||||||
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "</table>\n");
|
|
||||||
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<input type=\"hidden\" name=\"module\" value=\"%s\">\n", sModName?sModName:"");
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<input type=\"submit\" value=\"Save\">\n</form>\n\n");
|
|
||||||
|
|
||||||
/* write role list */
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<h2>User Roles</h2>\n");
|
|
||||||
if (roleList)
|
|
||||||
_writeRoleListToForm(roleList, sModName, permDefList, dbuf);
|
|
||||||
else
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>none</p>");
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf,
|
|
||||||
"<a href=\"addrole.html?mod=%s\">"
|
|
||||||
"<img src=\"/pics/plus.png\">Add Role</a>\n",
|
|
||||||
sModName?sModName:"");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void _writeRoleListToForm(const AQH_ROLE_LIST *roleList,
|
|
||||||
const char *sModName,
|
|
||||||
const AQH_PERMDEF_LIST *permDefList,
|
|
||||||
GWEN_BUFFER *dbuf)
|
|
||||||
{
|
|
||||||
const AQH_ROLE *role;
|
|
||||||
|
|
||||||
GWEN_Buffer_AppendString(dbuf,
|
|
||||||
"<table class=\"datatable\">\n"
|
|
||||||
"<thead>"
|
|
||||||
"<tr><th>Id</th><th>Name</th><th>Permissions</th><th>Description</th><th>Actions</th></tr>\n"
|
|
||||||
"</thead>\n"
|
|
||||||
"<tbody>\n");
|
|
||||||
role=AQH_Role_List_First(roleList);
|
|
||||||
while(role) {
|
|
||||||
uint8_t id;
|
|
||||||
const char *s;
|
|
||||||
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<tr>");
|
|
||||||
/* id */
|
|
||||||
id=AQH_Role_GetId(role);
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<td>%d</td>", id);
|
|
||||||
/* name */
|
|
||||||
s=AQH_Role_GetName(role);
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<td>%s</td>", s?s:"");
|
|
||||||
/* permissions */
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<td>");
|
|
||||||
if (permDefList)
|
|
||||||
_writeEnabledPermissions(permDefList, AQH_Role_GetPerms(role), dbuf);
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "</td>");
|
|
||||||
/* description */
|
|
||||||
s=AQH_Role_GetDescr(role);
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<td>%s</td>", s?s:"");
|
|
||||||
/* actions */
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<td>");
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf,
|
|
||||||
"<a href=\"editrole.html?mod=%s&id=%d\">"
|
|
||||||
"<img src=\"/pics/edit.png\"></a>",
|
|
||||||
sModName?sModName:"", id);
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf,
|
|
||||||
"<a href=\"delrole.html?mod=%s&id=%d\">"
|
|
||||||
"<img src=\"/pics/minus.png\"></a>",
|
|
||||||
sModName?sModName:"", id);
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "</td>");
|
|
||||||
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "</tr>\n");
|
|
||||||
role=AQH_Role_List_Next(role);
|
|
||||||
}
|
|
||||||
|
|
||||||
GWEN_Buffer_AppendString(dbuf,
|
|
||||||
"</tbody>\n"
|
|
||||||
"</table>\n");
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int _handleRqEditModPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
|
||||||
{
|
{
|
||||||
AQH_SERVICE *sv;
|
AQH_SERVICE *sv;
|
||||||
GWEN_DB_NODE *dbPost;
|
GWEN_DB_NODE *dbPost;
|
||||||
@@ -446,12 +286,10 @@ int _handleRqEditModPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
|
|||||||
|
|
||||||
rv=AQH_Service_SaveModule(sv, currentMod);
|
rv=AQH_Service_SaveModule(sv, currentMod);
|
||||||
if (rv<0) {
|
if (rv<0) {
|
||||||
GWEN_Buffer_AppendString(dbuf, "<h2>Error</h2><p>Error saving module</p>");
|
GBAS(dbuf, "<h2>Error</h2><p>Error saving module</p>");
|
||||||
DBG_ERROR(NULL, "Could not save module \"%s\"", sModName);
|
DBG_ERROR(NULL, "Could not save module \"%s\"", sModName);
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
AQH_Module_free(currentMod);
|
AQH_Module_free(currentMod);
|
||||||
return 0;
|
return;
|
||||||
}
|
}
|
||||||
DBG_ERROR(NULL, "Module \"%s\" saved", sModName);
|
DBG_ERROR(NULL, "Module \"%s\" saved", sModName);
|
||||||
AQH_Module_free(currentMod);
|
AQH_Module_free(currentMod);
|
||||||
@@ -461,44 +299,13 @@ int _handleRqEditModPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
|
|||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
DBG_ERROR(NULL, "Could not load module \"%s\"", sModName?sModName:"<no name>");
|
DBG_ERROR(NULL, "Could not load module \"%s\"", sModName?sModName:"<no name>");
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Error loading module.</p>\n");
|
GBAS(dbuf, "<p>Error loading module.</p>\n");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int _handleRqAddRole(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
|
||||||
{
|
|
||||||
uint32_t perms;
|
|
||||||
|
|
||||||
perms=AQH_ModService_GetUserPerms(m);
|
|
||||||
DBG_ERROR(NULL, "Perms=%08x", perms);
|
|
||||||
if (perms & AQH_MODADMMODULES_PERMS_MODULESWRITE) {
|
|
||||||
if (AQCGI_Request_GetRequestMethod(rq)==AQCGI_REQUEST_METHOD_GET)
|
|
||||||
return _handleRqAddRoleGet(m, rq, session, dbuf);
|
|
||||||
else if (AQCGI_Request_GetRequestMethod(rq)==AQCGI_REQUEST_METHOD_POST)
|
|
||||||
return _handleRqAddRolePost(m, rq, session, dbuf);
|
|
||||||
else {
|
|
||||||
DBG_ERROR(NULL, "Invalid request method %d", AQCGI_Request_GetRequestMethod(rq));
|
|
||||||
AQCGI_SendResponseWithStatus(rq, 405, "Method Not Allowed");
|
|
||||||
AQCGI_Request_SetResponseCode(rq, 405);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Method Not Allowed");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>No permissions to edit modules.</p>");
|
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int _handleRqAddRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
void _handleRqAddRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
||||||
{
|
{
|
||||||
AQH_SERVICE *sv;
|
AQH_SERVICE *sv;
|
||||||
GWEN_DB_NODE *dbQuery;
|
GWEN_DB_NODE *dbQuery;
|
||||||
@@ -516,59 +323,47 @@ int _handleRqAddRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
|
|||||||
|
|
||||||
if (currentMod) {
|
if (currentMod) {
|
||||||
if (permDefList) {
|
if (permDefList) {
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<h2>Add Role for Module %s</h2>\n", sModName?sModName:"");
|
GBAA(dbuf, "<h2>Add Role for Module %s</h2>\n", sModName?sModName:"");
|
||||||
GWEN_Buffer_AppendString(dbuf,
|
GBAS(dbuf,
|
||||||
"<form action=\"addrole.html\" method=\"post\">\n"
|
"<form action=\"addrole.html\" method=\"post\">\n"
|
||||||
"<table class=\"formtable\">\n"
|
"<table class=\"formtable\">\n"
|
||||||
"<tr>"
|
"<tr><td><label for=\"name\">Name:</label></td><td><input type=\"text\" name=\"name\"></td>"
|
||||||
"<td><label for=\"name\">Name:</label></td>"
|
"<tr><td><label for=\"descr\">Description:</label></td><td><input type=\"text\" name=\"descr\"></td></tr>\n");
|
||||||
"<td><input type=\"text\" name=\"name\"></td>"
|
|
||||||
"<tr>"
|
|
||||||
"<td><label for=\"descr\">Description:</label></td>"
|
|
||||||
"<td><input type=\"text\" name=\"descr\"></td>"
|
|
||||||
"</tr>\n");
|
|
||||||
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<tr><td><label>Permissions:</label></td><td>");
|
GBAS(dbuf, "<tr><td><label>Permissions:</label></td><td>");
|
||||||
_writePermissionsToForm(permDefList, guestPerms, dbuf);
|
_writePermissionsToForm(permDefList, guestPerms, dbuf);
|
||||||
GWEN_Buffer_AppendString(dbuf, "</td></tr>\n");
|
GBAS(dbuf, "</td></tr>\n");
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
GWEN_Buffer_AppendString(dbuf, "<tr><td><label>Explicitly add permissions:</label></td><td>");
|
GBAS(dbuf, "<tr><td><label>Explicitly add permissions:</label></td><td>");
|
||||||
_writePermissionsToForm(permDefList, 0, dbuf);
|
_writePermissionsToForm(permDefList, 0, dbuf);
|
||||||
GWEN_Buffer_AppendString(dbuf, "</td></tr>\n");
|
GBAS(dbuf, "</td></tr>\n");
|
||||||
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<tr><td><label>Explicitly sub permissions:</label></td><td>");
|
GBAS(dbuf, "<tr><td><label>Explicitly sub permissions:</label></td><td>");
|
||||||
_writePermissionsToForm(permDefList, 0, dbuf);
|
_writePermissionsToForm(permDefList, 0, dbuf);
|
||||||
GWEN_Buffer_AppendString(dbuf, "</td></tr>\n");
|
GBAS(dbuf, "</td></tr>\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "</table>\n");
|
GBAS(dbuf, "</table>\n");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<input type=\"hidden\" name=\"mod\" value=\"%s\">\n", sModName?sModName:"");
|
GBAA(dbuf, "<input type=\"hidden\" name=\"mod\" value=\"%s\">\n", sModName?sModName:"");
|
||||||
GWEN_Buffer_AppendString(dbuf, "<input type=\"submit\" value=\"Add\">\n");
|
GBAS(dbuf, "<input type=\"submit\" value=\"Add\">\n");
|
||||||
GWEN_Buffer_AppendString(dbuf, "</form>\n\n");
|
GBAS(dbuf, "</form>\n\n");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Please add permission definitions first.</p>\n");
|
GBAS(dbuf, "<p>Please add permission definitions first.</p>\n");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
GBAA(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
}
|
||||||
AQH_Module_free(currentMod);
|
AQH_Module_free(currentMod);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Error loading module.</p>\n");
|
GBAS(dbuf, "<p>Error loading module.</p>\n");
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p><a href=\"index.html\"> back to module list</p>\n");
|
GBAS(dbuf, "<p><a href=\"index.html\"> back to module list</p>\n");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int _handleRqAddRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
void _handleRqAddRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
||||||
{
|
{
|
||||||
AQH_SERVICE *sv;
|
AQH_SERVICE *sv;
|
||||||
GWEN_DB_NODE *dbPost;
|
GWEN_DB_NODE *dbPost;
|
||||||
@@ -603,11 +398,9 @@ int _handleRqAddRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
|
|||||||
/* validate */
|
/* validate */
|
||||||
if (!(sName && *sName)) {
|
if (!(sName && *sName)) {
|
||||||
DBG_ERROR(NULL, "Missing value for \"name\"");
|
DBG_ERROR(NULL, "Missing value for \"name\"");
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Missing name.</p>\n");
|
GBAS(dbuf, "<p>Missing name.</p>\n");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
GBAA(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
return;
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentMod) {
|
if (currentMod) {
|
||||||
@@ -629,12 +422,10 @@ int _handleRqAddRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
|
|||||||
/* save module */
|
/* save module */
|
||||||
rv=AQH_Service_SaveModule(sv, currentMod);
|
rv=AQH_Service_SaveModule(sv, currentMod);
|
||||||
if (rv<0) {
|
if (rv<0) {
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Error saving module.</p>\n");
|
GBAS(dbuf, "<p>Error saving module.</p>\n");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
GBAA(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
AQH_Module_free(currentMod);
|
AQH_Module_free(currentMod);
|
||||||
return 0;
|
return;
|
||||||
}
|
}
|
||||||
_setLocationHeaderForMod(rq, "editmodule.html", sModName);
|
_setLocationHeaderForMod(rq, "editmodule.html", sModName);
|
||||||
AQCGI_Request_SetResponseCode(rq, 303);
|
AQCGI_Request_SetResponseCode(rq, 303);
|
||||||
@@ -642,66 +433,14 @@ int _handleRqAddRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
|
|||||||
AQH_Module_free(currentMod);
|
AQH_Module_free(currentMod);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Error loading module.</p>\n");
|
GBAS(dbuf, "<p>Error loading module.</p>\n");
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p><a href=\"index.html\"> back to module list</p>\n");
|
GBAS(dbuf, "<p><a href=\"index.html\"> back to module list</p>\n");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
|
||||||
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int _getHighestUsedRoleId(const AQH_ROLE_LIST *roleList)
|
|
||||||
{
|
|
||||||
int id=0;
|
|
||||||
|
|
||||||
if (roleList) {
|
|
||||||
const AQH_ROLE *role;
|
|
||||||
|
|
||||||
role=AQH_Role_List_First(roleList);
|
|
||||||
while(role) {
|
|
||||||
int rid;
|
|
||||||
|
|
||||||
rid=AQH_Role_GetId(role);
|
|
||||||
id=(rid>id)?rid:id;
|
|
||||||
role=AQH_Role_List_Next(role);
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
return id;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int _handleRqEditRole(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
void _handleRqEditRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
||||||
{
|
|
||||||
uint32_t perms;
|
|
||||||
|
|
||||||
perms=AQH_ModService_GetUserPerms(m);
|
|
||||||
DBG_ERROR(NULL, "Perms=%08x", perms);
|
|
||||||
if (perms & AQH_MODADMMODULES_PERMS_MODULESWRITE) {
|
|
||||||
if (AQCGI_Request_GetRequestMethod(rq)==AQCGI_REQUEST_METHOD_GET)
|
|
||||||
return _handleRqEditRoleGet(m, rq, session, dbuf);
|
|
||||||
else if (AQCGI_Request_GetRequestMethod(rq)==AQCGI_REQUEST_METHOD_POST)
|
|
||||||
return _handleRqEditRolePost(m, rq, session, dbuf);
|
|
||||||
else {
|
|
||||||
DBG_ERROR(NULL, "Invalid request method %d", AQCGI_Request_GetRequestMethod(rq));
|
|
||||||
AQCGI_Request_SetResponseCode(rq, 405);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Method Not Allowed");
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else {
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>No permissions to edit modules.</p>");
|
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int _handleRqEditRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
|
||||||
{
|
{
|
||||||
AQH_SERVICE *sv;
|
AQH_SERVICE *sv;
|
||||||
GWEN_DB_NODE *dbQuery;
|
GWEN_DB_NODE *dbQuery;
|
||||||
@@ -736,8 +475,8 @@ int _handleRqEditRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
|
|||||||
#endif
|
#endif
|
||||||
|
|
||||||
if (role) {
|
if (role) {
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<h2>Edit Role for Module %s</h2>\n", sModName?sModName:"");
|
GBAA(dbuf, "<h2>Edit Role for Module %s</h2>\n", sModName?sModName:"");
|
||||||
GWEN_Buffer_AppendArgs(dbuf,
|
GBAA(dbuf,
|
||||||
"<form action=\"editrole.html\" method=\"post\">\n"
|
"<form action=\"editrole.html\" method=\"post\">\n"
|
||||||
"<table class=\"formtable\">\n"
|
"<table class=\"formtable\">\n"
|
||||||
"<tr>\n"
|
"<tr>\n"
|
||||||
@@ -750,39 +489,36 @@ int _handleRqEditRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
|
|||||||
"</tr>\n",
|
"</tr>\n",
|
||||||
sName, sDescr?sDescr:"");
|
sName, sDescr?sDescr:"");
|
||||||
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<tr><td><label>Permissions:</label></td><td>");
|
GBAS(dbuf, "<tr><td><label>Permissions:</label></td><td>");
|
||||||
_writePermissionsToForm(permDefList, perms, dbuf);
|
_writePermissionsToForm(permDefList, perms, dbuf);
|
||||||
GWEN_Buffer_AppendString(dbuf, "</td></tr>\n");
|
GBAS(dbuf, "</td></tr>\n");
|
||||||
|
|
||||||
#if 0
|
#if 0
|
||||||
GWEN_Buffer_AppendString(dbuf, "<tr><td><label>Explicitly add permissions:</label></td><td>");
|
GBAS(dbuf, "<tr><td><label>Explicitly add permissions:</label></td><td>");
|
||||||
_writePermissionsToForm(permDefList, explAddPerms, dbuf);
|
_writePermissionsToForm(permDefList, explAddPerms, dbuf);
|
||||||
GWEN_Buffer_AppendString(dbuf, "</td></tr>\n");
|
GBAS(dbuf, "</td></tr>\n");
|
||||||
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<tr><td><label>Explicitly sub permissions:</label></td><td>");
|
GBAS(dbuf, "<tr><td><label>Explicitly sub permissions:</label></td><td>");
|
||||||
_writePermissionsToForm(permDefList, explDelPerms, dbuf);
|
_writePermissionsToForm(permDefList, explDelPerms, dbuf);
|
||||||
GWEN_Buffer_AppendString(dbuf, "</td></tr>\n");
|
GBAS(dbuf, "</td></tr>\n");
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "</table>\n");
|
GBAS(dbuf, "</table>\n");
|
||||||
|
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<input type=\"hidden\" name=\"mod\" value=\"%s\">\n", sModName?sModName:"");
|
GBAA(dbuf, "<input type=\"hidden\" name=\"mod\" value=\"%s\">\n", sModName?sModName:"");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<input type=\"hidden\" name=\"oldId\" value=\"%d\">\n", id);
|
GBAA(dbuf, "<input type=\"hidden\" name=\"oldId\" value=\"%d\">\n", id);
|
||||||
GWEN_Buffer_AppendString(dbuf, "<input type=\"submit\" value=\"Save\">\n");
|
GBAS(dbuf, "<input type=\"submit\" value=\"Save\">\n");
|
||||||
GWEN_Buffer_AppendString(dbuf, "</form>\n\n");
|
GBAS(dbuf, "</form>\n\n");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Role not found.</p>\n");
|
GBAS(dbuf, "<p>Role not found.</p>\n");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
GBAA(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
||||||
}
|
}
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int _handleRqEditRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
void _handleRqEditRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
||||||
{
|
{
|
||||||
AQH_SERVICE *sv;
|
AQH_SERVICE *sv;
|
||||||
GWEN_DB_NODE *dbPost;
|
GWEN_DB_NODE *dbPost;
|
||||||
@@ -818,19 +554,15 @@ int _handleRqEditRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session
|
|||||||
/* validate */
|
/* validate */
|
||||||
if (!(sName && *sName)) {
|
if (!(sName && *sName)) {
|
||||||
DBG_ERROR(NULL, "Missing value for \"name\"");
|
DBG_ERROR(NULL, "Missing value for \"name\"");
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Missing name.</p>\n");
|
GBAS(dbuf, "<p>Missing name.</p>\n");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
GBAA(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
return;
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
if (role==NULL) {
|
if (role==NULL) {
|
||||||
DBG_ERROR(NULL, "Role %d not found", oldId);
|
DBG_ERROR(NULL, "Role %d not found", oldId);
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Role not found.</p>\n");
|
GBAS(dbuf, "<p>Role not found.</p>\n");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
GBAA(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
return;
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (currentMod) {
|
if (currentMod) {
|
||||||
@@ -842,12 +574,10 @@ int _handleRqEditRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session
|
|||||||
/* save module */
|
/* save module */
|
||||||
rv=AQH_Service_SaveModule(sv, currentMod);
|
rv=AQH_Service_SaveModule(sv, currentMod);
|
||||||
if (rv<0) {
|
if (rv<0) {
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Error saving module.</p>\n");
|
GBAS(dbuf, "<p>Error saving module.</p>\n");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
GBAA(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
AQH_Module_free(currentMod);
|
AQH_Module_free(currentMod);
|
||||||
return 0;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_setLocationHeaderForMod(rq, "editmodule.html", sModName);
|
_setLocationHeaderForMod(rq, "editmodule.html", sModName);
|
||||||
@@ -856,23 +586,15 @@ int _handleRqEditRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session
|
|||||||
AQH_Module_free(currentMod);
|
AQH_Module_free(currentMod);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Error loading module.</p>\n");
|
GBAS(dbuf, "<p>Error loading module.</p>\n");
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p><a href=\"index.html\"> back to module list</p>\n");
|
GBAS(dbuf, "<p><a href=\"index.html\"> back to module list</p>\n");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
}
|
||||||
return 0;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
int _handleRqDeleteRole(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
void _handleRqDeleteRole(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf)
|
||||||
{
|
{
|
||||||
uint32_t perms;
|
|
||||||
|
|
||||||
perms=AQH_ModService_GetUserPerms(m);
|
|
||||||
DBG_ERROR(NULL, "Perms=%08x", perms);
|
|
||||||
if (perms & AQH_MODADMMODULES_PERMS_MODULESWRITE) {
|
|
||||||
AQH_SERVICE *sv;
|
AQH_SERVICE *sv;
|
||||||
GWEN_DB_NODE *dbQuery;
|
GWEN_DB_NODE *dbQuery;
|
||||||
const char *sModName;
|
const char *sModName;
|
||||||
@@ -898,12 +620,10 @@ int _handleRqDeleteRole(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
|
|||||||
/* save module */
|
/* save module */
|
||||||
rv=AQH_Service_SaveModule(sv, currentMod);
|
rv=AQH_Service_SaveModule(sv, currentMod);
|
||||||
if (rv<0) {
|
if (rv<0) {
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Error saving module.</p>\n");
|
GBAS(dbuf, "<p>Error saving module.</p>\n");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
GBAA(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
AQH_Module_free(currentMod);
|
AQH_Module_free(currentMod);
|
||||||
return 0;
|
return;
|
||||||
}
|
}
|
||||||
|
|
||||||
_setLocationHeaderForMod(rq, "editmodule.html", sModName);
|
_setLocationHeaderForMod(rq, "editmodule.html", sModName);
|
||||||
@@ -911,27 +631,16 @@ int _handleRqDeleteRole(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
|
|||||||
AQCGI_Request_SetResponseText(rq, "See Other");
|
AQCGI_Request_SetResponseText(rq, "See Other");
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Role not found.</p>\n");
|
GBAS(dbuf, "<p>Role not found.</p>\n");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
GBAA(dbuf, "<p><a href=\"editmodule.html?name=\"%s\"> back to module</p>\n", sModName?sModName:"");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
}
|
||||||
AQH_Module_free(currentMod);
|
AQH_Module_free(currentMod);
|
||||||
}
|
}
|
||||||
else {
|
else {
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>Error loading module.</p>\n");
|
GBAS(dbuf, "<p>Error loading module.</p>\n");
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p><a href=\"index.html\"> back to module list</p>\n");
|
GBAS(dbuf, "<p><a href=\"index.html\"> back to module list</p>\n");
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
else {
|
|
||||||
GWEN_Buffer_AppendString(dbuf, "<p>No permissions to edit modules.</p>");
|
|
||||||
AQCGI_Request_SetResponseCode(rq, 200);
|
|
||||||
AQCGI_Request_SetResponseText(rq, "Ok");
|
|
||||||
}
|
|
||||||
return 0;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -940,17 +649,141 @@ void _setLocationHeaderForMod(AQCGI_REQUEST *rq, const char *page, const char *s
|
|||||||
GWEN_BUFFER *tbuf;
|
GWEN_BUFFER *tbuf;
|
||||||
|
|
||||||
tbuf=GWEN_Buffer_new(0, 256, 0, 1);
|
tbuf=GWEN_Buffer_new(0, 256, 0, 1);
|
||||||
GWEN_Buffer_AppendArgs(tbuf, "Location: %s?name=%s", page?page:"", sModName?sModName:"");
|
GBAA(tbuf, "Location: %s?name=%s", page?page:"", sModName?sModName:"");
|
||||||
AQCGI_Request_AddResponseHeaderData(rq, GWEN_Buffer_GetStart(tbuf));
|
AQCGI_Request_AddResponseHeaderData(rq, GWEN_Buffer_GetStart(tbuf));
|
||||||
GWEN_Buffer_free(tbuf);
|
GWEN_Buffer_free(tbuf);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
int _getHighestUsedRoleId(const AQH_ROLE_LIST *roleList)
|
||||||
|
{
|
||||||
|
int id=0;
|
||||||
|
|
||||||
|
if (roleList) {
|
||||||
|
const AQH_ROLE *role;
|
||||||
|
|
||||||
|
role=AQH_Role_List_First(roleList);
|
||||||
|
while(role) {
|
||||||
|
int rid;
|
||||||
|
|
||||||
|
rid=AQH_Role_GetId(role);
|
||||||
|
id=(rid>id)?rid:id;
|
||||||
|
role=AQH_Role_List_Next(role);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return id;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void _writeEditModForm(const AQH_MODULE *currentMod, const char *sModName, GWEN_BUFFER *dbuf)
|
||||||
|
{
|
||||||
|
const char *sName;
|
||||||
|
const char *sDescr;
|
||||||
|
const AQH_PERMDEF_LIST *permDefList;
|
||||||
|
const AQH_ROLE_LIST *roleList;
|
||||||
|
|
||||||
|
permDefList=AQH_Module_GetPermDefList(currentMod);
|
||||||
|
roleList=AQH_Module_GetRoleList(currentMod);
|
||||||
|
sName=AQH_Module_GetName(currentMod);
|
||||||
|
sDescr=AQH_Module_GetDescr(currentMod);
|
||||||
|
/* write module info */
|
||||||
|
GBAS(dbuf, "<h2>Module Info</h2>\n");
|
||||||
|
GBAA(dbuf,
|
||||||
|
"<form action=\"editmodule.html\" method=\"post\">\n"
|
||||||
|
"<table class=\"formtable\">\n"
|
||||||
|
"<tr>"
|
||||||
|
"<td><label for=\"name\">Name:</label></td>"
|
||||||
|
"<td><input type=\"text\" name=\"name\" value=\"%s\"></td>"
|
||||||
|
"</tr>\n"
|
||||||
|
"<tr>"
|
||||||
|
"<td><label for=\"descr\">Description:</label></td>"
|
||||||
|
"<td><input type=\"text\" name=\"descr\" value=\"%s\"></td>"
|
||||||
|
"</tr>\n",
|
||||||
|
sName?sName:"", sDescr?sDescr:"");
|
||||||
|
|
||||||
|
if (permDefList) {
|
||||||
|
GBAA(dbuf,
|
||||||
|
"<tr>"
|
||||||
|
"<td><label>Guest Permissions:</label></td>\n"
|
||||||
|
"<td>");
|
||||||
|
_writePermissionsToForm(permDefList, AQH_Module_GetGuestPerms(currentMod), dbuf);
|
||||||
|
GBAA(dbuf, "</td>" "</tr>");
|
||||||
|
}
|
||||||
|
|
||||||
|
GBAS(dbuf, "</table>\n");
|
||||||
|
|
||||||
|
GBAA(dbuf, "<input type=\"hidden\" name=\"module\" value=\"%s\">\n", sModName?sModName:"");
|
||||||
|
GBAS(dbuf, "<input type=\"submit\" value=\"Save\">\n</form>\n\n");
|
||||||
|
|
||||||
|
/* write role list */
|
||||||
|
GBAS(dbuf, "<h2>User Roles</h2>\n");
|
||||||
|
if (roleList)
|
||||||
|
_writeRoleListToForm(roleList, sModName, permDefList, dbuf);
|
||||||
|
else
|
||||||
|
GBAS(dbuf, "<p>none</p>");
|
||||||
|
GBAA(dbuf,
|
||||||
|
"<a href=\"addrole.html?mod=%s\">"
|
||||||
|
"<img src=\"/pics/plus.png\">Add Role</a>\n",
|
||||||
|
sModName?sModName:"");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void _writeRoleListToForm(const AQH_ROLE_LIST *roleList,
|
||||||
|
const char *sModName,
|
||||||
|
const AQH_PERMDEF_LIST *permDefList,
|
||||||
|
GWEN_BUFFER *dbuf)
|
||||||
|
{
|
||||||
|
const AQH_ROLE *role;
|
||||||
|
|
||||||
|
GBAS(dbuf,
|
||||||
|
"<table class=\"datatable\">\n"
|
||||||
|
"<thead>"
|
||||||
|
"<tr><th>Id</th><th>Name</th><th>Permissions</th><th>Description</th><th>Actions</th></tr>\n"
|
||||||
|
"</thead>\n"
|
||||||
|
"<tbody>\n");
|
||||||
|
role=AQH_Role_List_First(roleList);
|
||||||
|
while(role) {
|
||||||
|
uint8_t id;
|
||||||
|
const char *s;
|
||||||
|
|
||||||
|
GBAS(dbuf, "<tr>");
|
||||||
|
/* id */
|
||||||
|
id=AQH_Role_GetId(role);
|
||||||
|
GBAA(dbuf, "<td>%d</td>", id);
|
||||||
|
/* name */
|
||||||
|
s=AQH_Role_GetName(role);
|
||||||
|
GBAA(dbuf, "<td>%s</td>", s?s:"");
|
||||||
|
/* permissions */
|
||||||
|
GBAS(dbuf, "<td>");
|
||||||
|
if (permDefList)
|
||||||
|
_writeEnabledPermissions(permDefList, AQH_Role_GetPerms(role), dbuf);
|
||||||
|
GBAS(dbuf, "</td>");
|
||||||
|
/* description */
|
||||||
|
s=AQH_Role_GetDescr(role);
|
||||||
|
GBAA(dbuf, "<td>%s</td>", s?s:"");
|
||||||
|
/* actions */
|
||||||
|
GBAA(dbuf, "<td>");
|
||||||
|
GBAA(dbuf,
|
||||||
|
"<a href=\"editrole.html?mod=%s&id=%d\">"
|
||||||
|
"<img src=\"/pics/edit.png\"></a>",
|
||||||
|
sModName?sModName:"", id);
|
||||||
|
GBAA(dbuf,
|
||||||
|
"<a href=\"delrole.html?mod=%s&id=%d\">"
|
||||||
|
"<img src=\"/pics/minus.png\"></a>",
|
||||||
|
sModName?sModName:"", id);
|
||||||
|
GBAA(dbuf, "</td>");
|
||||||
|
|
||||||
|
GBAS(dbuf, "</tr>\n");
|
||||||
|
role=AQH_Role_List_Next(role);
|
||||||
|
}
|
||||||
|
|
||||||
|
GBAS(dbuf,
|
||||||
|
"</tbody>\n"
|
||||||
|
"</table>\n");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
@@ -970,10 +803,10 @@ void _writePermissionsToForm(const AQH_PERMDEF_LIST *permDefList, uint32_t perms
|
|||||||
s=AQH_PermDef_GetId(permDef);
|
s=AQH_PermDef_GetId(permDef);
|
||||||
mask=AQH_PermDef_GetMask(permDef);
|
mask=AQH_PermDef_GetMask(permDef);
|
||||||
if (perms & mask)
|
if (perms & mask)
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<input type=\"checkbox\" name=\"%s\" checked>", s?s:"");
|
GBAA(dbuf, "<input type=\"checkbox\" name=\"%s\" checked>", s?s:"");
|
||||||
else
|
else
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<input type=\"checkbox\" name=\"%s\">", s?s:"");
|
GBAA(dbuf, "<input type=\"checkbox\" name=\"%s\">", s?s:"");
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "<label for=\"%s\">%s</label>", s?s:"", s?s:"");
|
GBAA(dbuf, "<label for=\"%s\">%s</label>", s?s:"", s?s:"");
|
||||||
|
|
||||||
permDef=AQH_PermDef_List_Next(permDef);
|
permDef=AQH_PermDef_List_Next(permDef);
|
||||||
}
|
}
|
||||||
@@ -995,7 +828,7 @@ void _writeEnabledPermissions(const AQH_PERMDEF_LIST *permDefList, uint32_t perm
|
|||||||
s=AQH_PermDef_GetId(permDef);
|
s=AQH_PermDef_GetId(permDef);
|
||||||
mask=AQH_PermDef_GetMask(permDef);
|
mask=AQH_PermDef_GetMask(permDef);
|
||||||
if (perms & mask)
|
if (perms & mask)
|
||||||
GWEN_Buffer_AppendArgs(dbuf, "%s ", s?s:"");
|
GBAA(dbuf, "%s ", s?s:"");
|
||||||
permDef=AQH_PermDef_List_Next(permDef);
|
permDef=AQH_PermDef_List_Next(permDef);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -477,4 +477,49 @@ void AQH_ModService_AddRole(AQH_ROLE_LIST *roleList, int id, const char *name, u
|
|||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
void AQH_ModService_HandleRequestWithTable(AQH_MODULE *m,
|
||||||
|
AQCGI_REQUEST *rq,
|
||||||
|
AQH_SESSION *session,
|
||||||
|
const char *page,
|
||||||
|
const AQH_MODSERVICE_HANDLER_ENTRY *e)
|
||||||
|
{
|
||||||
|
uint32_t perms;
|
||||||
|
GWEN_BUFFER *dbuf;
|
||||||
|
int i;
|
||||||
|
|
||||||
|
perms=AQH_ModService_GetUserPerms(m);
|
||||||
|
DBG_ERROR(NULL, "Perms=%08x", perms);
|
||||||
|
|
||||||
|
dbuf=GWEN_Buffer_new(0, 256, 0, 1);
|
||||||
|
AQH_ModService_AddHeader(m, "en", dbuf);
|
||||||
|
|
||||||
|
for (i=0; ; i++) {
|
||||||
|
if (e[i].page==NULL) {
|
||||||
|
AQCGI_Request_SetResponseCode(rq, 404);
|
||||||
|
AQCGI_Request_SetResponseText(rq, "Not Found");
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
if ((AQCGI_Request_GetRequestMethod(rq)==e[i].httpMethod) &&
|
||||||
|
(strcasecmp(page, e[i].page)==0)) {
|
||||||
|
/* preset result */
|
||||||
|
AQCGI_Request_SetResponseCode(rq, 200);
|
||||||
|
AQCGI_Request_SetResponseText(rq, "Ok");
|
||||||
|
if ((perms & e[i].perms)==e[i].perms)
|
||||||
|
(e[i].handlerFn)(m, rq, session, dbuf);
|
||||||
|
else {
|
||||||
|
GWEN_Buffer_AppendString(dbuf, "<h1>Error</h1><p>No permissions for this request.</p>");
|
||||||
|
AQCGI_Request_SetResponseCode(rq, 403);
|
||||||
|
AQCGI_Request_SetResponseText(rq, "Forbidden");
|
||||||
|
}
|
||||||
|
break;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
AQH_ModService_AddFooter(m, "en", dbuf);
|
||||||
|
AQCGI_Request_SetBufferResponseBody(rq, dbuf);
|
||||||
|
AQCGI_Request_AddResponseHeaderData(rq, "Content-type: text/html");
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
|||||||
@@ -24,6 +24,15 @@ typedef void (*AQH_MODSERVICE_ADDHEADER_FN)(AQH_MODULE *m, const char *lang, GWE
|
|||||||
typedef void (*AQH_MODSERVICE_ADDFOOTER_FN)(AQH_MODULE *m, const char *lang, GWEN_BUFFER *dbuf);
|
typedef void (*AQH_MODSERVICE_ADDFOOTER_FN)(AQH_MODULE *m, const char *lang, GWEN_BUFFER *dbuf);
|
||||||
|
|
||||||
|
|
||||||
|
typedef struct AQH_MODSERVICE_HANDLER_ENTRY AQH_MODSERVICE_HANDLER_ENTRY;
|
||||||
|
struct AQH_MODSERVICE_HANDLER_ENTRY {
|
||||||
|
const char *page;
|
||||||
|
int httpMethod;
|
||||||
|
uint32_t perms;
|
||||||
|
void (*handlerFn)(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf);
|
||||||
|
};
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
void AQH_ModService_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder);
|
void AQH_ModService_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder);
|
||||||
|
|
||||||
@@ -41,6 +50,11 @@ int AQH_ModService_HandleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *
|
|||||||
AQH_SESSION *AQH_ModService_ReadSession(AQH_MODULE *m, AQCGI_REQUEST *rq);
|
AQH_SESSION *AQH_ModService_ReadSession(AQH_MODULE *m, AQCGI_REQUEST *rq);
|
||||||
void AQH_ModService_CalcSessionModPerms(AQH_MODULE *m, const AQH_SESSION *session);
|
void AQH_ModService_CalcSessionModPerms(AQH_MODULE *m, const AQH_SESSION *session);
|
||||||
|
|
||||||
|
void AQH_ModService_HandleRequestWithTable(AQH_MODULE *m,
|
||||||
|
AQCGI_REQUEST *rq,
|
||||||
|
AQH_SESSION *session,
|
||||||
|
const char *page,
|
||||||
|
const AQH_MODSERVICE_HANDLER_ENTRY *e);
|
||||||
|
|
||||||
int AQH_ModService_RespondWithFile(AQH_MODULE *m, AQCGI_REQUEST *rq, const char *lang, const char *sFilename, GWEN_BUFFER *dbuf);
|
int AQH_ModService_RespondWithFile(AQH_MODULE *m, AQCGI_REQUEST *rq, const char *lang, const char *sFilename, GWEN_BUFFER *dbuf);
|
||||||
int AQH_ModService_ReadStaticFile(AQH_MODULE *m, const char *lang, const char *filename, GWEN_BUFFER *dbuf);
|
int AQH_ModService_ReadStaticFile(AQH_MODULE *m, const char *lang, const char *filename, GWEN_BUFFER *dbuf);
|
||||||
|
|||||||
Reference in New Issue
Block a user