aqhome-cgi: use service code from AqCGI.

This commit is contained in:
Martin Preuss
2026-06-01 15:55:42 +02:00
parent 62741e1c16
commit c262c4a56a
52 changed files with 862 additions and 2119 deletions

View File

@@ -51,7 +51,6 @@
<useTargets> <useTargets>
aqhomecgi aqhomecgi
aqhcgi_service
aqhome aqhome
</useTargets> </useTargets>
@@ -121,7 +120,6 @@
<useTargets> <useTargets>
aqhome aqhome
aqhcgi_service
aqhcgi_modules aqhcgi_modules
</useTargets> </useTargets>
@@ -133,7 +131,6 @@
</libraries> </libraries>
<subdirs> <subdirs>
service
modules modules
</subdirs> </subdirs>

View File

@@ -38,7 +38,7 @@
*/ */
static void _handleRequest(AQCGI_REQUEST *rq, const char *sPathStaticFiles, const char *sPathRuntimeFiles, const char *sBaseUrl); static void _handleRequest(AQCGI_REQUEST *rq, const char *sPathStaticFiles, const char *sPathRuntimeFiles, const char *sBaseUrl);
static int _handlePath(AQH_SERVICE *sv, AQCGI_REQUEST *rq, const char *sPathStaticFiles); static int _handlePath(AQCGI_SERVICE *sv, AQCGI_REQUEST *rq, const char *sPathStaticFiles);
static void logStart(void); static void logStart(void);
static int _init(const char *sPathRuntimeFiles, const char *sBaseUrl); static int _init(const char *sPathRuntimeFiles, const char *sBaseUrl);
@@ -126,26 +126,26 @@ int main(int argc, char **argv)
void _handleRequest(AQCGI_REQUEST *rq, const char *sPathStaticFiles, const char *sPathRuntimeFiles, const char *sBaseUrl) void _handleRequest(AQCGI_REQUEST *rq, const char *sPathStaticFiles, const char *sPathRuntimeFiles, const char *sBaseUrl)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
int rv; int rv;
sv=AQH_ServiceFiles_new(sPathRuntimeFiles, sBaseUrl); sv=AQH_ServiceFiles_new(sPathRuntimeFiles, sBaseUrl);
AQH_Service_SetLoginUrl(sv, "/aqhome/login"); AQCGI_Service_SetLoginUrl(sv, "/aqhome/login");
rv=_handlePath(sv, rq, sPathStaticFiles); rv=_handlePath(sv, rq, sPathStaticFiles);
if (rv<0) { if (rv<0) {
DBG_INFO(NULL, "here (%d)", rv); DBG_INFO(NULL, "here (%d)", rv);
} }
AQH_Service_free(sv); AQCGI_Service_free(sv);
} }
int _handlePath(AQH_SERVICE *sv, AQCGI_REQUEST *rq, const char *sPathStaticFiles) int _handlePath(AQCGI_SERVICE *sv, AQCGI_REQUEST *rq, const char *sPathStaticFiles)
{ {
AQH_MODULE *mRoot; AQCGI_MODULE *mRoot;
AQH_MODULE *mParent; AQCGI_MODULE *mParent;
AQH_SESSION *session; AQCGI_SESSION *session;
const GWEN_STRINGLIST *sl; const GWEN_STRINGLIST *sl;
mRoot=AQH_ModRoot_new(sv, sPathStaticFiles); mRoot=AQH_ModRoot_new(sv, sPathStaticFiles);
@@ -166,13 +166,13 @@ int _handlePath(AQH_SERVICE *sv, AQCGI_REQUEST *rq, const char *sPathStaticFiles
s=GWEN_StringListEntry_Data(se); s=GWEN_StringListEntry_Data(se);
if (s && *s) { if (s && *s) {
if (seNext) { if (seNext) {
AQH_MODULE *m; AQCGI_MODULE *m;
DBG_ERROR(NULL, "Entry: %s (%s)", s, seNext?"not last":"last"); DBG_ERROR(NULL, "Entry: %s (%s)", s, seNext?"not last":"last");
m=AQH_ModService_LoadSubModule(mParent, rq, session, s); m=AQH_ModService_LoadSubModule(mParent, rq, session, s);
if (m==NULL) { if (m==NULL) {
AQH_Session_free(session); AQCGI_Session_free(session);
AQH_Module_free(mRoot); AQCGI_Module_free(mRoot);
return GWEN_ERROR_GENERIC; return GWEN_ERROR_GENERIC;
} }
mParent=m; mParent=m;
@@ -185,8 +185,8 @@ int _handlePath(AQH_SERVICE *sv, AQCGI_REQUEST *rq, const char *sPathStaticFiles
rv=AQH_ModService_HandleRequest(mParent, rq, session, s); rv=AQH_ModService_HandleRequest(mParent, rq, session, s);
if (rv<0) { if (rv<0) {
DBG_INFO(NULL, "here (%d)", rv); DBG_INFO(NULL, "here (%d)", rv);
AQH_Session_free(session); AQCGI_Session_free(session);
AQH_Module_free(mRoot); AQCGI_Module_free(mRoot);
return rv; return rv;
} }
break; break;
@@ -195,13 +195,13 @@ int _handlePath(AQH_SERVICE *sv, AQCGI_REQUEST *rq, const char *sPathStaticFiles
se=seNext; se=seNext;
} }
AQH_Session_free(session); AQCGI_Session_free(session);
AQH_Module_free(mRoot); AQCGI_Module_free(mRoot);
return 0; return 0;
} }
else { else {
AQH_Session_free(session); AQCGI_Session_free(session);
AQH_Module_free(mRoot); AQCGI_Module_free(mRoot);
return GWEN_ERROR_GENERIC; return GWEN_ERROR_GENERIC;
} }
} }
@@ -223,7 +223,7 @@ void logStart()
int _init(const char *sPathRuntimeFiles, const char *sBaseUrl) int _init(const char *sPathRuntimeFiles, const char *sBaseUrl)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
int rv; int rv;
DBG_ERROR(NULL, "Creating aqhome-cgi environment in \"%s\"", sPathRuntimeFiles); DBG_ERROR(NULL, "Creating aqhome-cgi environment in \"%s\"", sPathRuntimeFiles);
@@ -231,32 +231,32 @@ int _init(const char *sPathRuntimeFiles, const char *sBaseUrl)
rv=AQH_ModAdmin_Create(sv); rv=AQH_ModAdmin_Create(sv);
if (rv<0) { if (rv<0) {
DBG_ERROR(NULL, "Error creating module \"admin\""); DBG_ERROR(NULL, "Error creating module \"admin\"");
AQH_Service_free(sv); AQCGI_Service_free(sv);
return rv; return rv;
} }
rv=AQH_ModAdmModules_Create(sv); rv=AQH_ModAdmModules_Create(sv);
if (rv<0) { if (rv<0) {
DBG_ERROR(NULL, "Error creating module \"modules\""); DBG_ERROR(NULL, "Error creating module \"modules\"");
AQH_Service_free(sv); AQCGI_Service_free(sv);
return rv; return rv;
} }
rv=AQH_ModAdmUsers_Create(sv); rv=AQH_ModAdmUsers_Create(sv);
if (rv<0) { if (rv<0) {
DBG_ERROR(NULL, "Error creating module \"users\""); DBG_ERROR(NULL, "Error creating module \"users\"");
AQH_Service_free(sv); AQCGI_Service_free(sv);
return rv; return rv;
} }
rv=AQH_ModDevices_Create(sv); rv=AQH_ModDevices_Create(sv);
if (rv<0) { if (rv<0) {
DBG_ERROR(NULL, "Error creating module \"devices\""); DBG_ERROR(NULL, "Error creating module \"devices\"");
AQH_Service_free(sv); AQCGI_Service_free(sv);
return rv; return rv;
} }
AQH_Service_free(sv); AQCGI_Service_free(sv);
return 0; return 0;
} }

View File

@@ -6,6 +6,7 @@
<includes type="c" > <includes type="c" >
$(gwenhywfar_cflags) $(gwenhywfar_cflags)
$(aqcgi_cflags)
-I$(topsrcdir) -I$(topsrcdir)
-I$(topbuilddir) -I$(topbuilddir)
-I$(topsrcdir)/apps -I$(topsrcdir)/apps

View File

@@ -6,6 +6,7 @@
<includes type="c" > <includes type="c" >
$(gwenhywfar_cflags) $(gwenhywfar_cflags)
$(aqcgi_cflags)
-I$(topsrcdir) -I$(topsrcdir)
-I$(topbuilddir) -I$(topbuilddir)
-I$(topsrcdir)/apps -I$(topsrcdir)/apps

View File

@@ -13,10 +13,11 @@
#include "./madmin.h" #include "./madmin.h"
#include "aqhome-cgi/service/module.h"
#include "aqhome-cgi/modules/common/mmodules.h" #include "aqhome-cgi/modules/common/mmodules.h"
#include "aqhome-cgi/modules/common/musers.h" #include "aqhome-cgi/modules/common/musers.h"
#include <aqcgi/service/module.h>
#include <gwenhywfar/debug.h> #include <gwenhywfar/debug.h>
#include <gwenhywfar/timestamp.h> #include <gwenhywfar/timestamp.h>
@@ -37,12 +38,12 @@
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
static void _createPermDefList(AQH_MODULE *m); static void _createPermDefList(AQCGI_MODULE *m);
static void _createRoleList(AQH_MODULE *m); static void _createRoleList(AQCGI_MODULE *m);
static AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName); static AQCGI_MODULE *_loadSubModule(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sModuleName);
static int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sLastPathElem); static int _handleRequest(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sLastPathElem);
static int _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf); static int _handleRqIndex(AQCGI_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf);
/* ------------------------------------------------------------------------------------------------ /* ------------------------------------------------------------------------------------------------
@@ -50,7 +51,7 @@ static int _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf);
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModAdmin_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder) void AQH_ModAdmin_Extend(AQCGI_MODULE *m, AQCGI_SERVICE *sv, const char *baseFolder)
{ {
AQH_ModService_Extend(m, sv, baseFolder); AQH_ModService_Extend(m, sv, baseFolder);
AQH_ModService_SetHandleRequestFn(m, _handleRequest); AQH_ModService_SetHandleRequestFn(m, _handleRequest);
@@ -59,65 +60,65 @@ void AQH_ModAdmin_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder)
int AQH_ModAdmin_Create(AQH_SERVICE *sv) int AQH_ModAdmin_Create(AQCGI_SERVICE *sv)
{ {
AQH_MODULE *m; AQCGI_MODULE *m;
int rv; int rv;
m=AQH_Module_new(); m=AQCGI_Module_new();
AQH_Module_SetName(m, "admin"); AQCGI_Module_SetName(m, "admin");
AQH_Module_SetDescr(m, "administration module"); AQCGI_Module_SetDescr(m, "administration module");
AQH_Module_SetGuestPerms(m, 0); AQCGI_Module_SetGuestPerms(m, 0);
_createPermDefList(m); _createPermDefList(m);
_createRoleList(m); _createRoleList(m);
rv=AQH_Service_AddModule(sv, m); rv=AQCGI_Service_AddModule(sv, m);
if (rv<0) { if (rv<0) {
DBG_INFO(NULL, "here (%d)", rv); DBG_INFO(NULL, "here (%d)", rv);
} }
AQH_Module_free(m); AQCGI_Module_free(m);
return rv; return rv;
} }
void _createPermDefList(AQH_MODULE *m) void _createPermDefList(AQCGI_MODULE *m)
{ {
AQH_PERMDEF_LIST *permDefList; AQCGI_PERMDEF_LIST *permDefList;
permDefList=AQH_PermDef_List_new(); permDefList=AQCGI_PermDef_List_new();
AQH_ModService_AddPermDef(permDefList, "AdminUsers", 0x001, "User Administration"); AQH_ModService_AddPermDef(permDefList, "AdminUsers", 0x001, "User Administration");
AQH_ModService_AddPermDef(permDefList, "AdminModules", 0x002, "Module Administration"); AQH_ModService_AddPermDef(permDefList, "AdminModules", 0x002, "Module Administration");
AQH_Module_SetPermDefList(m, permDefList); AQCGI_Module_SetPermDefList(m, permDefList);
} }
void _createRoleList(AQH_MODULE *m) void _createRoleList(AQCGI_MODULE *m)
{ {
AQH_ROLE_LIST *roleList; AQCGI_ROLE_LIST *roleList;
int id=1; int id=1;
roleList=AQH_Role_List_new(); roleList=AQCGI_Role_List_new();
AQH_ModService_AddRole(roleList, id++, "userAdmin", AQH_MODADM_PERMS_ADMINUSERS, "User administrator"); AQH_ModService_AddRole(roleList, id++, "userAdmin", AQH_MODADM_PERMS_ADMINUSERS, "User administrator");
AQH_ModService_AddRole(roleList, id++, "moduleAdmin", AQH_MODADM_PERMS_ADMINMODULES, "Module administrator"); AQH_ModService_AddRole(roleList, id++, "moduleAdmin", AQH_MODADM_PERMS_ADMINMODULES, "Module administrator");
AQH_Module_SetRoleList(m, roleList); AQCGI_Module_SetRoleList(m, roleList);
} }
AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName) AQCGI_MODULE *_loadSubModule(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sModuleName)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
if (strcasecmp(sModuleName, "modules")==0) { if (strcasecmp(sModuleName, "modules")==0) {
AQH_MODULE *mSub; AQCGI_MODULE *mSub;
mSub=AQH_Service_LoadModule(sv, sModuleName); mSub=AQCGI_Service_LoadModule(sv, sModuleName);
if (mSub) { if (mSub) {
const char *s; const char *s;
GWEN_BUFFER *nbuf; GWEN_BUFFER *nbuf;
@@ -127,15 +128,15 @@ AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *sessio
GWEN_Buffer_AppendArgs(nbuf, "%s/modules", s?s:"."); GWEN_Buffer_AppendArgs(nbuf, "%s/modules", s?s:".");
AQH_ModAdmModules_Extend(mSub, AQH_ModService_GetService(m), GWEN_Buffer_GetStart(nbuf)); AQH_ModAdmModules_Extend(mSub, AQH_ModService_GetService(m), GWEN_Buffer_GetStart(nbuf));
AQH_Module_Tree2_AddChild(m, mSub); AQCGI_Module_Tree2_AddChild(m, mSub);
GWEN_Buffer_free(nbuf); GWEN_Buffer_free(nbuf);
return mSub; return mSub;
} }
} }
else if (strcasecmp(sModuleName, "users")==0) { else if (strcasecmp(sModuleName, "users")==0) {
AQH_MODULE *mSub; AQCGI_MODULE *mSub;
mSub=AQH_Service_LoadModule(sv, sModuleName); mSub=AQCGI_Service_LoadModule(sv, sModuleName);
if (mSub) { if (mSub) {
const char *s; const char *s;
GWEN_BUFFER *nbuf; GWEN_BUFFER *nbuf;
@@ -145,7 +146,7 @@ AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *sessio
GWEN_Buffer_AppendArgs(nbuf, "%s/modules", s?s:"."); GWEN_Buffer_AppendArgs(nbuf, "%s/modules", s?s:".");
AQH_ModAdmUsers_Extend(mSub, AQH_ModService_GetService(m), GWEN_Buffer_GetStart(nbuf)); AQH_ModAdmUsers_Extend(mSub, AQH_ModService_GetService(m), GWEN_Buffer_GetStart(nbuf));
AQH_Module_Tree2_AddChild(m, mSub); AQCGI_Module_Tree2_AddChild(m, mSub);
GWEN_Buffer_free(nbuf); GWEN_Buffer_free(nbuf);
return mSub; return mSub;
} }
@@ -155,7 +156,7 @@ 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(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sLastPathElem)
{ {
GWEN_BUFFER *dbuf; GWEN_BUFFER *dbuf;
int rv=0; int rv=0;
@@ -182,7 +183,7 @@ int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const
int _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf) int _handleRqIndex(AQCGI_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf)
{ {
if (AQCGI_Request_GetRequestMethod(rq)==AQCGI_REQUEST_METHOD_GET) { if (AQCGI_Request_GetRequestMethod(rq)==AQCGI_REQUEST_METHOD_GET) {
uint32_t userPerms; uint32_t userPerms;

View File

@@ -20,9 +20,9 @@
#define AQH_MODADM_PERMS_ADMINMODULES 0x002 #define AQH_MODADM_PERMS_ADMINMODULES 0x002
void AQH_ModAdmin_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder); void AQH_ModAdmin_Extend(AQCGI_MODULE *m, AQCGI_SERVICE *sv, const char *baseFolder);
int AQH_ModAdmin_Create(AQH_SERVICE *sv); int AQH_ModAdmin_Create(AQCGI_SERVICE *sv);

View File

@@ -35,33 +35,33 @@
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
static void _createPermDefList(AQH_MODULE *m); static void _createPermDefList(AQCGI_MODULE *m);
static void _createRoleList(AQH_MODULE *m); static void _createRoleList(AQCGI_MODULE *m);
static AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName); static AQCGI_MODULE *_loadSubModule(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sModuleName);
static int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sLastPathElem); static int _handleRequest(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sLastPathElem);
static void _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqIndex(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqEditModGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqEditModGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqEditModPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqEditModPost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqAddRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqAddRoleGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqAddRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqAddRolePost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqEditRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqEditRoleGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqEditRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqEditRolePost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static int _getHighestUsedRoleId(const AQH_ROLE_LIST *roleList); static int _getHighestUsedRoleId(const AQCGI_ROLE_LIST *roleList);
static void _handleRqDeleteRole(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqDeleteRole(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _writeEditModForm(const AQH_MODULE *currentMod, const char *sModName, GWEN_BUFFER *dbuf); static void _writeEditModForm(const AQCGI_MODULE *currentMod, const char *sModName, GWEN_BUFFER *dbuf);
static void _writeRoleListToForm(const AQH_ROLE_LIST *roleList, static void _writeRoleListToForm(const AQCGI_ROLE_LIST *roleList,
const char *sModName, const char *sModName,
const AQH_PERMDEF_LIST *permDefList, const AQCGI_PERMDEF_LIST *permDefList,
GWEN_BUFFER *dbuf); GWEN_BUFFER *dbuf);
static void _setLocationHeaderForMod(AQCGI_REQUEST *rq, const char *page, const char *sModName); static void _setLocationHeaderForMod(AQCGI_REQUEST *rq, const char *page, const char *sModName);
static void _writeEnabledPermissions(const AQH_PERMDEF_LIST *permDefList, uint32_t perms, GWEN_BUFFER *dbuf); static void _writeEnabledPermissions(const AQCGI_PERMDEF_LIST *permDefList, uint32_t perms, GWEN_BUFFER *dbuf);
@@ -89,7 +89,7 @@ static AQH_MODSERVICE_HANDLER_ENTRY _requestTable[]={
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModAdmModules_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder) void AQH_ModAdmModules_Extend(AQCGI_MODULE *m, AQCGI_SERVICE *sv, const char *baseFolder)
{ {
AQH_ModService_Extend(m, sv, baseFolder); AQH_ModService_Extend(m, sv, baseFolder);
AQH_ModService_SetHandleRequestFn(m, _handleRequest); AQH_ModService_SetHandleRequestFn(m, _handleRequest);
@@ -98,63 +98,63 @@ void AQH_ModAdmModules_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFo
int AQH_ModAdmModules_Create(AQH_SERVICE *sv) int AQH_ModAdmModules_Create(AQCGI_SERVICE *sv)
{ {
AQH_MODULE *m; AQCGI_MODULE *m;
int rv; int rv;
m=AQH_Module_new(); m=AQCGI_Module_new();
AQH_Module_SetName(m, "modules"); AQCGI_Module_SetName(m, "modules");
AQH_Module_SetDescr(m, "modules administration module"); AQCGI_Module_SetDescr(m, "modules administration module");
AQH_Module_SetGuestPerms(m, 0); AQCGI_Module_SetGuestPerms(m, 0);
_createPermDefList(m); _createPermDefList(m);
_createRoleList(m); _createRoleList(m);
rv=AQH_Service_AddModule(sv, m); rv=AQCGI_Service_AddModule(sv, m);
if (rv<0) { if (rv<0) {
DBG_INFO(NULL, "here (%d)", rv); DBG_INFO(NULL, "here (%d)", rv);
} }
AQH_Module_free(m); AQCGI_Module_free(m);
return rv; return rv;
} }
void _createPermDefList(AQH_MODULE *m) void _createPermDefList(AQCGI_MODULE *m)
{ {
AQH_PERMDEF_LIST *permDefList; AQCGI_PERMDEF_LIST *permDefList;
permDefList=AQH_PermDef_List_new(); permDefList=AQCGI_PermDef_List_new();
AQH_ModService_AddPermDef(permDefList, "ModuleRead", 0x001, "Read modules"); AQH_ModService_AddPermDef(permDefList, "ModuleRead", 0x001, "Read modules");
AQH_ModService_AddPermDef(permDefList, "ModuleWrite", 0x002, "Modify modules"); AQH_ModService_AddPermDef(permDefList, "ModuleWrite", 0x002, "Modify modules");
AQH_ModService_AddPermDef(permDefList, "ModuleAdd", 0x004, "Add modules"); AQH_ModService_AddPermDef(permDefList, "ModuleAdd", 0x004, "Add modules");
AQH_ModService_AddPermDef(permDefList, "ModuleDel", 0x008, "Remove modules"); AQH_ModService_AddPermDef(permDefList, "ModuleDel", 0x008, "Remove modules");
AQH_Module_SetPermDefList(m, permDefList); AQCGI_Module_SetPermDefList(m, permDefList);
} }
void _createRoleList(AQH_MODULE *m) void _createRoleList(AQCGI_MODULE *m)
{ {
AQH_ROLE_LIST *roleList; AQCGI_ROLE_LIST *roleList;
int id=1; int id=1;
roleList=AQH_Role_List_new(); roleList=AQCGI_Role_List_new();
AQH_ModService_AddRole(roleList, id++, "admin", AQH_ModService_AddRole(roleList, id++, "admin",
AQH_MODADMMODULES_PERMS_MODULESREAD | AQH_MODADMMODULES_PERMS_MODULESREAD |
AQH_MODADMMODULES_PERMS_MODULESWRITE | AQH_MODADMMODULES_PERMS_MODULESWRITE |
AQH_MODADMMODULES_PERMS_MODULESADD | AQH_MODADMMODULES_PERMS_MODULESADD |
AQH_MODADMMODULES_PERMS_MODULESDEL, AQH_MODADMMODULES_PERMS_MODULESDEL,
"Administrator Role"); "Administrator Role");
AQH_Module_SetRoleList(m, roleList); AQCGI_Module_SetRoleList(m, roleList);
} }
AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName) AQCGI_MODULE *_loadSubModule(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sModuleName)
{ {
/* no sub-modules */ /* no sub-modules */
return NULL; return NULL;
@@ -162,7 +162,7 @@ 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(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sLastPathElem)
{ {
AQH_ModService_HandleRequestWithTable(m, rq, session, sLastPathElem, _requestTable); AQH_ModService_HandleRequestWithTable(m, rq, session, sLastPathElem, _requestTable);
return AQCGI_SendResponse(rq); return AQCGI_SendResponse(rq);
@@ -170,15 +170,15 @@ int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const
void _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqIndex(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_STRINGLIST *slModules; GWEN_STRINGLIST *slModules;
uint32_t perms; uint32_t perms;
perms=AQH_ModService_GetUserPerms(m); perms=AQH_ModService_GetUserPerms(m);
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
slModules=AQH_Service_ListModules(sv); slModules=AQCGI_Service_ListModules(sv);
if (slModules) { if (slModules) {
GWEN_STRINGLISTENTRY *se; GWEN_STRINGLISTENTRY *se;
@@ -195,18 +195,18 @@ void _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN
sModName=GWEN_StringListEntry_Data(se); sModName=GWEN_StringListEntry_Data(se);
if (sModName && *sModName) { if (sModName && *sModName) {
AQH_MODULE *currentMod; AQCGI_MODULE *currentMod;
currentMod=AQH_Service_LoadModule(sv, sModName); currentMod=AQCGI_Service_LoadModule(sv, sModName);
if (currentMod) { if (currentMod) {
const char *s; const char *s;
const char *sName; const char *sName;
sName=AQH_Module_GetName(currentMod); sName=AQCGI_Module_GetName(currentMod);
GBAS(dbuf, "<tr>"); GBAS(dbuf, "<tr>");
GBAA(dbuf, "<td>%lu</td>", (unsigned long int) AQH_Module_GetId(currentMod)); GBAA(dbuf, "<td>%lu</td>", (unsigned long int) AQCGI_Module_GetId(currentMod));
GBAA(dbuf, "<td>%s</td>", sName?sName:""); GBAA(dbuf, "<td>%s</td>", sName?sName:"");
s=AQH_Module_GetDescr(currentMod); s=AQCGI_Module_GetDescr(currentMod);
GBAA(dbuf, "<td>%s</td>", s?s:""); GBAA(dbuf, "<td>%s</td>", s?s:"");
GBAS(dbuf, "<td>"); GBAS(dbuf, "<td>");
@@ -214,7 +214,7 @@ void _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN
GBAA(dbuf, "<a href=\"editmodule.html?name=%s\"><img src=\"/pics/edit.png\"></a>", sName?sName:""); GBAA(dbuf, "<a href=\"editmodule.html?name=%s\"><img src=\"/pics/edit.png\"></a>", sName?sName:"");
GBAA(dbuf, "</td>\n"); GBAA(dbuf, "</td>\n");
GBAA(dbuf, "</tr>\n"); GBAA(dbuf, "</tr>\n");
AQH_Module_free(currentMod); AQCGI_Module_free(currentMod);
} }
} }
se=GWEN_StringListEntry_Next(se); se=GWEN_StringListEntry_Next(se);
@@ -230,20 +230,20 @@ void _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN
void _handleRqEditModGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqEditModGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_DB_NODE *dbQuery; GWEN_DB_NODE *dbQuery;
const char *sModName; const char *sModName;
AQH_MODULE *currentMod; AQCGI_MODULE *currentMod;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
dbQuery=AQCGI_Request_GetDbQuery(rq); dbQuery=AQCGI_Request_GetDbQuery(rq);
sModName=dbQuery?GWEN_DB_GetCharValue(dbQuery, "name", 0, NULL):NULL; sModName=dbQuery?GWEN_DB_GetCharValue(dbQuery, "name", 0, NULL):NULL;
currentMod=(sModName && *sModName)?AQH_Service_LoadModule(sv, sModName):NULL; currentMod=(sModName && *sModName)?AQCGI_Service_LoadModule(sv, sModName):NULL;
if (currentMod) { if (currentMod) {
_writeEditModForm(currentMod, sModName, dbuf); _writeEditModForm(currentMod, sModName, dbuf);
AQH_Module_free(currentMod); AQCGI_Module_free(currentMod);
} }
else { else {
AQCGI_Request_AddResponseHeaderData(rq, "Location: index.html"); AQCGI_Request_AddResponseHeaderData(rq, "Location: index.html");
@@ -254,42 +254,42 @@ void _handleRqEditModGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
void _handleRqEditModPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqEditModPost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_DB_NODE *dbPost; GWEN_DB_NODE *dbPost;
const char *sModName; const char *sModName;
AQH_MODULE *currentMod; AQCGI_MODULE *currentMod;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
dbPost=AQCGI_Request_GetDbPostBody(rq); dbPost=AQCGI_Request_GetDbPostBody(rq);
sModName=dbPost?GWEN_DB_GetCharValue(dbPost, "module", 0, NULL):NULL; sModName=dbPost?GWEN_DB_GetCharValue(dbPost, "module", 0, NULL):NULL;
currentMod=(sModName && *sModName)?AQH_Service_LoadModule(sv, sModName):NULL; currentMod=(sModName && *sModName)?AQCGI_Service_LoadModule(sv, sModName):NULL;
if (currentMod) { if (currentMod) {
const char *sNewModName; const char *sNewModName;
const char *sDescr; const char *sDescr;
int rv; int rv;
uint32_t perms; uint32_t perms;
const AQH_PERMDEF_LIST *permDefList; const AQCGI_PERMDEF_LIST *permDefList;
permDefList=AQH_Module_GetPermDefList(currentMod); permDefList=AQCGI_Module_GetPermDefList(currentMod);
sNewModName=GWEN_DB_GetCharValue(dbPost, "name", 0, NULL); sNewModName=GWEN_DB_GetCharValue(dbPost, "name", 0, NULL);
sDescr=GWEN_DB_GetCharValue(dbPost, "descr", 0, NULL); sDescr=GWEN_DB_GetCharValue(dbPost, "descr", 0, NULL);
perms=AQH_ModService_ReadPermsFromForm(dbPost, permDefList, NULL); perms=AQH_ModService_ReadPermsFromForm(dbPost, permDefList, NULL);
if (sNewModName && *sNewModName) if (sNewModName && *sNewModName)
AQH_Module_SetName(currentMod, sNewModName); AQCGI_Module_SetName(currentMod, sNewModName);
AQH_Module_SetDescr(currentMod, sDescr); AQCGI_Module_SetDescr(currentMod, sDescr);
AQH_Module_SetGuestPerms(currentMod, perms); AQCGI_Module_SetGuestPerms(currentMod, perms);
rv=AQH_Service_SaveModule(sv, currentMod); rv=AQCGI_Service_SaveModule(sv, currentMod);
if (rv<0) { if (rv<0) {
GBAS(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);
AQH_Module_free(currentMod); AQCGI_Module_free(currentMod);
return; return;
} }
DBG_ERROR(NULL, "Module \"%s\" saved", sModName); DBG_ERROR(NULL, "Module \"%s\" saved", sModName);
AQH_Module_free(currentMod); AQCGI_Module_free(currentMod);
AQCGI_Request_AddResponseHeaderData(rq, "Location: index.html"); AQCGI_Request_AddResponseHeaderData(rq, "Location: index.html");
AQCGI_Request_SetResponseCode(rq, 303); AQCGI_Request_SetResponseCode(rq, 303);
AQCGI_Request_SetResponseText(rq, "See other"); AQCGI_Request_SetResponseText(rq, "See other");
@@ -302,21 +302,21 @@ void _handleRqEditModPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session
void _handleRqAddRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqAddRoleGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_DB_NODE *dbQuery; GWEN_DB_NODE *dbQuery;
const char *sModName; const char *sModName;
AQH_MODULE *currentMod; AQCGI_MODULE *currentMod;
const AQH_PERMDEF_LIST *permDefList; const AQCGI_PERMDEF_LIST *permDefList;
uint32_t guestPerms; uint32_t guestPerms;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
dbQuery=AQCGI_Request_GetDbQuery(rq); dbQuery=AQCGI_Request_GetDbQuery(rq);
sModName=dbQuery?GWEN_DB_GetCharValue(dbQuery, "mod", 0, NULL):NULL; sModName=dbQuery?GWEN_DB_GetCharValue(dbQuery, "mod", 0, NULL):NULL;
currentMod=(sModName && *sModName)?AQH_Service_LoadModule(sv, sModName):NULL; currentMod=(sModName && *sModName)?AQCGI_Service_LoadModule(sv, sModName):NULL;
guestPerms=currentMod?AQH_Module_GetGuestPerms(currentMod):0; guestPerms=currentMod?AQCGI_Module_GetGuestPerms(currentMod):0;
permDefList=currentMod?AQH_Module_GetPermDefList(currentMod):NULL; permDefList=currentMod?AQCGI_Module_GetPermDefList(currentMod):NULL;
if (currentMod) { if (currentMod) {
if (permDefList) { if (permDefList) {
@@ -340,7 +340,7 @@ void _handleRqAddRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
GBAS(dbuf, "<p>Please add permission definitions first.</p>\n"); GBAS(dbuf, "<p>Please add permission definitions first.</p>\n");
GBAA(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:"");
} }
AQH_Module_free(currentMod); AQCGI_Module_free(currentMod);
} }
else { else {
GBAS(dbuf, "<p>Error loading module.</p>\n"); GBAS(dbuf, "<p>Error loading module.</p>\n");
@@ -350,18 +350,18 @@ void _handleRqAddRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
void _handleRqAddRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqAddRolePost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_DB_NODE *dbPost; GWEN_DB_NODE *dbPost;
const char *sModName; const char *sModName;
AQH_MODULE *currentMod; AQCGI_MODULE *currentMod;
int newId; int newId;
const char *sName; const char *sName;
const char *sDescr; const char *sDescr;
uint32_t perms; uint32_t perms;
AQH_PERMDEF_LIST *permDefList; AQCGI_PERMDEF_LIST *permDefList;
AQH_ROLE_LIST *roleList; AQCGI_ROLE_LIST *roleList;
int rv; int rv;
/* sample data */ /* sample data */
@@ -369,9 +369,9 @@ void _handleRqAddRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
dbPost=AQCGI_Request_GetDbPostBody(rq); dbPost=AQCGI_Request_GetDbPostBody(rq);
sModName=dbPost?GWEN_DB_GetCharValue(dbPost, "mod", 0, NULL):NULL; sModName=dbPost?GWEN_DB_GetCharValue(dbPost, "mod", 0, NULL):NULL;
currentMod=(sModName && *sModName)?AQH_Service_LoadModule(sv, sModName):NULL; currentMod=(sModName && *sModName)?AQCGI_Service_LoadModule(sv, sModName):NULL;
permDefList=currentMod?AQH_Module_GetPermDefList(currentMod):NULL; permDefList=currentMod?AQCGI_Module_GetPermDefList(currentMod):NULL;
roleList=currentMod?AQH_Module_GetRoleList(currentMod):NULL; roleList=currentMod?AQCGI_Module_GetRoleList(currentMod):NULL;
/* read role values */ /* read role values */
newId=(roleList?_getHighestUsedRoleId(roleList):0)+1; newId=(roleList?_getHighestUsedRoleId(roleList):0)+1;
sName=dbPost?GWEN_DB_GetCharValue(dbPost, "name", 0, NULL):NULL; sName=dbPost?GWEN_DB_GetCharValue(dbPost, "name", 0, NULL):NULL;
@@ -387,33 +387,33 @@ void _handleRqAddRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session
} }
if (currentMod) { if (currentMod) {
AQH_ROLE *role; AQCGI_ROLE *role;
/* set new values */ /* set new values */
role=AQH_Role_new(); role=AQCGI_Role_new();
AQH_Role_SetId(role, newId); AQCGI_Role_SetId(role, newId);
AQH_Role_SetName(role, sName); AQCGI_Role_SetName(role, sName);
AQH_Role_SetDescr(role, sDescr); AQCGI_Role_SetDescr(role, sDescr);
AQH_Role_SetPerms(role, perms); AQCGI_Role_SetPerms(role, perms);
/* add role */ /* add role */
if (roleList==NULL) { if (roleList==NULL) {
roleList=AQH_Role_List_new(); roleList=AQCGI_Role_List_new();
AQH_Module_SetRoleList(currentMod, roleList); AQCGI_Module_SetRoleList(currentMod, roleList);
} }
AQH_Role_List_Add(role, roleList); AQCGI_Role_List_Add(role, roleList);
/* save module */ /* save module */
rv=AQH_Service_SaveModule(sv, currentMod); rv=AQCGI_Service_SaveModule(sv, currentMod);
if (rv<0) { if (rv<0) {
GBAS(dbuf, "<p>Error saving module.</p>\n"); GBAS(dbuf, "<p>Error saving module.</p>\n");
GBAA(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:"");
AQH_Module_free(currentMod); AQCGI_Module_free(currentMod);
return; return;
} }
_setLocationHeaderForMod(rq, "editmodule.html", sModName); _setLocationHeaderForMod(rq, "editmodule.html", sModName);
AQCGI_Request_SetResponseCode(rq, 303); AQCGI_Request_SetResponseCode(rq, 303);
AQCGI_Request_SetResponseText(rq, "See Other"); AQCGI_Request_SetResponseText(rq, "See Other");
AQH_Module_free(currentMod); AQCGI_Module_free(currentMod);
} }
else { else {
GBAS(dbuf, "<p>Error loading module.</p>\n"); GBAS(dbuf, "<p>Error loading module.</p>\n");
@@ -423,31 +423,31 @@ void _handleRqAddRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session
void _handleRqEditRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqEditRoleGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_DB_NODE *dbQuery; GWEN_DB_NODE *dbQuery;
const char *sModName; const char *sModName;
int id; int id;
const char *sName; const char *sName;
const char *sDescr; const char *sDescr;
uint32_t perms; uint32_t perms;
AQH_MODULE *currentMod; AQCGI_MODULE *currentMod;
const AQH_PERMDEF_LIST *permDefList; const AQCGI_PERMDEF_LIST *permDefList;
const AQH_ROLE_LIST *roleList; const AQCGI_ROLE_LIST *roleList;
const AQH_ROLE *role; const AQCGI_ROLE *role;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
dbQuery=AQCGI_Request_GetDbQuery(rq); dbQuery=AQCGI_Request_GetDbQuery(rq);
sModName=dbQuery?GWEN_DB_GetCharValue(dbQuery, "mod", 0, NULL):NULL; sModName=dbQuery?GWEN_DB_GetCharValue(dbQuery, "mod", 0, NULL):NULL;
id=dbQuery?GWEN_DB_GetIntValue(dbQuery, "id", 0, 0):0; id=dbQuery?GWEN_DB_GetIntValue(dbQuery, "id", 0, 0):0;
currentMod=(sModName && *sModName)?AQH_Service_LoadModule(sv, sModName):NULL; currentMod=(sModName && *sModName)?AQCGI_Service_LoadModule(sv, sModName):NULL;
permDefList=currentMod?AQH_Module_GetPermDefList(currentMod):NULL; permDefList=currentMod?AQCGI_Module_GetPermDefList(currentMod):NULL;
roleList=currentMod?AQH_Module_GetRoleList(currentMod):NULL; roleList=currentMod?AQCGI_Module_GetRoleList(currentMod):NULL;
role=roleList?AQH_Role_List_GetById(roleList, id):NULL; role=roleList?AQCGI_Role_List_GetById(roleList, id):NULL;
sName=role?AQH_Role_GetName(role):NULL; sName=role?AQCGI_Role_GetName(role):NULL;
sDescr=role?AQH_Role_GetDescr(role):NULL; sDescr=role?AQCGI_Role_GetDescr(role):NULL;
perms=role?AQH_Role_GetPerms(role):0; perms=role?AQCGI_Role_GetPerms(role):0;
if (role) { if (role) {
GBAA(dbuf, "<h2>Edit Role for Module %s</h2>\n", sModName?sModName:""); GBAA(dbuf, "<h2>Edit Role for Module %s</h2>\n", sModName?sModName:"");
@@ -477,33 +477,33 @@ void _handleRqEditRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session
void _handleRqEditRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqEditRolePost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_DB_NODE *dbPost; GWEN_DB_NODE *dbPost;
const char *sModName; const char *sModName;
AQH_MODULE *currentMod; AQCGI_MODULE *currentMod;
int oldId; int oldId;
const char *sName; const char *sName;
const char *sDescr; const char *sDescr;
uint32_t perms; uint32_t perms;
AQH_PERMDEF_LIST *permDefList; AQCGI_PERMDEF_LIST *permDefList;
AQH_ROLE_LIST *roleList; AQCGI_ROLE_LIST *roleList;
AQH_ROLE *role; AQCGI_ROLE *role;
int rv; int rv;
/* sample data */ /* sample data */
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
dbPost=AQCGI_Request_GetDbPostBody(rq); dbPost=AQCGI_Request_GetDbPostBody(rq);
sModName=dbPost?GWEN_DB_GetCharValue(dbPost, "mod", 0, NULL):NULL; sModName=dbPost?GWEN_DB_GetCharValue(dbPost, "mod", 0, NULL):NULL;
currentMod=(sModName && *sModName)?AQH_Service_LoadModule(sv, sModName):NULL; currentMod=(sModName && *sModName)?AQCGI_Service_LoadModule(sv, sModName):NULL;
permDefList=currentMod?AQH_Module_GetPermDefList(currentMod):NULL; permDefList=currentMod?AQCGI_Module_GetPermDefList(currentMod):NULL;
roleList=currentMod?AQH_Module_GetRoleList(currentMod):NULL; roleList=currentMod?AQCGI_Module_GetRoleList(currentMod):NULL;
/* read role data */ /* read role data */
oldId=dbPost?GWEN_DB_GetIntValue(dbPost, "oldId", 0, -1):-1; oldId=dbPost?GWEN_DB_GetIntValue(dbPost, "oldId", 0, -1):-1;
sName=dbPost?GWEN_DB_GetCharValue(dbPost, "name", 0, NULL):NULL; sName=dbPost?GWEN_DB_GetCharValue(dbPost, "name", 0, NULL):NULL;
sDescr=dbPost?GWEN_DB_GetCharValue(dbPost, "descr", 0, NULL):NULL; sDescr=dbPost?GWEN_DB_GetCharValue(dbPost, "descr", 0, NULL):NULL;
role=roleList?AQH_Role_List_GetById(roleList, oldId):NULL; role=roleList?AQCGI_Role_List_GetById(roleList, oldId):NULL;
perms=(dbPost && permDefList)?AQH_ModService_ReadPermsFromForm(dbPost, permDefList, NULL):0; perms=(dbPost && permDefList)?AQH_ModService_ReadPermsFromForm(dbPost, permDefList, NULL):0;
/* validate */ /* validate */
if (!(sName && *sName)) { if (!(sName && *sName)) {
@@ -521,23 +521,23 @@ void _handleRqEditRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *sessio
if (currentMod) { if (currentMod) {
/* set new values */ /* set new values */
AQH_Role_SetName(role, sName); AQCGI_Role_SetName(role, sName);
AQH_Role_SetDescr(role, sDescr); AQCGI_Role_SetDescr(role, sDescr);
AQH_Role_SetPerms(role, perms); AQCGI_Role_SetPerms(role, perms);
/* save module */ /* save module */
rv=AQH_Service_SaveModule(sv, currentMod); rv=AQCGI_Service_SaveModule(sv, currentMod);
if (rv<0) { if (rv<0) {
GBAS(dbuf, "<p>Error saving module.</p>\n"); GBAS(dbuf, "<p>Error saving module.</p>\n");
GBAA(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:"");
AQH_Module_free(currentMod); AQCGI_Module_free(currentMod);
return; return;
} }
_setLocationHeaderForMod(rq, "editmodule.html", sModName); _setLocationHeaderForMod(rq, "editmodule.html", sModName);
AQCGI_Request_SetResponseCode(rq, 303); AQCGI_Request_SetResponseCode(rq, 303);
AQCGI_Request_SetResponseText(rq, "See Other"); AQCGI_Request_SetResponseText(rq, "See Other");
AQH_Module_free(currentMod); AQCGI_Module_free(currentMod);
} }
else { else {
GBAS(dbuf, "<p>Error loading module.</p>\n"); GBAS(dbuf, "<p>Error loading module.</p>\n");
@@ -547,36 +547,36 @@ void _handleRqEditRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *sessio
void _handleRqDeleteRole(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqDeleteRole(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_DB_NODE *dbQuery; GWEN_DB_NODE *dbQuery;
const char *sModName; const char *sModName;
int id; int id;
AQH_MODULE *currentMod; AQCGI_MODULE *currentMod;
const AQH_ROLE_LIST *roleList; const AQCGI_ROLE_LIST *roleList;
AQH_ROLE *role; AQCGI_ROLE *role;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
dbQuery=AQCGI_Request_GetDbQuery(rq); dbQuery=AQCGI_Request_GetDbQuery(rq);
sModName=dbQuery?GWEN_DB_GetCharValue(dbQuery, "mod", 0, NULL):NULL; sModName=dbQuery?GWEN_DB_GetCharValue(dbQuery, "mod", 0, NULL):NULL;
id=dbQuery?GWEN_DB_GetIntValue(dbQuery, "id", 0, 0):0; id=dbQuery?GWEN_DB_GetIntValue(dbQuery, "id", 0, 0):0;
currentMod=(sModName && *sModName)?AQH_Service_LoadModule(sv, sModName):NULL; currentMod=(sModName && *sModName)?AQCGI_Service_LoadModule(sv, sModName):NULL;
if (currentMod) { if (currentMod) {
roleList=currentMod?AQH_Module_GetRoleList(currentMod):NULL; roleList=currentMod?AQCGI_Module_GetRoleList(currentMod):NULL;
role=roleList?AQH_Role_List_GetById(roleList, id):NULL; role=roleList?AQCGI_Role_List_GetById(roleList, id):NULL;
if (role) { if (role) {
int rv; int rv;
AQH_Role_List_Del(role); AQCGI_Role_List_Del(role);
AQH_Role_free(role); AQCGI_Role_free(role);
/* save module */ /* save module */
rv=AQH_Service_SaveModule(sv, currentMod); rv=AQCGI_Service_SaveModule(sv, currentMod);
if (rv<0) { if (rv<0) {
GBAS(dbuf, "<p>Error saving module.</p>\n"); GBAS(dbuf, "<p>Error saving module.</p>\n");
GBAA(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:"");
AQH_Module_free(currentMod); AQCGI_Module_free(currentMod);
return; return;
} }
@@ -588,7 +588,7 @@ void _handleRqDeleteRole(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
GBAS(dbuf, "<p>Role not found.</p>\n"); GBAS(dbuf, "<p>Role not found.</p>\n");
GBAA(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:"");
} }
AQH_Module_free(currentMod); AQCGI_Module_free(currentMod);
} }
else { else {
GBAS(dbuf, "<p>Error loading module.</p>\n"); GBAS(dbuf, "<p>Error loading module.</p>\n");
@@ -610,20 +610,20 @@ void _setLocationHeaderForMod(AQCGI_REQUEST *rq, const char *page, const char *s
int _getHighestUsedRoleId(const AQH_ROLE_LIST *roleList) int _getHighestUsedRoleId(const AQCGI_ROLE_LIST *roleList)
{ {
int id=0; int id=0;
if (roleList) { if (roleList) {
const AQH_ROLE *role; const AQCGI_ROLE *role;
role=AQH_Role_List_First(roleList); role=AQCGI_Role_List_First(roleList);
while(role) { while(role) {
int rid; int rid;
rid=AQH_Role_GetId(role); rid=AQCGI_Role_GetId(role);
id=(rid>id)?rid:id; id=(rid>id)?rid:id;
role=AQH_Role_List_Next(role); role=AQCGI_Role_List_Next(role);
} }
} }
return id; return id;
@@ -631,17 +631,17 @@ int _getHighestUsedRoleId(const AQH_ROLE_LIST *roleList)
void _writeEditModForm(const AQH_MODULE *currentMod, const char *sModName, GWEN_BUFFER *dbuf) void _writeEditModForm(const AQCGI_MODULE *currentMod, const char *sModName, GWEN_BUFFER *dbuf)
{ {
const char *sName; const char *sName;
const char *sDescr; const char *sDescr;
const AQH_PERMDEF_LIST *permDefList; const AQCGI_PERMDEF_LIST *permDefList;
const AQH_ROLE_LIST *roleList; const AQCGI_ROLE_LIST *roleList;
permDefList=AQH_Module_GetPermDefList(currentMod); permDefList=AQCGI_Module_GetPermDefList(currentMod);
roleList=AQH_Module_GetRoleList(currentMod); roleList=AQCGI_Module_GetRoleList(currentMod);
sName=AQH_Module_GetName(currentMod); sName=AQCGI_Module_GetName(currentMod);
sDescr=AQH_Module_GetDescr(currentMod); sDescr=AQCGI_Module_GetDescr(currentMod);
/* write module info */ /* write module info */
GBAS(dbuf, "<h2>Module Info</h2>\n"); GBAS(dbuf, "<h2>Module Info</h2>\n");
GBAA(dbuf, GBAA(dbuf,
@@ -653,7 +653,7 @@ void _writeEditModForm(const AQH_MODULE *currentMod, const char *sModName, GWEN_
if (permDefList) { if (permDefList) {
GBAA(dbuf, "<tr><td><label>Guest Permissions:</label></td>\n<td>"); GBAA(dbuf, "<tr><td><label>Guest Permissions:</label></td>\n<td>");
AQH_ModService_WritePermsToForm(AQH_Module_GetGuestPerms(currentMod), permDefList, NULL, dbuf); AQH_ModService_WritePermsToForm(AQCGI_Module_GetGuestPerms(currentMod), permDefList, NULL, dbuf);
GBAA(dbuf, "</td></tr>"); GBAA(dbuf, "</td></tr>");
} }
@@ -673,36 +673,36 @@ void _writeEditModForm(const AQH_MODULE *currentMod, const char *sModName, GWEN_
void _writeRoleListToForm(const AQH_ROLE_LIST *roleList, void _writeRoleListToForm(const AQCGI_ROLE_LIST *roleList,
const char *sModName, const char *sModName,
const AQH_PERMDEF_LIST *permDefList, const AQCGI_PERMDEF_LIST *permDefList,
GWEN_BUFFER *dbuf) GWEN_BUFFER *dbuf)
{ {
const AQH_ROLE *role; const AQCGI_ROLE *role;
GBAS(dbuf, GBAS(dbuf,
"<table class=\"datatable\">\n" "<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" "<thead><tr><th>Id</th><th>Name</th><th>Permissions</th><th>Description</th><th>Actions</th></tr>\n</thead>\n"
"<tbody>\n"); "<tbody>\n");
role=AQH_Role_List_First(roleList); role=AQCGI_Role_List_First(roleList);
while(role) { while(role) {
uint8_t id; uint8_t id;
const char *s; const char *s;
GBAS(dbuf, "<tr>"); GBAS(dbuf, "<tr>");
/* id */ /* id */
id=AQH_Role_GetId(role); id=AQCGI_Role_GetId(role);
GBAA(dbuf, "<td>%d</td>", id); GBAA(dbuf, "<td>%d</td>", id);
/* name */ /* name */
s=AQH_Role_GetName(role); s=AQCGI_Role_GetName(role);
GBAA(dbuf, "<td>%s</td>", s?s:""); GBAA(dbuf, "<td>%s</td>", s?s:"");
/* permissions */ /* permissions */
GBAS(dbuf, "<td>"); GBAS(dbuf, "<td>");
if (permDefList) if (permDefList)
_writeEnabledPermissions(permDefList, AQH_Role_GetPerms(role), dbuf); _writeEnabledPermissions(permDefList, AQCGI_Role_GetPerms(role), dbuf);
GBAS(dbuf, "</td>"); GBAS(dbuf, "</td>");
/* description */ /* description */
s=AQH_Role_GetDescr(role); s=AQCGI_Role_GetDescr(role);
GBAA(dbuf, "<td>%s</td>", s?s:""); GBAA(dbuf, "<td>%s</td>", s?s:"");
/* actions */ /* actions */
GBAA(dbuf, "<td>"); GBAA(dbuf, "<td>");
@@ -711,7 +711,7 @@ void _writeRoleListToForm(const AQH_ROLE_LIST *roleList,
GBAA(dbuf, "</td>"); GBAA(dbuf, "</td>");
GBAS(dbuf, "</tr>\n"); GBAS(dbuf, "</tr>\n");
role=AQH_Role_List_Next(role); role=AQCGI_Role_List_Next(role);
} }
GBAS(dbuf, "</tbody>\n</table>\n"); GBAS(dbuf, "</tbody>\n</table>\n");
@@ -722,21 +722,21 @@ void _writeRoleListToForm(const AQH_ROLE_LIST *roleList,
void _writeEnabledPermissions(const AQH_PERMDEF_LIST *permDefList, uint32_t perms, GWEN_BUFFER *dbuf) void _writeEnabledPermissions(const AQCGI_PERMDEF_LIST *permDefList, uint32_t perms, GWEN_BUFFER *dbuf)
{ {
if (permDefList) { if (permDefList) {
const AQH_PERMDEF *permDef; const AQCGI_PERMDEF *permDef;
permDef=AQH_PermDef_List_First(permDefList); permDef=AQCGI_PermDef_List_First(permDefList);
while(permDef) { while(permDef) {
const char *s; const char *s;
uint32_t mask; uint32_t mask;
s=AQH_PermDef_GetId(permDef); s=AQCGI_PermDef_GetId(permDef);
mask=AQH_PermDef_GetMask(permDef); mask=AQCGI_PermDef_GetMask(permDef);
if (perms & mask) if (perms & mask)
GBAA(dbuf, "%s ", s?s:""); GBAA(dbuf, "%s ", s?s:"");
permDef=AQH_PermDef_List_Next(permDef); permDef=AQCGI_PermDef_List_Next(permDef);
} }
} }
} }

View File

@@ -24,9 +24,9 @@
void AQH_ModAdmModules_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder); void AQH_ModAdmModules_Extend(AQCGI_MODULE *m, AQCGI_SERVICE *sv, const char *baseFolder);
int AQH_ModAdmModules_Create(AQH_SERVICE *sv); int AQH_ModAdmModules_Create(AQCGI_SERVICE *sv);

View File

@@ -13,7 +13,7 @@
#include "./mservice_p.h" #include "./mservice_p.h"
#include "aqhome-cgi/service/module.h" #include <aqcgi/service/module.h>
#include <gwenhywfar/debug.h> #include <gwenhywfar/debug.h>
#include <gwenhywfar/text.h> #include <gwenhywfar/text.h>
@@ -46,7 +46,7 @@
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
GWEN_INHERIT(AQH_MODULE, AQH_MOD_SERVICE) GWEN_INHERIT(AQCGI_MODULE, AQH_MOD_SERVICE)
@@ -56,8 +56,8 @@ GWEN_INHERIT(AQH_MODULE, AQH_MOD_SERVICE)
*/ */
static void GWENHYWFAR_CB _freeData(void *bp, void *p); static void GWENHYWFAR_CB _freeData(void *bp, void *p);
static void _calcUserModPerms(AQH_MODULE *m, const AQH_USER *user); static void _calcUserModPerms(AQCGI_MODULE *m, const AQCGI_USER *user);
static uint32_t _calcRolePerms(const AQH_MODULE *m, const AQH_MODULE_PERMS *modPerms); static uint32_t _calcRolePerms(const AQCGI_MODULE *m, const AQCGI_MODULE_PERMS *modPerms);
@@ -66,12 +66,12 @@ static uint32_t _calcRolePerms(const AQH_MODULE *m, const AQH_MODULE_PERMS *modP
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModService_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder) void AQH_ModService_Extend(AQCGI_MODULE *m, AQCGI_SERVICE *sv, const char *baseFolder)
{ {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
GWEN_NEW_OBJECT(AQH_MOD_SERVICE, xm); GWEN_NEW_OBJECT(AQH_MOD_SERVICE, xm);
GWEN_INHERIT_SETDATA(AQH_MODULE, AQH_MOD_SERVICE, m, xm, _freeData); GWEN_INHERIT_SETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m, xm, _freeData);
xm->service=sv; xm->service=sv;
xm->baseFolder=(baseFolder && *baseFolder)?strdup(baseFolder):NULL; xm->baseFolder=(baseFolder && *baseFolder)?strdup(baseFolder):NULL;
@@ -90,12 +90,12 @@ void _freeData(GWEN_UNUSED void *bp, void *p)
AQH_SERVICE *AQH_ModService_GetService(const AQH_MODULE *m) AQCGI_SERVICE *AQH_ModService_GetService(const AQCGI_MODULE *m)
{ {
if (m) { if (m) {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
xm=GWEN_INHERIT_GETDATA(AQH_MODULE, AQH_MOD_SERVICE, m); xm=GWEN_INHERIT_GETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m);
if (xm) { if (xm) {
return xm->service; return xm->service;
} }
@@ -105,12 +105,12 @@ AQH_SERVICE *AQH_ModService_GetService(const AQH_MODULE *m)
const char *AQH_ModService_GetBaseFolder(const AQH_MODULE *m) const char *AQH_ModService_GetBaseFolder(const AQCGI_MODULE *m)
{ {
if (m) { if (m) {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
xm=GWEN_INHERIT_GETDATA(AQH_MODULE, AQH_MOD_SERVICE, m); xm=GWEN_INHERIT_GETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m);
if (xm) { if (xm) {
return xm->baseFolder; return xm->baseFolder;
} }
@@ -120,12 +120,12 @@ const char *AQH_ModService_GetBaseFolder(const AQH_MODULE *m)
uint32_t AQH_ModService_GetUserPerms(const AQH_MODULE *m) uint32_t AQH_ModService_GetUserPerms(const AQCGI_MODULE *m)
{ {
if (m) { if (m) {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
xm=GWEN_INHERIT_GETDATA(AQH_MODULE, AQH_MOD_SERVICE, m); xm=GWEN_INHERIT_GETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m);
if (xm) { if (xm) {
return xm->userPerms; return xm->userPerms;
} }
@@ -135,12 +135,12 @@ uint32_t AQH_ModService_GetUserPerms(const AQH_MODULE *m)
void AQH_ModService_SetHandleRequestFn(AQH_MODULE *m, AQH_MODSERVICE_HANDLEREQUEST_FN fn) void AQH_ModService_SetHandleRequestFn(AQCGI_MODULE *m, AQH_MODSERVICE_HANDLEREQUEST_FN fn)
{ {
if (m) { if (m) {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
xm=GWEN_INHERIT_GETDATA(AQH_MODULE, AQH_MOD_SERVICE, m); xm=GWEN_INHERIT_GETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m);
if (xm) { if (xm) {
xm->handleRequestFn=fn; xm->handleRequestFn=fn;
} }
@@ -149,12 +149,12 @@ void AQH_ModService_SetHandleRequestFn(AQH_MODULE *m, AQH_MODSERVICE_HANDLEREQUE
void AQH_ModService_SetLoadSubModuleFn(AQH_MODULE *m, AQH_MODSERVICE_LOADSUBMODULE_FN fn) void AQH_ModService_SetLoadSubModuleFn(AQCGI_MODULE *m, AQH_MODSERVICE_LOADSUBMODULE_FN fn)
{ {
if (m) { if (m) {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
xm=GWEN_INHERIT_GETDATA(AQH_MODULE, AQH_MOD_SERVICE, m); xm=GWEN_INHERIT_GETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m);
if (xm) { if (xm) {
xm->loadSubModuleFn=fn; xm->loadSubModuleFn=fn;
} }
@@ -163,12 +163,12 @@ void AQH_ModService_SetLoadSubModuleFn(AQH_MODULE *m, AQH_MODSERVICE_LOADSUBMODU
void AQH_ModService_SetAddHeaderFn(AQH_MODULE *m, AQH_MODSERVICE_ADDHEADER_FN fn) void AQH_ModService_SetAddHeaderFn(AQCGI_MODULE *m, AQH_MODSERVICE_ADDHEADER_FN fn)
{ {
if (m) { if (m) {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
xm=GWEN_INHERIT_GETDATA(AQH_MODULE, AQH_MOD_SERVICE, m); xm=GWEN_INHERIT_GETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m);
if (xm) { if (xm) {
xm->addHeaderFn=fn; xm->addHeaderFn=fn;
} }
@@ -177,12 +177,12 @@ void AQH_ModService_SetAddHeaderFn(AQH_MODULE *m, AQH_MODSERVICE_ADDHEADER_FN fn
void AQH_ModService_SetAddFooterFn(AQH_MODULE *m, AQH_MODSERVICE_ADDFOOTER_FN fn) void AQH_ModService_SetAddFooterFn(AQCGI_MODULE *m, AQH_MODSERVICE_ADDFOOTER_FN fn)
{ {
if (m) { if (m) {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
xm=GWEN_INHERIT_GETDATA(AQH_MODULE, AQH_MOD_SERVICE, m); xm=GWEN_INHERIT_GETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m);
if (xm) { if (xm) {
xm->addFooterFn=fn; xm->addFooterFn=fn;
} }
@@ -191,19 +191,19 @@ void AQH_ModService_SetAddFooterFn(AQH_MODULE *m, AQH_MODSERVICE_ADDFOOTER_FN fn
void AQH_ModService_AddHeader(AQH_MODULE *m, const char *lang, GWEN_BUFFER *dbuf) void AQH_ModService_AddHeader(AQCGI_MODULE *m, const char *lang, GWEN_BUFFER *dbuf)
{ {
if (m && dbuf) { if (m && dbuf) {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
xm=GWEN_INHERIT_GETDATA(AQH_MODULE, AQH_MOD_SERVICE, m); xm=GWEN_INHERIT_GETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m);
if (xm) { if (xm) {
if (xm->addHeaderFn) if (xm->addHeaderFn)
xm->addHeaderFn(m, lang, dbuf); xm->addHeaderFn(m, lang, dbuf);
else { else {
AQH_MODULE *mParent; AQCGI_MODULE *mParent;
mParent=AQH_Module_Tree2_GetParent(m); mParent=AQCGI_Module_Tree2_GetParent(m);
if (mParent) if (mParent)
AQH_ModService_AddHeader(mParent, lang, dbuf); AQH_ModService_AddHeader(mParent, lang, dbuf);
AQH_ModService_ReadStaticFile(m, lang, AQH_MOD_SERVICE_HEADERFILE, dbuf); AQH_ModService_ReadStaticFile(m, lang, AQH_MOD_SERVICE_HEADERFILE, dbuf);
@@ -214,21 +214,21 @@ void AQH_ModService_AddHeader(AQH_MODULE *m, const char *lang, GWEN_BUFFER *dbuf
void AQH_ModService_AddFooter(AQH_MODULE *m, const char *lang, GWEN_BUFFER *dbuf) void AQH_ModService_AddFooter(AQCGI_MODULE *m, const char *lang, GWEN_BUFFER *dbuf)
{ {
if (m && dbuf) { if (m && dbuf) {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
xm=GWEN_INHERIT_GETDATA(AQH_MODULE, AQH_MOD_SERVICE, m); xm=GWEN_INHERIT_GETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m);
if (xm) { if (xm) {
if (xm->addFooterFn) if (xm->addFooterFn)
xm->addFooterFn(m, lang, dbuf); xm->addFooterFn(m, lang, dbuf);
else { else {
AQH_MODULE *mParent; AQCGI_MODULE *mParent;
AQH_ModService_ReadStaticFile(m, lang, AQH_MOD_SERVICE_FOOTERFILE, dbuf); AQH_ModService_ReadStaticFile(m, lang, AQH_MOD_SERVICE_FOOTERFILE, dbuf);
mParent=AQH_Module_Tree2_GetParent(m); mParent=AQCGI_Module_Tree2_GetParent(m);
if (mParent) if (mParent)
AQH_ModService_AddFooter(mParent, lang, dbuf); AQH_ModService_AddFooter(mParent, lang, dbuf);
} }
@@ -238,7 +238,7 @@ void AQH_ModService_AddFooter(AQH_MODULE *m, const char *lang, 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_RespondWithFile(AQCGI_MODULE *m, AQCGI_REQUEST *rq, const char *lang, const char *sFilename, GWEN_BUFFER *dbuf)
{ {
int rv; int rv;
@@ -256,7 +256,7 @@ int AQH_ModService_RespondWithFile(AQH_MODULE *m, AQCGI_REQUEST *rq, const char
int AQH_ModService_RespondWithVarFile(AQH_MODULE *m, AQCGI_REQUEST *rq, int AQH_ModService_RespondWithVarFile(AQCGI_MODULE *m, AQCGI_REQUEST *rq,
const char *lang, const char *lang,
const char *sFilename, const char *sFilename,
GWEN_DB_NODE *dbVars, GWEN_DB_NODE *dbVars,
@@ -284,12 +284,12 @@ int AQH_ModService_RespondWithVarFile(AQH_MODULE *m, AQCGI_REQUEST *rq,
int AQH_ModService_HandleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sLastPathElem) int AQH_ModService_HandleRequest(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sLastPathElem)
{ {
if (m) { if (m) {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
xm=GWEN_INHERIT_GETDATA(AQH_MODULE, AQH_MOD_SERVICE, m); xm=GWEN_INHERIT_GETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m);
if (xm && xm->handleRequestFn) if (xm && xm->handleRequestFn)
return xm->handleRequestFn(m, rq, session, sLastPathElem); return xm->handleRequestFn(m, rq, session, sLastPathElem);
} }
@@ -298,14 +298,14 @@ int AQH_ModService_HandleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *
AQH_MODULE *AQH_ModService_LoadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName) AQCGI_MODULE *AQH_ModService_LoadSubModule(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sModuleName)
{ {
if (m) { if (m) {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
xm=GWEN_INHERIT_GETDATA(AQH_MODULE, AQH_MOD_SERVICE, m); xm=GWEN_INHERIT_GETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m);
if (xm && xm->loadSubModuleFn) { if (xm && xm->loadSubModuleFn) {
AQH_MODULE *mReturn; AQCGI_MODULE *mReturn;
mReturn=xm->loadSubModuleFn(m, rq, session, sModuleName); mReturn=xm->loadSubModuleFn(m, rq, session, sModuleName);
if (mReturn) if (mReturn)
@@ -318,12 +318,12 @@ AQH_MODULE *AQH_ModService_LoadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_S
int AQH_ModService_ReadStaticFile(AQH_MODULE *m, const char *lang, const char *filename, GWEN_BUFFER *dbuf) int AQH_ModService_ReadStaticFile(AQCGI_MODULE *m, const char *lang, const char *filename, GWEN_BUFFER *dbuf)
{ {
if (m && filename && dbuf) { if (m && filename && dbuf) {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
xm=GWEN_INHERIT_GETDATA(AQH_MODULE, AQH_MOD_SERVICE, m); xm=GWEN_INHERIT_GETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m);
if (xm) { if (xm) {
GWEN_BUFFER *fbuf; GWEN_BUFFER *fbuf;
int rv; int rv;
@@ -351,9 +351,9 @@ int AQH_ModService_ReadStaticFile(AQH_MODULE *m, const char *lang, const char *f
AQH_SESSION *AQH_ModService_ReadSession(AQH_MODULE *m, AQCGI_REQUEST *rq) AQCGI_SESSION *AQH_ModService_ReadSession(AQCGI_MODULE *m, AQCGI_REQUEST *rq)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_DB_NODE *db; GWEN_DB_NODE *db;
const char *s; const char *s;
@@ -361,9 +361,9 @@ AQH_SESSION *AQH_ModService_ReadSession(AQH_MODULE *m, AQCGI_REQUEST *rq)
db=AQCGI_Request_GetDbRequestHeader(rq); db=AQCGI_Request_GetDbRequestHeader(rq);
s=GWEN_DB_GetCharValue(db, "cookies/session", 0, NULL); s=GWEN_DB_GetCharValue(db, "cookies/session", 0, NULL);
if (s && *s) { if (s && *s) {
AQH_SESSION *session; AQCGI_SESSION *session;
session=AQH_Service_LoadSession(sv, s); session=AQCGI_Service_LoadSession(sv, s);
if (session==NULL) { if (session==NULL) {
DBG_ERROR(NULL, "Session \"%s\" not found", s); DBG_ERROR(NULL, "Session \"%s\" not found", s);
return NULL; return NULL;
@@ -372,24 +372,24 @@ AQH_SESSION *AQH_ModService_ReadSession(AQH_MODULE *m, AQCGI_REQUEST *rq)
const char *sUserName; const char *sUserName;
GWEN_BUFFER *tbuf; GWEN_BUFFER *tbuf;
sUserName=AQH_Session_GetUserAlias(session); sUserName=AQCGI_Session_GetUserAlias(session);
if (sUserName && *sUserName) { if (sUserName && *sUserName) {
AQH_USER *user; AQCGI_USER *user;
user=AQH_Service_LoadUser(sv, sUserName); user=AQCGI_Service_LoadUser(sv, sUserName);
if (user==NULL) { if (user==NULL) {
DBG_ERROR(NULL, "User \"%s\" not found", sUserName); DBG_ERROR(NULL, "User \"%s\" not found", sUserName);
AQH_Session_free(session); AQCGI_Session_free(session);
return NULL; return NULL;
} }
else { else {
DBG_ERROR(NULL, "User is \"%s\"", sUserName); DBG_ERROR(NULL, "User is \"%s\"", sUserName);
} }
AQH_Session_SetUser(session, user); AQCGI_Session_SetUser(session, user);
} }
/* renew session cookie */ /* renew session cookie */
tbuf=GWEN_Buffer_new(0, 256, 0, 1); tbuf=GWEN_Buffer_new(0, 256, 0, 1);
GWEN_Buffer_AppendArgs(tbuf, "Set-Cookie: session=%s; max-age=86400", AQH_Session_GetUid(session)); GWEN_Buffer_AppendArgs(tbuf, "Set-Cookie: session=%s; max-age=86400", AQCGI_Session_GetUid(session));
AQCGI_Request_AddResponseHeaderData(rq, GWEN_Buffer_GetStart(tbuf)); AQCGI_Request_AddResponseHeaderData(rq, GWEN_Buffer_GetStart(tbuf));
DBG_ERROR(NULL, "Renew session cookie"); DBG_ERROR(NULL, "Renew session cookie");
GWEN_Buffer_free(tbuf); GWEN_Buffer_free(tbuf);
@@ -404,44 +404,44 @@ 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(AQCGI_MODULE *m, const AQCGI_SESSION *session)
{ {
const AQH_USER *user; const AQCGI_USER *user;
user=session?AQH_Session_GetUser(session):NULL; user=session?AQCGI_Session_GetUser(session):NULL;
_calcUserModPerms(m, user); _calcUserModPerms(m, user);
} }
void _calcUserModPerms(AQH_MODULE *m, const AQH_USER *user) void _calcUserModPerms(AQCGI_MODULE *m, const AQCGI_USER *user)
{ {
if (m) { if (m) {
AQH_MOD_SERVICE *xm; AQH_MOD_SERVICE *xm;
xm=GWEN_INHERIT_GETDATA(AQH_MODULE, AQH_MOD_SERVICE, m); xm=GWEN_INHERIT_GETDATA(AQCGI_MODULE, AQH_MOD_SERVICE, m);
if (xm) { if (xm) {
uint32_t perms=0; uint32_t perms=0;
if (user) { if (user) {
if (AQH_User_GetFlags(user) & AQH_USER_FLAGS_ADMIN) if (AQCGI_User_GetFlags(user) & AQCGI_USER_FLAGS_ADMIN)
perms=0xffffffff; perms=0xffffffff;
else { else {
const char *sModName; const char *sModName;
const AQH_MODULE_PERMS_LIST *modPermsList; const AQCGI_MODULE_PERMS_LIST *modPermsList;
AQH_MODULE_PERMS *modPerms; AQCGI_MODULE_PERMS *modPerms;
sModName=AQH_Module_GetName(m); sModName=AQCGI_Module_GetName(m);
modPermsList=AQH_User_GetModulePermList(user); modPermsList=AQCGI_User_GetModulePermList(user);
modPerms=(sModName && modPermsList)?AQH_ModulePerms_List_GetByModuleId(modPermsList, sModName):NULL; modPerms=(sModName && modPermsList)?AQCGI_ModulePerms_List_GetByModuleId(modPermsList, sModName):NULL;
if (modPerms) if (modPerms)
perms=_calcRolePerms(m, modPerms); perms=_calcRolePerms(m, modPerms);
else else
perms=AQH_Module_GetGuestPerms(m); perms=AQCGI_Module_GetGuestPerms(m);
} }
} /* if (user) */ } /* if (user) */
else else
perms=AQH_Module_GetGuestPerms(m); perms=AQCGI_Module_GetGuestPerms(m);
xm->userPerms=perms; xm->userPerms=perms;
} }
} /* if (m) */ } /* if (m) */
@@ -449,39 +449,39 @@ void _calcUserModPerms(AQH_MODULE *m, const AQH_USER *user)
uint32_t _calcRolePerms(const AQH_MODULE *m, const AQH_MODULE_PERMS *modPerms) uint32_t _calcRolePerms(const AQCGI_MODULE *m, const AQCGI_MODULE_PERMS *modPerms)
{ {
uint32_t perms=0; uint32_t perms=0;
const AQH_ROLE_LIST *roleList; const AQCGI_ROLE_LIST *roleList;
roleList=AQH_Module_GetRoleList(m); roleList=AQCGI_Module_GetRoleList(m);
if (roleList) { if (roleList) {
int roleArraySize; int roleArraySize;
int i; int i;
uint32_t explAddPerms=0; uint32_t explAddPerms=0;
uint32_t explDelPerms=0; uint32_t explDelPerms=0;
roleArraySize=AQH_ModulePerms_GetRoleArrayArraySize(); roleArraySize=AQCGI_ModulePerms_GetRoleArrayArraySize();
for (i=0; i<roleArraySize; i++) { for (i=0; i<roleArraySize; i++) {
int roleId; int roleId;
roleId=AQH_ModulePerms_GetRoleArrayAt(modPerms, i); roleId=AQCGI_ModulePerms_GetRoleArrayAt(modPerms, i);
if (roleId) { if (roleId) {
const AQH_ROLE *role; const AQCGI_ROLE *role;
role=AQH_Role_List_GetById(roleList, roleId); role=AQCGI_Role_List_GetById(roleList, roleId);
if (role) { if (role) {
perms|=AQH_Role_GetPerms(role); perms|=AQCGI_Role_GetPerms(role);
explAddPerms|=AQH_Role_GetExplAddPerms(role); explAddPerms|=AQCGI_Role_GetExplAddPerms(role);
explAddPerms|=AQH_Role_GetExplDelPerms(role); explAddPerms|=AQCGI_Role_GetExplDelPerms(role);
} }
} }
} /* for */ } /* for */
/* collate permissions */ /* collate permissions */
perms|=explAddPerms; perms|=explAddPerms;
perms|=AQH_ModulePerms_GetExplAddPerms(modPerms); perms|=AQCGI_ModulePerms_GetExplAddPerms(modPerms);
perms&=~explDelPerms; perms&=~explDelPerms;
perms&=~AQH_ModulePerms_GetExplDelPerms(modPerms); perms&=~AQCGI_ModulePerms_GetExplDelPerms(modPerms);
} }
return perms; return perms;
} }
@@ -489,36 +489,36 @@ uint32_t _calcRolePerms(const AQH_MODULE *m, const AQH_MODULE_PERMS *modPerms)
void AQH_ModService_AddPermDef(AQH_PERMDEF_LIST *permDefList, const char *id, uint32_t mask, const char *descr) void AQH_ModService_AddPermDef(AQCGI_PERMDEF_LIST *permDefList, const char *id, uint32_t mask, const char *descr)
{ {
AQH_PERMDEF *permDef; AQCGI_PERMDEF *permDef;
permDef=AQH_PermDef_new(); permDef=AQCGI_PermDef_new();
AQH_PermDef_SetId(permDef, id); AQCGI_PermDef_SetId(permDef, id);
AQH_PermDef_SetMask(permDef, mask); AQCGI_PermDef_SetMask(permDef, mask);
AQH_PermDef_SetDescr(permDef, descr); AQCGI_PermDef_SetDescr(permDef, descr);
AQH_PermDef_List_Add(permDef, permDefList); AQCGI_PermDef_List_Add(permDef, permDefList);
} }
void AQH_ModService_AddRole(AQH_ROLE_LIST *roleList, int id, const char *name, uint32_t perms, const char *descr) void AQH_ModService_AddRole(AQCGI_ROLE_LIST *roleList, int id, const char *name, uint32_t perms, const char *descr)
{ {
AQH_ROLE *role; AQCGI_ROLE *role;
role=AQH_Role_new(); role=AQCGI_Role_new();
AQH_Role_SetId(role, id); AQCGI_Role_SetId(role, id);
AQH_Role_SetName(role, name); AQCGI_Role_SetName(role, name);
AQH_Role_SetPerms(role, perms); AQCGI_Role_SetPerms(role, perms);
AQH_Role_SetDescr(role, descr); AQCGI_Role_SetDescr(role, descr);
AQH_Role_List_Add(role, roleList); AQCGI_Role_List_Add(role, roleList);
} }
void AQH_ModService_HandleRequestWithTable(AQH_MODULE *m, void AQH_ModService_HandleRequestWithTable(AQCGI_MODULE *m,
AQCGI_REQUEST *rq, AQCGI_REQUEST *rq,
AQH_SESSION *session, AQCGI_SESSION *session,
const char *page, const char *page,
const AQH_MODSERVICE_HANDLER_ENTRY *e) const AQH_MODSERVICE_HANDLER_ENTRY *e)
{ {
@@ -562,10 +562,10 @@ void AQH_ModService_HandleRequestWithTable(AQH_MODULE *m,
void AQH_ModService_WritePermsToForm(uint32_t perms, const AQH_PERMDEF_LIST *permDefList, const char *sPrefix, GWEN_BUFFER *dbuf) void AQH_ModService_WritePermsToForm(uint32_t perms, const AQCGI_PERMDEF_LIST *permDefList, const char *sPrefix, GWEN_BUFFER *dbuf)
{ {
if (permDefList) { if (permDefList) {
const AQH_PERMDEF *permDef; const AQCGI_PERMDEF *permDef;
GWEN_BUFFER *tbuf; GWEN_BUFFER *tbuf;
uint32_t pos; uint32_t pos;
@@ -574,16 +574,16 @@ void AQH_ModService_WritePermsToForm(uint32_t perms, const AQH_PERMDEF_LIST *per
GBAA(tbuf, "%s:", sPrefix); GBAA(tbuf, "%s:", sPrefix);
pos=GWEN_Buffer_GetPos(tbuf); pos=GWEN_Buffer_GetPos(tbuf);
permDef=AQH_PermDef_List_First(permDefList); permDef=AQCGI_PermDef_List_First(permDefList);
while(permDef) { while(permDef) {
const char *s; const char *s;
s=AQH_PermDef_GetId(permDef); s=AQCGI_PermDef_GetId(permDef);
if (s && *s) { if (s && *s) {
uint32_t mask; uint32_t mask;
GBAS(tbuf, s); GBAS(tbuf, s);
mask=AQH_PermDef_GetMask(permDef); mask=AQCGI_PermDef_GetMask(permDef);
if (perms & mask) if (perms & mask)
GBAA(dbuf, "<input type=\"checkbox\" name=\"%s\" checked>", GWEN_Buffer_GetStart(tbuf)); GBAA(dbuf, "<input type=\"checkbox\" name=\"%s\" checked>", GWEN_Buffer_GetStart(tbuf));
else else
@@ -591,7 +591,7 @@ void AQH_ModService_WritePermsToForm(uint32_t perms, const AQH_PERMDEF_LIST *per
GBAA(dbuf, "<label for=\"%s\">%s</label>", GWEN_Buffer_GetStart(tbuf), s?s:""); GBAA(dbuf, "<label for=\"%s\">%s</label>", GWEN_Buffer_GetStart(tbuf), s?s:"");
GWEN_Buffer_Crop(tbuf, 0, pos); GWEN_Buffer_Crop(tbuf, 0, pos);
} }
permDef=AQH_PermDef_List_Next(permDef); permDef=AQCGI_PermDef_List_Next(permDef);
} }
GWEN_Buffer_free(tbuf); GWEN_Buffer_free(tbuf);
} }
@@ -599,12 +599,12 @@ void AQH_ModService_WritePermsToForm(uint32_t perms, const AQH_PERMDEF_LIST *per
uint32_t AQH_ModService_ReadPermsFromForm(GWEN_DB_NODE *dbPost, const AQH_PERMDEF_LIST *permDefList, const char *sPrefix) uint32_t AQH_ModService_ReadPermsFromForm(GWEN_DB_NODE *dbPost, const AQCGI_PERMDEF_LIST *permDefList, const char *sPrefix)
{ {
uint32_t result=0; uint32_t result=0;
if (permDefList) { if (permDefList) {
const AQH_PERMDEF *permDef; const AQCGI_PERMDEF *permDef;
GWEN_BUFFER *tbuf; GWEN_BUFFER *tbuf;
uint32_t pos; uint32_t pos;
@@ -613,23 +613,23 @@ uint32_t AQH_ModService_ReadPermsFromForm(GWEN_DB_NODE *dbPost, const AQH_PERMDE
GBAA(tbuf, "%s:", sPrefix); GBAA(tbuf, "%s:", sPrefix);
pos=GWEN_Buffer_GetPos(tbuf); pos=GWEN_Buffer_GetPos(tbuf);
permDef=AQH_PermDef_List_First(permDefList); permDef=AQCGI_PermDef_List_First(permDefList);
while(permDef) { while(permDef) {
const char *id; const char *id;
id=AQH_PermDef_GetId(permDef); id=AQCGI_PermDef_GetId(permDef);
if (id && *id) { if (id && *id) {
uint32_t mask; uint32_t mask;
const char *s; const char *s;
GBAS(tbuf, id); GBAS(tbuf, id);
mask=AQH_PermDef_GetMask(permDef); mask=AQCGI_PermDef_GetMask(permDef);
s=GWEN_DB_GetCharValue(dbPost, GWEN_Buffer_GetStart(tbuf), 0, NULL); s=GWEN_DB_GetCharValue(dbPost, GWEN_Buffer_GetStart(tbuf), 0, NULL);
if (s && *s) if (s && *s)
result|=mask; result|=mask;
GWEN_Buffer_Crop(tbuf, 0, pos); GWEN_Buffer_Crop(tbuf, 0, pos);
} }
permDef=AQH_PermDef_List_Next(permDef); permDef=AQCGI_PermDef_List_Next(permDef);
} }
GWEN_Buffer_free(tbuf); GWEN_Buffer_free(tbuf);
} }
@@ -639,36 +639,36 @@ uint32_t AQH_ModService_ReadPermsFromForm(GWEN_DB_NODE *dbPost, const AQH_PERMDE
AQH_MODULE_LIST *AQH_ModService_LoadRawModules(AQH_MODULE *m) AQCGI_MODULE_LIST *AQH_ModService_LoadRawModules(AQCGI_MODULE *m)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_STRINGLIST *slModuleNames; GWEN_STRINGLIST *slModuleNames;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
slModuleNames=AQH_Service_ListModules(sv); slModuleNames=AQCGI_Service_ListModules(sv);
if (slModuleNames) { if (slModuleNames) {
AQH_MODULE_LIST *modList; AQCGI_MODULE_LIST *modList;
GWEN_STRINGLISTENTRY *se; GWEN_STRINGLISTENTRY *se;
modList=AQH_Module_List_new(); modList=AQCGI_Module_List_new();
se=GWEN_StringList_FirstEntry(slModuleNames); se=GWEN_StringList_FirstEntry(slModuleNames);
while(se) { while(se) {
const char *sModName; const char *sModName;
sModName=GWEN_StringListEntry_Data(se); sModName=GWEN_StringListEntry_Data(se);
if (sModName && *sModName) { if (sModName && *sModName) {
AQH_MODULE *currentMod; AQCGI_MODULE *currentMod;
currentMod=AQH_Service_LoadModule(sv, sModName); currentMod=AQCGI_Service_LoadModule(sv, sModName);
if (currentMod) if (currentMod)
AQH_Module_List_Add(currentMod, modList); AQCGI_Module_List_Add(currentMod, modList);
} }
se=GWEN_StringListEntry_Next(se); se=GWEN_StringListEntry_Next(se);
} }
GWEN_StringList_free(slModuleNames); GWEN_StringList_free(slModuleNames);
if (AQH_Module_List_GetCount(modList)) if (AQCGI_Module_List_GetCount(modList))
return modList; return modList;
AQH_Module_List_free(modList); AQCGI_Module_List_free(modList);
} }
return NULL; return NULL;
@@ -676,36 +676,36 @@ AQH_MODULE_LIST *AQH_ModService_LoadRawModules(AQH_MODULE *m)
AQH_USER_LIST *AQH_ModService_LoadRawUsers(AQH_MODULE *m) AQCGI_USER_LIST *AQH_ModService_LoadRawUsers(AQCGI_MODULE *m)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_STRINGLIST *slUserNames; GWEN_STRINGLIST *slUserNames;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
slUserNames=AQH_Service_ListUsers(sv); slUserNames=AQCGI_Service_ListUsers(sv);
if (slUserNames) { if (slUserNames) {
AQH_USER_LIST *userList; AQCGI_USER_LIST *userList;
GWEN_STRINGLISTENTRY *se; GWEN_STRINGLISTENTRY *se;
userList=AQH_User_List_new(); userList=AQCGI_User_List_new();
se=GWEN_StringList_FirstEntry(slUserNames); se=GWEN_StringList_FirstEntry(slUserNames);
while(se) { while(se) {
const char *sModName; const char *sModName;
sModName=GWEN_StringListEntry_Data(se); sModName=GWEN_StringListEntry_Data(se);
if (sModName && *sModName) { if (sModName && *sModName) {
AQH_USER *u; AQCGI_USER *u;
u=AQH_Service_LoadUser(sv, sModName); u=AQCGI_Service_LoadUser(sv, sModName);
if (u) if (u)
AQH_User_List_Add(u, userList); AQCGI_User_List_Add(u, userList);
} }
se=GWEN_StringListEntry_Next(se); se=GWEN_StringListEntry_Next(se);
} }
GWEN_StringList_free(slUserNames); GWEN_StringList_free(slUserNames);
if (AQH_User_List_GetCount(userList)) if (AQCGI_User_List_GetCount(userList))
return userList; return userList;
AQH_User_List_free(userList); AQCGI_User_List_free(userList);
} }
return NULL; return NULL;
@@ -903,9 +903,9 @@ void AQH_ModService_RedirectWithReferer(AQCGI_REQUEST *rq, const char *destLocat
void AQH_ModService_DenyRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, const AQH_SESSION *session, GWEN_BUFFER *dbuf) void AQH_ModService_DenyRequest(AQCGI_MODULE *m, AQCGI_REQUEST *rq, const AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
if (session && AQH_Session_GetUser(session)) { if (session && AQCGI_Session_GetUser(session)) {
/* no permissions */ /* no permissions */
AQCGI_Request_SetResponseCode(rq, 403); AQCGI_Request_SetResponseCode(rq, 403);
AQCGI_Request_SetResponseText(rq, "Forbidden"); AQCGI_Request_SetResponseText(rq, "Forbidden");
@@ -914,7 +914,7 @@ void AQH_ModService_DenyRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, const AQH_SESS
} }
else { else {
/* need login */ /* need login */
AQH_ModService_RedirectWithReferer(rq, AQH_Service_GetLoginUrl(AQH_ModService_GetService(m))); AQH_ModService_RedirectWithReferer(rq, AQCGI_Service_GetLoginUrl(AQH_ModService_GetService(m)));
} }
} }

View File

@@ -9,9 +9,9 @@
#ifndef AQHOME_CGI_MSERVICE_H #ifndef AQHOME_CGI_MSERVICE_H
#define AQHOME_CGI_MSERVICE_H #define AQHOME_CGI_MSERVICE_H
#include <aqhome-cgi/service/module.h> #include <aqcgi/service/module.h>
#include <aqhome-cgi/service/service.h> #include <aqcgi/service/service.h>
#include <aqhome-cgi/service/session.h> #include <aqcgi/service/session.h>
#include <aqcgi/request.h> #include <aqcgi/request.h>
@@ -22,10 +22,10 @@
typedef int (*AQH_MODSERVICE_HANDLEREQUEST_FN)(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sLastPathElem); typedef int (*AQH_MODSERVICE_HANDLEREQUEST_FN)(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sLastPathElem);
typedef AQH_MODULE* (*AQH_MODSERVICE_LOADSUBMODULE_FN)(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName); typedef AQCGI_MODULE* (*AQH_MODSERVICE_LOADSUBMODULE_FN)(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sModuleName);
typedef void (*AQH_MODSERVICE_ADDHEADER_FN)(AQH_MODULE *m, const char *lang, GWEN_BUFFER *dbuf); typedef void (*AQH_MODSERVICE_ADDHEADER_FN)(AQCGI_MODULE *m, const char *lang, GWEN_BUFFER *dbuf);
typedef void (*AQH_MODSERVICE_ADDFOOTER_FN)(AQH_MODULE *m, const char *lang, GWEN_BUFFER *dbuf); typedef void (*AQH_MODSERVICE_ADDFOOTER_FN)(AQCGI_MODULE *m, const char *lang, GWEN_BUFFER *dbuf);
typedef struct AQH_MODSERVICE_HANDLER_ENTRY AQH_MODSERVICE_HANDLER_ENTRY; typedef struct AQH_MODSERVICE_HANDLER_ENTRY AQH_MODSERVICE_HANDLER_ENTRY;
@@ -33,52 +33,52 @@ struct AQH_MODSERVICE_HANDLER_ENTRY {
const char *page; const char *page;
int httpMethod; int httpMethod;
uint32_t perms; uint32_t perms;
void (*handlerFn)(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); void (*handlerFn)(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
}; };
void AQH_ModService_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder); void AQH_ModService_Extend(AQCGI_MODULE *m, AQCGI_SERVICE *sv, const char *baseFolder);
AQH_SERVICE *AQH_ModService_GetService(const AQH_MODULE *m); AQCGI_SERVICE *AQH_ModService_GetService(const AQCGI_MODULE *m);
const char *AQH_ModService_GetBaseFolder(const AQH_MODULE *m); const char *AQH_ModService_GetBaseFolder(const AQCGI_MODULE *m);
uint32_t AQH_ModService_GetUserPerms(const AQH_MODULE *m); uint32_t AQH_ModService_GetUserPerms(const AQCGI_MODULE *m);
void AQH_ModService_AddHeader(AQH_MODULE *m, const char *lang, GWEN_BUFFER *dbuf); void AQH_ModService_AddHeader(AQCGI_MODULE *m, const char *lang, GWEN_BUFFER *dbuf);
void AQH_ModService_AddFooter(AQH_MODULE *m, const char *lang, GWEN_BUFFER *dbuf); void AQH_ModService_AddFooter(AQCGI_MODULE *m, const char *lang, GWEN_BUFFER *dbuf);
AQH_MODULE *AQH_ModService_LoadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName); AQCGI_MODULE *AQH_ModService_LoadSubModule(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sModuleName);
int AQH_ModService_HandleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sLastPathElem); int AQH_ModService_HandleRequest(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sLastPathElem);
AQH_SESSION *AQH_ModService_ReadSession(AQH_MODULE *m, AQCGI_REQUEST *rq); AQCGI_SESSION *AQH_ModService_ReadSession(AQCGI_MODULE *m, AQCGI_REQUEST *rq);
void AQH_ModService_CalcSessionModPerms(AQH_MODULE *m, const AQH_SESSION *session); void AQH_ModService_CalcSessionModPerms(AQCGI_MODULE *m, const AQCGI_SESSION *session);
void AQH_ModService_HandleRequestWithTable(AQH_MODULE *m, void AQH_ModService_HandleRequestWithTable(AQCGI_MODULE *m,
AQCGI_REQUEST *rq, AQCGI_REQUEST *rq,
AQH_SESSION *session, AQCGI_SESSION *session,
const char *page, const char *page,
const AQH_MODSERVICE_HANDLER_ENTRY *e); 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(AQCGI_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(AQCGI_MODULE *m, const char *lang, const char *filename, GWEN_BUFFER *dbuf);
void AQH_ModService_AddPermDef(AQH_PERMDEF_LIST *permDefList, const char *id, uint32_t mask, const char *descr); void AQH_ModService_AddPermDef(AQCGI_PERMDEF_LIST *permDefList, const char *id, uint32_t mask, const char *descr);
void AQH_ModService_AddRole(AQH_ROLE_LIST *roleList, int id, const char *name, uint32_t perms, const char *descr); void AQH_ModService_AddRole(AQCGI_ROLE_LIST *roleList, int id, const char *name, uint32_t perms, const char *descr);
void AQH_ModService_WritePermsToForm(uint32_t perms, const AQH_PERMDEF_LIST *permDefList, const char *sPrefix, GWEN_BUFFER *dbuf); void AQH_ModService_WritePermsToForm(uint32_t perms, const AQCGI_PERMDEF_LIST *permDefList, const char *sPrefix, GWEN_BUFFER *dbuf);
uint32_t AQH_ModService_ReadPermsFromForm(GWEN_DB_NODE *dbPost, const AQH_PERMDEF_LIST *permDefList, const char *sPrefix); uint32_t AQH_ModService_ReadPermsFromForm(GWEN_DB_NODE *dbPost, const AQCGI_PERMDEF_LIST *permDefList, const char *sPrefix);
AQH_MODULE_LIST *AQH_ModService_LoadRawModules(AQH_MODULE *m); AQCGI_MODULE_LIST *AQH_ModService_LoadRawModules(AQCGI_MODULE *m);
AQH_USER_LIST *AQH_ModService_LoadRawUsers(AQH_MODULE *m); AQCGI_USER_LIST *AQH_ModService_LoadRawUsers(AQCGI_MODULE *m);
void AQH_ModService_SetHandleRequestFn(AQH_MODULE *m, AQH_MODSERVICE_HANDLEREQUEST_FN fn); void AQH_ModService_SetHandleRequestFn(AQCGI_MODULE *m, AQH_MODSERVICE_HANDLEREQUEST_FN fn);
void AQH_ModService_SetLoadSubModuleFn(AQH_MODULE *m, AQH_MODSERVICE_LOADSUBMODULE_FN fn); void AQH_ModService_SetLoadSubModuleFn(AQCGI_MODULE *m, AQH_MODSERVICE_LOADSUBMODULE_FN fn);
void AQH_ModService_SetAddHeaderFn(AQH_MODULE *m, AQH_MODSERVICE_ADDHEADER_FN fn); void AQH_ModService_SetAddHeaderFn(AQCGI_MODULE *m, AQH_MODSERVICE_ADDHEADER_FN fn);
void AQH_ModService_SetAddFooterFn(AQH_MODULE *m, AQH_MODSERVICE_ADDFOOTER_FN fn); void AQH_ModService_SetAddFooterFn(AQCGI_MODULE *m, AQH_MODSERVICE_ADDFOOTER_FN fn);
void AQH_ModService_EscapeToBuffer(const char *src, GWEN_BUFFER *buf); void AQH_ModService_EscapeToBuffer(const char *src, GWEN_BUFFER *buf);
void AQH_ModService_UnescapeToBuffer(const char *src, GWEN_BUFFER *buf); void AQH_ModService_UnescapeToBuffer(const char *src, GWEN_BUFFER *buf);
@@ -86,7 +86,7 @@ void AQH_ModService_UnescapeToBuffer(const char *src, GWEN_BUFFER *buf);
int AQH_ModService_FileIsCurrent(const char *sPath, int seconds); int AQH_ModService_FileIsCurrent(const char *sPath, int seconds);
int AQH_ModService_RespondWithMimeFile(AQCGI_REQUEST *rq, const char *sFilename, const char *sMimeType, GWEN_BUFFER *dbuf); int AQH_ModService_RespondWithMimeFile(AQCGI_REQUEST *rq, const char *sFilename, const char *sMimeType, GWEN_BUFFER *dbuf);
int AQH_ModService_RespondWithVarFile(AQH_MODULE *m, AQCGI_REQUEST *rq, int AQH_ModService_RespondWithVarFile(AQCGI_MODULE *m, AQCGI_REQUEST *rq,
const char *lang, const char *lang,
const char *sFilename, const char *sFilename,
GWEN_DB_NODE *dbVars, GWEN_DB_NODE *dbVars,
@@ -95,7 +95,7 @@ int AQH_ModService_RespondWithVarFile(AQH_MODULE *m, AQCGI_REQUEST *rq,
int AQH_ModService_AddRequestUrl(const AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf); int AQH_ModService_AddRequestUrl(const AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf);
void AQH_ModService_Redirect(AQCGI_REQUEST *rq, const char *destLocation); void AQH_ModService_Redirect(AQCGI_REQUEST *rq, const char *destLocation);
void AQH_ModService_RedirectWithReferer(AQCGI_REQUEST *rq, const char *destLocation); void AQH_ModService_RedirectWithReferer(AQCGI_REQUEST *rq, const char *destLocation);
void AQH_ModService_DenyRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, const AQH_SESSION *session, GWEN_BUFFER *dbuf); void AQH_ModService_DenyRequest(AQCGI_MODULE *m, AQCGI_REQUEST *rq, const AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
#endif #endif

View File

@@ -14,7 +14,7 @@
typedef struct AQH_MOD_SERVICE AQH_MOD_SERVICE; typedef struct AQH_MOD_SERVICE AQH_MOD_SERVICE;
struct AQH_MOD_SERVICE { struct AQH_MOD_SERVICE {
AQH_SERVICE *service; AQCGI_SERVICE *service;
char *baseFolder; char *baseFolder;
uint32_t userPerms; uint32_t userPerms;

View File

@@ -36,33 +36,33 @@
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
static void _createPermDefList(AQH_MODULE *m); static void _createPermDefList(AQCGI_MODULE *m);
static void _createRoleList(AQH_MODULE *m); static void _createRoleList(AQCGI_MODULE *m);
static AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName); static AQCGI_MODULE *_loadSubModule(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sModuleName);
static int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sLastPathElem); static int _handleRequest(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sLastPathElem);
static void _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqIndex(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqEditUserGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqEditUserGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqEditUserPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqEditUserPost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqAddUserGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqAddUserGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqAddUserPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqAddUserPost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static int _getHighestUserId(const AQH_USER_LIST *userList); static int _getHighestUserId(const AQCGI_USER_LIST *userList);
static int _modulePermsHasRole(const AQH_MODULE_PERMS *modPerms, uint8_t rid); static int _modulePermsHasRole(const AQCGI_MODULE_PERMS *modPerms, uint8_t rid);
static void _writeEditUserForm(AQH_MODULE *m, static void _writeEditUserForm(AQCGI_MODULE *m,
const AQH_USER *u, const AQCGI_USER *u,
const char *sAlias, const char *sAlias,
const char *sUrl, const char *sUrl,
const char *sSubmitText, const char *sSubmitText,
GWEN_BUFFER *dbuf); GWEN_BUFFER *dbuf);
static void _writeUserModRolesToForm(const AQH_ROLE_LIST *roles, const AQH_MODULE_PERMS *perms, const char *sModName, GWEN_BUFFER *dbuf); static void _writeUserModRolesToForm(const AQCGI_ROLE_LIST *roles, const AQCGI_MODULE_PERMS *perms, const char *sModName, GWEN_BUFFER *dbuf);
static void _readAllModRolesForUserFromForm(AQH_MODULE *m, GWEN_DB_NODE *dbPost, AQH_USER *u); static void _readAllModRolesForUserFromForm(AQCGI_MODULE *m, GWEN_DB_NODE *dbPost, AQCGI_USER *u);
static void _readModRolesFromForm(GWEN_DB_NODE *dbPost, static void _readModRolesFromForm(GWEN_DB_NODE *dbPost,
const AQH_ROLE_LIST *roleList, const AQCGI_ROLE_LIST *roleList,
const char *sPrefix, const char *sPrefix,
AQH_MODULE_PERMS *modPerms); AQCGI_MODULE_PERMS *modPerms);
static void _addLabelAndInputToFormTableH(const char *title, const char *name, const char *value, const char *xxtra, GWEN_BUFFER *dbuf); static void _addLabelAndInputToFormTableH(const char *title, const char *name, const char *value, const char *xxtra, GWEN_BUFFER *dbuf);
static void _addUserStateLabelAndSelectionToFormTableH(const char *sTitle, const char *sName, int st, GWEN_BUFFER *dbuf); static void _addUserStateLabelAndSelectionToFormTableH(const char *sTitle, const char *sName, int st, GWEN_BUFFER *dbuf);
@@ -91,7 +91,7 @@ static AQH_MODSERVICE_HANDLER_ENTRY _requestTable[]={
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModAdmUsers_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder) void AQH_ModAdmUsers_Extend(AQCGI_MODULE *m, AQCGI_SERVICE *sv, const char *baseFolder)
{ {
AQH_ModService_Extend(m, sv, baseFolder); AQH_ModService_Extend(m, sv, baseFolder);
AQH_ModService_SetHandleRequestFn(m, _handleRequest); AQH_ModService_SetHandleRequestFn(m, _handleRequest);
@@ -100,63 +100,63 @@ void AQH_ModAdmUsers_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFold
int AQH_ModAdmUsers_Create(AQH_SERVICE *sv) int AQH_ModAdmUsers_Create(AQCGI_SERVICE *sv)
{ {
AQH_MODULE *m; AQCGI_MODULE *m;
int rv; int rv;
m=AQH_Module_new(); m=AQCGI_Module_new();
AQH_Module_SetName(m, "users"); AQCGI_Module_SetName(m, "users");
AQH_Module_SetDescr(m, "user administration module"); AQCGI_Module_SetDescr(m, "user administration module");
AQH_Module_SetGuestPerms(m, 0); AQCGI_Module_SetGuestPerms(m, 0);
_createPermDefList(m); _createPermDefList(m);
_createRoleList(m); _createRoleList(m);
rv=AQH_Service_AddModule(sv, m); rv=AQCGI_Service_AddModule(sv, m);
if (rv<0) { if (rv<0) {
DBG_INFO(NULL, "here (%d)", rv); DBG_INFO(NULL, "here (%d)", rv);
} }
AQH_Module_free(m); AQCGI_Module_free(m);
return rv; return rv;
} }
void _createPermDefList(AQH_MODULE *m) void _createPermDefList(AQCGI_MODULE *m)
{ {
AQH_PERMDEF_LIST *permDefList; AQCGI_PERMDEF_LIST *permDefList;
permDefList=AQH_PermDef_List_new(); permDefList=AQCGI_PermDef_List_new();
AQH_ModService_AddPermDef(permDefList, "UserRead", 0x001, "Read users"); AQH_ModService_AddPermDef(permDefList, "UserRead", 0x001, "Read users");
AQH_ModService_AddPermDef(permDefList, "UserWrite", 0x002, "Modify users"); AQH_ModService_AddPermDef(permDefList, "UserWrite", 0x002, "Modify users");
AQH_ModService_AddPermDef(permDefList, "UserAdd", 0x004, "Add users"); AQH_ModService_AddPermDef(permDefList, "UserAdd", 0x004, "Add users");
AQH_ModService_AddPermDef(permDefList, "UserDel", 0x008, "Remove users"); AQH_ModService_AddPermDef(permDefList, "UserDel", 0x008, "Remove users");
AQH_Module_SetPermDefList(m, permDefList); AQCGI_Module_SetPermDefList(m, permDefList);
} }
void _createRoleList(AQH_MODULE *m) void _createRoleList(AQCGI_MODULE *m)
{ {
AQH_ROLE_LIST *roleList; AQCGI_ROLE_LIST *roleList;
int id=1; int id=1;
roleList=AQH_Role_List_new(); roleList=AQCGI_Role_List_new();
AQH_ModService_AddRole(roleList, id++, "admin", AQH_ModService_AddRole(roleList, id++, "admin",
AQH_MODADMUSERS_PERMS_USERSREAD | AQH_MODADMUSERS_PERMS_USERSREAD |
AQH_MODADMUSERS_PERMS_USERSWRITE | AQH_MODADMUSERS_PERMS_USERSWRITE |
AQH_MODADMUSERS_PERMS_USERSADD | AQH_MODADMUSERS_PERMS_USERSADD |
AQH_MODADMUSERS_PERMS_USERSDEL, AQH_MODADMUSERS_PERMS_USERSDEL,
"Administrator Role"); "Administrator Role");
AQH_Module_SetRoleList(m, roleList); AQCGI_Module_SetRoleList(m, roleList);
} }
AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName) AQCGI_MODULE *_loadSubModule(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sModuleName)
{ {
/* no sub-modules */ /* no sub-modules */
return NULL; return NULL;
@@ -164,7 +164,7 @@ 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(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sLastPathElem)
{ {
AQH_ModService_HandleRequestWithTable(m, rq, session, sLastPathElem, _requestTable); AQH_ModService_HandleRequestWithTable(m, rq, session, sLastPathElem, _requestTable);
return AQCGI_SendResponse(rq); return AQCGI_SendResponse(rq);
@@ -172,9 +172,9 @@ int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const
void _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqIndex(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_USER_LIST *userList; AQCGI_USER_LIST *userList;
uint32_t perms; uint32_t perms;
perms=AQH_ModService_GetUserPerms(m); perms=AQH_ModService_GetUserPerms(m);
@@ -188,31 +188,31 @@ void _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN
"</thead>\n" "</thead>\n"
"<tbody>\n"); "<tbody>\n");
if (userList) { if (userList) {
const AQH_USER *u; const AQCGI_USER *u;
AQH_User_List_SortByAlias(userList, 1); AQCGI_User_List_SortByAlias(userList, 1);
u=AQH_User_List_First(userList); u=AQCGI_User_List_First(userList);
while(u) { while(u) {
const char *sUserAlias; const char *sUserAlias;
sUserAlias=AQH_User_GetAlias(u); sUserAlias=AQCGI_User_GetAlias(u);
if (sUserAlias && *sUserAlias) { if (sUserAlias && *sUserAlias) {
uint32_t id; uint32_t id;
const char *s; const char *s;
const char *sAlias; const char *sAlias;
id=AQH_User_GetId(u); id=AQCGI_User_GetId(u);
sAlias=AQH_User_GetAlias(u); sAlias=AQCGI_User_GetAlias(u);
GBAS(dbuf, "<tr>"); GBAS(dbuf, "<tr>");
GBAA(dbuf, "<td>%lu</td>", (unsigned long int) id); GBAA(dbuf, "<td>%lu</td>", (unsigned long int) id);
GBAA(dbuf, "<td>%s</td>", sAlias?sAlias:""); GBAA(dbuf, "<td>%s</td>", sAlias?sAlias:"");
s=AQH_User_GetName(u); s=AQCGI_User_GetName(u);
GBAA(dbuf, "<td>%s</td>", s?s:""); GBAA(dbuf, "<td>%s</td>", s?s:"");
s=AQH_UserState_toString(AQH_User_GetState(u)); s=AQCGI_UserState_toString(AQCGI_User_GetState(u));
GBAA(dbuf, "<td>%s</td>", s?s:""); GBAA(dbuf, "<td>%s</td>", s?s:"");
s=AQH_User_GetEmail(u); s=AQCGI_User_GetEmail(u);
GBAA(dbuf, "<td>%s</td>", s?s:""); GBAA(dbuf, "<td>%s</td>", s?s:"");
s=AQH_User_GetNotes(u); s=AQCGI_User_GetNotes(u);
GBAA(dbuf, "<td>%s</td>", s?s:""); GBAA(dbuf, "<td>%s</td>", s?s:"");
GBAS(dbuf, "<td>"); GBAS(dbuf, "<td>");
@@ -225,12 +225,12 @@ void _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN
GBAA(dbuf, "</td>\n"); GBAA(dbuf, "</td>\n");
GBAA(dbuf, "</tr>\n"); GBAA(dbuf, "</tr>\n");
} }
u=AQH_User_List_Next(u); u=AQCGI_User_List_Next(u);
} }
GBAS(dbuf, GBAS(dbuf,
"</tbody>\n" "</tbody>\n"
"</table>\n"); "</table>\n");
AQH_User_List_free(userList); AQCGI_User_List_free(userList);
} }
if (perms & AQH_MODADMUSERS_PERMS_USERSADD) if (perms & AQH_MODADMUSERS_PERMS_USERSADD)
GBAS(dbuf, "<hr><a href=\"adduser.html\">Add User</a>"); GBAS(dbuf, "<hr><a href=\"adduser.html\">Add User</a>");
@@ -238,20 +238,20 @@ void _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN
void _handleRqEditUserGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqEditUserGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_DB_NODE *dbQuery; GWEN_DB_NODE *dbQuery;
const char *sAlias; const char *sAlias;
AQH_USER *user; AQCGI_USER *user;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
dbQuery=AQCGI_Request_GetDbQuery(rq); dbQuery=AQCGI_Request_GetDbQuery(rq);
sAlias=dbQuery?GWEN_DB_GetCharValue(dbQuery, "alias", 0, NULL):NULL; sAlias=dbQuery?GWEN_DB_GetCharValue(dbQuery, "alias", 0, NULL):NULL;
user=(sAlias && *sAlias)?AQH_Service_LoadUser(sv, sAlias):NULL; user=(sAlias && *sAlias)?AQCGI_Service_LoadUser(sv, sAlias):NULL;
if (user) { if (user) {
_writeEditUserForm(m, user, sAlias, "edituser.html", "Save", dbuf); _writeEditUserForm(m, user, sAlias, "edituser.html", "Save", dbuf);
AQH_User_free(user); AQCGI_User_free(user);
} }
else { else {
AQCGI_Request_AddResponseHeaderData(rq, "Location: index.html"); AQCGI_Request_AddResponseHeaderData(rq, "Location: index.html");
@@ -262,44 +262,44 @@ void _handleRqEditUserGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session
void _handleRqEditUserPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqEditUserPost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_DB_NODE *dbPost; GWEN_DB_NODE *dbPost;
const char *sAlias; const char *sAlias;
AQH_USER *u; AQCGI_USER *u;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
dbPost=AQCGI_Request_GetDbPostBody(rq); dbPost=AQCGI_Request_GetDbPostBody(rq);
sAlias=dbPost?GWEN_DB_GetCharValue(dbPost, "alias", 0, NULL):NULL; sAlias=dbPost?GWEN_DB_GetCharValue(dbPost, "alias", 0, NULL):NULL;
u=(sAlias && *sAlias)?AQH_Service_LoadUser(sv, sAlias):NULL; u=(sAlias && *sAlias)?AQCGI_Service_LoadUser(sv, sAlias):NULL;
if (u) { if (u) {
const char *s; const char *s;
int state; int state;
int rv; int rv;
s=GWEN_DB_GetCharValue(dbPost, "name", 0, NULL); s=GWEN_DB_GetCharValue(dbPost, "name", 0, NULL);
AQH_User_SetName(u, s); AQCGI_User_SetName(u, s);
s=GWEN_DB_GetCharValue(dbPost, "email", 0, NULL); s=GWEN_DB_GetCharValue(dbPost, "email", 0, NULL);
AQH_User_SetEmail(u, s); AQCGI_User_SetEmail(u, s);
s=GWEN_DB_GetCharValue(dbPost, "notes", 0, NULL); s=GWEN_DB_GetCharValue(dbPost, "notes", 0, NULL);
AQH_User_SetNotes(u, s); AQCGI_User_SetNotes(u, s);
s=GWEN_DB_GetCharValue(dbPost, "status", 0, NULL); s=GWEN_DB_GetCharValue(dbPost, "status", 0, NULL);
state=(s && *s)?AQH_UserState_fromString(s):AQH_UserState_Unknown; state=(s && *s)?AQCGI_UserState_fromString(s):AQCGI_UserState_Unknown;
if (state!=AQH_UserState_Unknown) if (state!=AQCGI_UserState_Unknown)
AQH_User_SetState(u, state); AQCGI_User_SetState(u, state);
_readAllModRolesForUserFromForm(m, dbPost, u); _readAllModRolesForUserFromForm(m, dbPost, u);
rv=AQH_Service_SaveUser(sv, u); rv=AQCGI_Service_SaveUser(sv, u);
if (rv<0) { if (rv<0) {
GBAS(dbuf, "<h2>Error</h2><p>Error saving user</p>"); GBAS(dbuf, "<h2>Error</h2><p>Error saving user</p>");
DBG_ERROR(NULL, "Could not save user \"%s\"", sAlias); DBG_ERROR(NULL, "Could not save user \"%s\"", sAlias);
AQH_User_free(u); AQCGI_User_free(u);
return; return;
} }
DBG_ERROR(NULL, "User \"%s\" saved", sAlias); DBG_ERROR(NULL, "User \"%s\" saved", sAlias);
AQH_User_free(u); AQCGI_User_free(u);
AQCGI_Request_AddResponseHeaderData(rq, "Location: index.html"); AQCGI_Request_AddResponseHeaderData(rq, "Location: index.html");
AQCGI_Request_SetResponseCode(rq, 303); AQCGI_Request_SetResponseCode(rq, 303);
AQCGI_Request_SetResponseText(rq, "See other"); AQCGI_Request_SetResponseText(rq, "See other");
@@ -312,7 +312,7 @@ void _handleRqEditUserPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *sessio
void _handleRqAddUserGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqAddUserGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
DBG_ERROR(NULL, "AddUser"); DBG_ERROR(NULL, "AddUser");
_writeEditUserForm(m, NULL, NULL, "adduser.html", "Add", dbuf); _writeEditUserForm(m, NULL, NULL, "adduser.html", "Add", dbuf);
@@ -320,9 +320,9 @@ void _handleRqAddUserGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session,
void _handleRqAddUserPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqAddUserPost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_DB_NODE *dbPost; GWEN_DB_NODE *dbPost;
const char *sAlias; const char *sAlias;
@@ -331,43 +331,41 @@ void _handleRqAddUserPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session
sAlias=dbPost?GWEN_DB_GetCharValue(dbPost, "alias", 0, NULL):NULL; sAlias=dbPost?GWEN_DB_GetCharValue(dbPost, "alias", 0, NULL):NULL;
// TODO: check alias validity // TODO: check alias validity
if (sAlias) { if (sAlias) {
AQH_USER *u; AQCGI_USER *u;
const char *s; const char *s;
int state; int state;
int rv; int rv;
uint32_t userId; uint32_t userId;
AQH_USER_LIST *userList; AQCGI_USER_LIST *userList;
u=AQH_User_new(); u=AQCGI_User_new();
userList=AQH_ModService_LoadRawUsers(m); userList=AQH_ModService_LoadRawUsers(m);
userId=_getHighestUserId(userList)+1; userId=_getHighestUserId(userList)+1;
AQH_User_SetId(u, userId); AQCGI_User_SetId(u, userId);
AQH_User_SetAlias(u, sAlias); AQCGI_User_SetAlias(u, sAlias);
s=GWEN_DB_GetCharValue(dbPost, "name", 0, NULL); s=GWEN_DB_GetCharValue(dbPost, "name", 0, NULL);
AQH_User_SetName(u, s); AQCGI_User_SetName(u, s);
s=GWEN_DB_GetCharValue(dbPost, "email", 0, NULL); s=GWEN_DB_GetCharValue(dbPost, "email", 0, NULL);
AQH_User_SetEmail(u, s); AQCGI_User_SetEmail(u, s);
s=GWEN_DB_GetCharValue(dbPost, "notes", 0, NULL); s=GWEN_DB_GetCharValue(dbPost, "notes", 0, NULL);
AQH_User_SetNotes(u, s); AQCGI_User_SetNotes(u, s);
s=GWEN_DB_GetCharValue(dbPost, "status", 0, NULL); s=GWEN_DB_GetCharValue(dbPost, "status", 0, NULL);
state=(s && *s)?AQH_UserState_fromString(s):AQH_UserState_Unknown; state=(s && *s)?AQCGI_UserState_fromString(s):AQCGI_UserState_Unknown;
if (state!=AQH_UserState_Unknown) if (state!=AQCGI_UserState_Unknown)
AQH_User_SetState(u, state); AQCGI_User_SetState(u, state);
rv=AQH_Service_AddUser(sv, u); rv=AQCGI_Service_AddUser(sv, u);
if (rv<0) { if (rv<0) {
GBAS(dbuf, "<h2>Error</h2><p>Error saving user</p>"); GBAS(dbuf, "<h2>Error</h2><p>Error saving user</p>");
DBG_ERROR(NULL, "Could not save user \"%s\" (%d)", sAlias, rv); DBG_ERROR(NULL, "Could not save user \"%s\" (%d)", sAlias, rv);
AQH_User_free(u); AQCGI_User_free(u);
AQH_User_List_free(userList); AQCGI_User_List_free(userList);
return; return;
} }
DBG_ERROR(NULL, "User \"%s\" saved", sAlias); DBG_ERROR(NULL, "User \"%s\" saved", sAlias);
AQH_User_free(u); AQCGI_User_free(u);
AQCGI_Request_AddResponseHeaderData(rq, "Location: index.html"); AQH_ModService_Redirect(rq, "index.html");
AQCGI_Request_SetResponseCode(rq, 303); AQCGI_User_List_free(userList);
AQCGI_Request_SetResponseText(rq, "See other");
AQH_User_List_free(userList);
} }
else { else {
DBG_ERROR(NULL, "Missing alias"); DBG_ERROR(NULL, "Missing alias");
@@ -377,20 +375,20 @@ void _handleRqAddUserPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session
int _getHighestUserId(const AQH_USER_LIST *userList) int _getHighestUserId(const AQCGI_USER_LIST *userList)
{ {
int id=0; int id=0;
if (userList) { if (userList) {
const AQH_USER *user; const AQCGI_USER *user;
user=AQH_User_List_First(userList); user=AQCGI_User_List_First(userList);
while(user) { while(user) {
int uid; int uid;
uid=AQH_User_GetId(user); uid=AQCGI_User_GetId(user);
id=(uid>id)?uid:id; id=(uid>id)?uid:id;
user=AQH_User_List_Next(user); user=AQCGI_User_List_Next(user);
} }
} }
return id; return id;
@@ -398,15 +396,15 @@ int _getHighestUserId(const AQH_USER_LIST *userList)
int _modulePermsHasRole(const AQH_MODULE_PERMS *modPerms, uint8_t rid) int _modulePermsHasRole(const AQCGI_MODULE_PERMS *modPerms, uint8_t rid)
{ {
if (modPerms) { if (modPerms) {
int arraySize; int arraySize;
int i; int i;
arraySize=AQH_ModulePerms_GetRoleArrayArraySize(); arraySize=AQCGI_ModulePerms_GetRoleArrayArraySize();
for(i=0; i<arraySize; i++) { for(i=0; i<arraySize; i++) {
if (AQH_ModulePerms_GetRoleArrayAt(modPerms, i)==rid) if (AQCGI_ModulePerms_GetRoleArrayAt(modPerms, i)==rid)
return 1; return 1;
} }
} }
@@ -418,14 +416,14 @@ int _modulePermsHasRole(const AQH_MODULE_PERMS *modPerms, uint8_t rid)
void _writeEditUserForm(AQH_MODULE *m, void _writeEditUserForm(AQCGI_MODULE *m,
const AQH_USER *u, const AQCGI_USER *u,
const char *sAlias, const char *sAlias,
const char *sUrl, const char *sUrl,
const char *sSubmitText, const char *sSubmitText,
GWEN_BUFFER *dbuf) GWEN_BUFFER *dbuf)
{ {
AQH_MODULE_LIST *moduleList; AQCGI_MODULE_LIST *moduleList;
/* write user info */ /* write user info */
GBAS(dbuf, "<h2>User Info</h2>\n"); GBAS(dbuf, "<h2>User Info</h2>\n");
@@ -434,10 +432,10 @@ void _writeEditUserForm(AQH_MODULE *m,
"<table class=\"formtable\">\n", "<table class=\"formtable\">\n",
sUrl?sUrl:""); sUrl?sUrl:"");
_addLabelAndInputToFormTableH("Alias", "alias", sAlias, "required", dbuf); _addLabelAndInputToFormTableH("Alias", "alias", sAlias, "required", dbuf);
_addLabelAndInputToFormTableH("Name", "name", u?AQH_User_GetName(u):NULL, NULL, dbuf); _addLabelAndInputToFormTableH("Name", "name", u?AQCGI_User_GetName(u):NULL, NULL, dbuf);
_addLabelAndInputToFormTableH("Email", "email", u?AQH_User_GetEmail(u):NULL, NULL, dbuf); _addLabelAndInputToFormTableH("Email", "email", u?AQCGI_User_GetEmail(u):NULL, NULL, dbuf);
_addLabelAndInputToFormTableH("Notes", "notes", u?AQH_User_GetNotes(u):NULL, NULL, dbuf); _addLabelAndInputToFormTableH("Notes", "notes", u?AQCGI_User_GetNotes(u):NULL, NULL, dbuf);
_addUserStateLabelAndSelectionToFormTableH("Status", "status", u?AQH_User_GetState(u):AQH_UserState_Unknown, dbuf); _addUserStateLabelAndSelectionToFormTableH("Status", "status", u?AQCGI_User_GetState(u):AQCGI_UserState_Unknown, dbuf);
GBAS(dbuf, "</table>\n"); GBAS(dbuf, "</table>\n");
@@ -451,26 +449,26 @@ void _writeEditUserForm(AQH_MODULE *m,
"<tbody>\n"); "<tbody>\n");
moduleList=AQH_ModService_LoadRawModules(m); moduleList=AQH_ModService_LoadRawModules(m);
if (moduleList) { if (moduleList) {
const AQH_MODULE_PERMS_LIST *modPermsList; const AQCGI_MODULE_PERMS_LIST *modPermsList;
const AQH_MODULE *currentMod; const AQCGI_MODULE *currentMod;
modPermsList=u?AQH_User_GetModulePermList(u):NULL; modPermsList=u?AQCGI_User_GetModulePermList(u):NULL;
currentMod=AQH_Module_List_First(moduleList); currentMod=AQCGI_Module_List_First(moduleList);
while(currentMod) { while(currentMod) {
const char *sModName; const char *sModName;
const AQH_MODULE_PERMS *modPerms; const AQCGI_MODULE_PERMS *modPerms;
sModName=AQH_Module_GetName(currentMod); sModName=AQCGI_Module_GetName(currentMod);
GBAA(dbuf, "<tr><td>%s</td><td>", sModName); GBAA(dbuf, "<tr><td>%s</td><td>", sModName);
modPerms=modPermsList?AQH_ModulePerms_List_GetByModuleId(modPermsList, sModName):NULL; modPerms=modPermsList?AQCGI_ModulePerms_List_GetByModuleId(modPermsList, sModName):NULL;
_writeUserModRolesToForm(AQH_Module_GetRoleList(currentMod), modPerms, sModName, dbuf); _writeUserModRolesToForm(AQCGI_Module_GetRoleList(currentMod), modPerms, sModName, dbuf);
GBAS(dbuf, "</td></tr>\n"); GBAS(dbuf, "</td></tr>\n");
GBAS(dbuf, "<td>"); GBAS(dbuf, "<td>");
currentMod=AQH_Module_List_Next(currentMod); currentMod=AQCGI_Module_List_Next(currentMod);
} /* while */ } /* while */
AQH_Module_List_free(moduleList); AQCGI_Module_List_free(moduleList);
} }
GBAS(dbuf, GBAS(dbuf,
"</tbody>\n" "</tbody>\n"
@@ -484,61 +482,61 @@ void _writeEditUserForm(AQH_MODULE *m,
void _readAllModRolesForUserFromForm(AQH_MODULE *m, GWEN_DB_NODE *dbPost, AQH_USER *u) void _readAllModRolesForUserFromForm(AQCGI_MODULE *m, GWEN_DB_NODE *dbPost, AQCGI_USER *u)
{ {
AQH_MODULE_LIST *moduleList; AQCGI_MODULE_LIST *moduleList;
moduleList=AQH_ModService_LoadRawModules(m); moduleList=AQH_ModService_LoadRawModules(m);
if (moduleList) { if (moduleList) {
AQH_MODULE_PERMS_LIST *permsList; AQCGI_MODULE_PERMS_LIST *permsList;
const AQH_MODULE *module; const AQCGI_MODULE *module;
permsList=AQH_User_GetModulePermList(u); permsList=AQCGI_User_GetModulePermList(u);
if (permsList==NULL) { if (permsList==NULL) {
DBG_ERROR(NULL, "Creating module perms list for user"); DBG_ERROR(NULL, "Creating module perms list for user");
permsList=AQH_ModulePerms_List_new(); permsList=AQCGI_ModulePerms_List_new();
AQH_User_SetModulePermList(u, permsList); AQCGI_User_SetModulePermList(u, permsList);
} }
module=AQH_Module_List_First(moduleList); module=AQCGI_Module_List_First(moduleList);
while(module) { while(module) {
const char *sModName; const char *sModName;
const AQH_ROLE_LIST *roleList; const AQCGI_ROLE_LIST *roleList;
sModName=AQH_Module_GetName(module); sModName=AQCGI_Module_GetName(module);
roleList=AQH_Module_GetRoleList(module); roleList=AQCGI_Module_GetRoleList(module);
if (sModName && *sModName && roleList) { if (sModName && *sModName && roleList) {
AQH_MODULE_PERMS *modPerms; AQCGI_MODULE_PERMS *modPerms;
modPerms=AQH_ModulePerms_List_GetByModuleId(permsList, sModName); modPerms=AQCGI_ModulePerms_List_GetByModuleId(permsList, sModName);
if (modPerms==NULL) { if (modPerms==NULL) {
modPerms=AQH_ModulePerms_new(); modPerms=AQCGI_ModulePerms_new();
AQH_ModulePerms_SetModuleId(modPerms, sModName); AQCGI_ModulePerms_SetModuleId(modPerms, sModName);
AQH_ModulePerms_List_Add(modPerms, permsList); AQCGI_ModulePerms_List_Add(modPerms, permsList);
} }
_readModRolesFromForm(dbPost, roleList, sModName, modPerms); _readModRolesFromForm(dbPost, roleList, sModName, modPerms);
} }
module=AQH_Module_List_Next(module); module=AQCGI_Module_List_Next(module);
} }
AQH_Module_List_free(moduleList); AQCGI_Module_List_free(moduleList);
} }
} }
void _writeUserModRolesToForm(const AQH_ROLE_LIST *roleList, const AQH_MODULE_PERMS *modPerms, const char *sModName, GWEN_BUFFER *dbuf) void _writeUserModRolesToForm(const AQCGI_ROLE_LIST *roleList, const AQCGI_MODULE_PERMS *modPerms, const char *sModName, GWEN_BUFFER *dbuf)
{ {
if (roleList) { if (roleList) {
const AQH_ROLE *role; const AQCGI_ROLE *role;
role=AQH_Role_List_First(roleList); role=AQCGI_Role_List_First(roleList);
while(role) { while(role) {
const char *sRoleName; const char *sRoleName;
uint8_t roleId; uint8_t roleId;
roleId=AQH_Role_GetId(role); roleId=AQCGI_Role_GetId(role);
sRoleName=AQH_Role_GetName(role); sRoleName=AQCGI_Role_GetName(role);
if (sRoleName && *sRoleName) { if (sRoleName && *sRoleName) {
int isChecked; int isChecked;
@@ -552,7 +550,7 @@ void _writeUserModRolesToForm(const AQH_ROLE_LIST *roleList, const AQH_MODULE_PE
GBAA(dbuf, "<label for=\"%s\">%s</label>", sRoleName, sRoleName); GBAA(dbuf, "<label for=\"%s\">%s</label>", sRoleName, sRoleName);
} }
} }
role=AQH_Role_List_Next(role); role=AQCGI_Role_List_Next(role);
} }
} }
} }
@@ -560,15 +558,15 @@ void _writeUserModRolesToForm(const AQH_ROLE_LIST *roleList, const AQH_MODULE_PE
void _readModRolesFromForm(GWEN_DB_NODE *dbPost, void _readModRolesFromForm(GWEN_DB_NODE *dbPost,
const AQH_ROLE_LIST *roleList, const AQCGI_ROLE_LIST *roleList,
const char *sPrefix, const char *sPrefix,
AQH_MODULE_PERMS *modPerms) AQCGI_MODULE_PERMS *modPerms)
{ {
AQH_ModulePerms_PresetRoleArray(modPerms, 0); AQCGI_ModulePerms_PresetRoleArray(modPerms, 0);
if (roleList) { if (roleList) {
GWEN_BUFFER *tbuf; GWEN_BUFFER *tbuf;
uint32_t pos; uint32_t pos;
const AQH_ROLE *role; const AQCGI_ROLE *role;
int nextRolePos=0; int nextRolePos=0;
tbuf=GWEN_Buffer_new(0, 256, 0, 1); tbuf=GWEN_Buffer_new(0, 256, 0, 1);
@@ -576,11 +574,11 @@ void _readModRolesFromForm(GWEN_DB_NODE *dbPost,
GBAA(tbuf, "%s:", sPrefix); GBAA(tbuf, "%s:", sPrefix);
pos=GWEN_Buffer_GetPos(tbuf); pos=GWEN_Buffer_GetPos(tbuf);
role=AQH_Role_List_First(roleList); role=AQCGI_Role_List_First(roleList);
while(role) { while(role) {
const char *roleName; const char *roleName;
roleName=AQH_Role_GetName(role); roleName=AQCGI_Role_GetName(role);
if (roleName && *roleName) { if (roleName && *roleName) {
const char *s; const char *s;
@@ -588,15 +586,15 @@ void _readModRolesFromForm(GWEN_DB_NODE *dbPost,
s=GWEN_DB_GetCharValue(dbPost, GWEN_Buffer_GetStart(tbuf), 0, NULL); s=GWEN_DB_GetCharValue(dbPost, GWEN_Buffer_GetStart(tbuf), 0, NULL);
/*DBG_ERROR(NULL, "Role string %s = [%s]", GWEN_Buffer_GetStart(tbuf), s?s:"<empty>");*/ /*DBG_ERROR(NULL, "Role string %s = [%s]", GWEN_Buffer_GetStart(tbuf), s?s:"<empty>");*/
if (s && *s) { if (s && *s) {
if (nextRolePos<AQH_ModulePerms_GetRoleArrayArraySize()) { if (nextRolePos<AQCGI_ModulePerms_GetRoleArrayArraySize()) {
/*DBG_ERROR(NULL, "Setting role \"%s\" (%d)", roleName, AQH_Role_GetId(role));*/ /*DBG_ERROR(NULL, "Setting role \"%s\" (%d)", roleName, AQCGI_Role_GetId(role));*/
AQH_ModulePerms_SetRoleArrayAt(modPerms, nextRolePos++, AQH_Role_GetId(role)); AQCGI_ModulePerms_SetRoleArrayAt(modPerms, nextRolePos++, AQCGI_Role_GetId(role));
} }
} }
GWEN_Buffer_Crop(tbuf, 0, pos); GWEN_Buffer_Crop(tbuf, 0, pos);
} }
role=AQH_Role_List_Next(role); role=AQCGI_Role_List_Next(role);
} /* while */ } /* while */
GWEN_Buffer_free(tbuf); GWEN_Buffer_free(tbuf);
} }
@@ -614,10 +612,10 @@ void _addUserStateLabelAndSelectionToFormTableH(const char *sTitle, const char *
GBAA(dbuf, "<tr><td><label for=\"%s\">%s:</label></td>", sName?sName:"", sTitle?sTitle:""); GBAA(dbuf, "<tr><td><label for=\"%s\">%s:</label></td>", sName?sName:"", sTitle?sTitle:"");
GBAA(dbuf, "<td><select name=\"%s\">", sName?sName:""); GBAA(dbuf, "<td><select name=\"%s\">", sName?sName:"");
for(i=AQH_UserState_Unknown; i<=AQH_UserState_Active; i++) { for(i=AQCGI_UserState_Unknown; i<=AQCGI_UserState_Active; i++) {
const char *s; const char *s;
s=AQH_UserState_toString(i); s=AQCGI_UserState_toString(i);
GBAA(dbuf, "<option value=\"%s\" %s>%s</option>", s, (i==st)?"selected":"", s); GBAA(dbuf, "<option value=\"%s\" %s>%s</option>", s, (i==st)?"selected":"", s);
} }
GBAS(dbuf, "</select></td></tr>"); GBAS(dbuf, "</select></td></tr>");

View File

@@ -24,9 +24,9 @@
void AQH_ModAdmUsers_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder); void AQH_ModAdmUsers_Extend(AQCGI_MODULE *m, AQCGI_SERVICE *sv, const char *baseFolder);
int AQH_ModAdmUsers_Create(AQH_SERVICE *sv); int AQH_ModAdmUsers_Create(AQCGI_SERVICE *sv);

View File

@@ -51,20 +51,20 @@
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
static AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName); static AQCGI_MODULE *_loadSubModule(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sModuleName);
static int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sLastPathElem); static int _handleRequest(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sLastPathElem);
static void _handleRqIndexGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqIndexGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqValuesTableGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqValuesTableGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqValuesGraphGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqValuesGraphGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqValueGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqValueGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqSetDataPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqSetDataPost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqGraphGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqGraphGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqDeviceGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqDeviceGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqDevicePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqDevicePost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqPageGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqPageGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqPagePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqPagePost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static void _handleRqPageGraphGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf); static void _handleRqPageGraphGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf);
static AQDG_GRAPH_DATAPAIR_LIST *_createDataPairListFromDataPoints(const uint64_t *dataPoints, uint64_t numValues); static AQDG_GRAPH_DATAPAIR_LIST *_createDataPairListFromDataPoints(const uint64_t *dataPoints, uint64_t numValues);
@@ -100,7 +100,7 @@ static AQH_MODSERVICE_HANDLER_ENTRY _requestTable[]={
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModDevices_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder) void AQH_ModDevices_Extend(AQCGI_MODULE *m, AQCGI_SERVICE *sv, const char *baseFolder)
{ {
AQH_ModService_Extend(m, sv, baseFolder); AQH_ModService_Extend(m, sv, baseFolder);
AQH_ModService_SetHandleRequestFn(m, _handleRequest); AQH_ModService_SetHandleRequestFn(m, _handleRequest);
@@ -109,14 +109,14 @@ void AQH_ModDevices_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolde
AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName) AQCGI_MODULE *_loadSubModule(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sModuleName)
{ {
return NULL; return NULL;
} }
int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sLastPathElem) int _handleRequest(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sLastPathElem)
{ {
AQH_ModService_HandleRequestWithTable(m, rq, session, sLastPathElem, _requestTable); AQH_ModService_HandleRequestWithTable(m, rq, session, sLastPathElem, _requestTable);
return AQCGI_SendResponse(rq); return AQCGI_SendResponse(rq);
@@ -124,77 +124,77 @@ int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const
void _handleRqIndexGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqIndexGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunIndex, dbuf); AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunIndex, dbuf);
} }
void _handleRqValuesTableGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqValuesTableGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunValuesAsTable, dbuf); AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunValuesAsTable, dbuf);
} }
void _handleRqValuesGraphGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqValuesGraphGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunValuesAsGraph, dbuf); AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunValuesAsGraph, dbuf);
} }
void _handleRqValueGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqValueGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunValue, dbuf); AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunValue, dbuf);
} }
void _handleRqSetDataPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqSetDataPost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunSetData, dbuf); AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunSetData, dbuf);
} }
void _handleRqGraphGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqGraphGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunGraphValue, dbuf); AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunGraphValue, dbuf);
} }
void _handleRqDeviceGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqDeviceGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunDevice, dbuf); AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunDevice, dbuf);
} }
void _handleRqDevicePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqDevicePost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunSetDevice, dbuf); AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunSetDevice, dbuf);
} }
void _handleRqPageGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqPageGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunPageGet, dbuf); AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunPageGet, dbuf);
} }
void _handleRqPagePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqPagePost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunPagePost, dbuf); AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunPagePost, dbuf);
} }
void _handleRqPageGraphGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, GWEN_BUFFER *dbuf) void _handleRqPageGraphGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, GWEN_BUFFER *dbuf)
{ {
AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunPageGraph, dbuf); AQH_ModDataClient_HandleRequest(m, rq, session, AQH_ModDevices_RunPageGraph, dbuf);
} }
@@ -538,6 +538,25 @@ AQDG_GRAPH_DATAPAIR_LIST *AQH_ModDevices_RequestDataPairList(AQH_DATACLIENT *dc,
void AQH_ModDevices_RedirectToDevice(AQCGI_REQUEST *rq, const char *destLocation, const AQH_DEVICE *device)
{
const char *sDeviceName;
GWEN_BUFFER *pbuf;
sDeviceName=AQH_Device_GetName(device);
pbuf=GWEN_Buffer_new(0, 256, 0, 1);
GWEN_Buffer_AppendString(pbuf, "Location: ");
GWEN_Buffer_AppendString(pbuf, (destLocation && *destLocation)?destLocation:"index.html");
if (sDeviceName && *sDeviceName) {
GWEN_Buffer_AppendString(pbuf, "?device=");
GWEN_Text_EscapeToBuffer(sDeviceName, pbuf);
}
AQH_ModService_Redirect(rq, GWEN_Buffer_GetStart(pbuf));
GWEN_Buffer_free(pbuf);
}
AQDG_GRAPH_DATAPAIR_LIST *_createDataPairListFromDataPoints(const uint64_t *dataPoints, uint64_t numValues) AQDG_GRAPH_DATAPAIR_LIST *_createDataPairListFromDataPoints(const uint64_t *dataPoints, uint64_t numValues)
{ {
AQDG_GRAPH_DATAPAIR_LIST *dpList; AQDG_GRAPH_DATAPAIR_LIST *dpList;

View File

@@ -39,8 +39,8 @@
void AQH_ModDevices_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder); void AQH_ModDevices_Extend(AQCGI_MODULE *m, AQCGI_SERVICE *sv, const char *baseFolder);
int AQH_ModDevices_Create(AQH_SERVICE *sv); int AQH_ModDevices_Create(AQCGI_SERVICE *sv);
uint32_t AQH_ModDevices_ColorFromHexString(const char *s); uint32_t AQH_ModDevices_ColorFromHexString(const char *s);
@@ -64,6 +64,7 @@ uint32_t AQH_ModDevices_ValueGetLastDataAsUint32(AQH_DATACLIENT *dc, const AQH_V
AQDG_GRAPH_DATAPAIR_LIST *AQH_ModDevices_RequestDataPairList(AQH_DATACLIENT *dc, const char *systemValueName, AQDG_GRAPH_DATAPAIR_LIST *AQH_ModDevices_RequestDataPairList(AQH_DATACLIENT *dc, const char *systemValueName,
uint64_t tsBegin, uint64_t tsEnd, uint64_t num); uint64_t tsBegin, uint64_t tsEnd, uint64_t num);
void AQH_ModDevices_RedirectToDevice(AQCGI_REQUEST *rq, const char *destLocation, const AQH_DEVICE *device);

View File

@@ -38,9 +38,9 @@
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
static void _runDeviceWithArgs(AQH_MODULE *m, static void _runDeviceWithArgs(AQCGI_MODULE *m,
AQCGI_REQUEST *rq, AQCGI_REQUEST *rq,
AQH_SESSION *session, AQCGI_SESSION *session,
AQH_DATACLIENT *dc, AQH_DATACLIENT *dc,
const char *sDeviceName, const char *sDeviceName,
GWEN_BUFFER *dbuf); GWEN_BUFFER *dbuf);
@@ -54,7 +54,7 @@ static void _addFieldToForm(const char *sFieldTitle, const char *sFieldName, con
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModDevices_RunDevice(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf) void AQH_ModDevices_RunDevice(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf)
{ {
GWEN_DB_NODE *dbQuery; GWEN_DB_NODE *dbQuery;
const char *sDeviceName; const char *sDeviceName;
@@ -74,9 +74,9 @@ void AQH_ModDevices_RunDevice(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *ses
void _runDeviceWithArgs(AQH_MODULE *m, void _runDeviceWithArgs(AQCGI_MODULE *m,
AQCGI_REQUEST *rq, AQCGI_REQUEST *rq,
AQH_SESSION *session, AQCGI_SESSION *session,
AQH_DATACLIENT *dc, AQH_DATACLIENT *dc,
const char *sDeviceName, const char *sDeviceName,
GWEN_BUFFER *dbuf) GWEN_BUFFER *dbuf)

View File

@@ -21,7 +21,7 @@
void AQH_ModDevices_RunDevice(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf); void AQH_ModDevices_RunDevice(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf);
#endif #endif

View File

@@ -45,7 +45,7 @@ static void _addLinkForDevice(const char *page, const char *sDevice, const char
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModDevices_RunIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf) void AQH_ModDevices_RunIndex(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf)
{ {
AQH_DEVICE_LIST *deviceList; AQH_DEVICE_LIST *deviceList;
AQH_DEVICE *device; AQH_DEVICE *device;

View File

@@ -21,7 +21,7 @@
void AQH_ModDevices_RunIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf); void AQH_ModDevices_RunIndex(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf);
#endif #endif

View File

@@ -40,8 +40,8 @@
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
static void _createPermDefList(AQH_MODULE *m); static void _createPermDefList(AQCGI_MODULE *m);
static void _createRoleList(AQH_MODULE *m); static void _createRoleList(AQCGI_MODULE *m);
@@ -50,34 +50,34 @@ static void _createRoleList(AQH_MODULE *m);
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
int AQH_ModDevices_Create(AQH_SERVICE *sv) int AQH_ModDevices_Create(AQCGI_SERVICE *sv)
{ {
AQH_MODULE *m; AQCGI_MODULE *m;
int rv; int rv;
m=AQH_Module_new(); m=AQCGI_Module_new();
AQH_Module_SetName(m, "devices"); AQCGI_Module_SetName(m, "devices");
AQH_Module_SetDescr(m, "device module"); AQCGI_Module_SetDescr(m, "device module");
AQH_Module_SetGuestPerms(m, 0); AQCGI_Module_SetGuestPerms(m, 0);
_createPermDefList(m); _createPermDefList(m);
_createRoleList(m); _createRoleList(m);
rv=AQH_Service_AddModule(sv, m); rv=AQCGI_Service_AddModule(sv, m);
if (rv<0) { if (rv<0) {
DBG_INFO(NULL, "here (%d)", rv); DBG_INFO(NULL, "here (%d)", rv);
} }
AQH_Module_free(m); AQCGI_Module_free(m);
return rv; return rv;
} }
void _createPermDefList(AQH_MODULE *m) void _createPermDefList(AQCGI_MODULE *m)
{ {
AQH_PERMDEF_LIST *permDefList; AQCGI_PERMDEF_LIST *permDefList;
permDefList=AQH_PermDef_List_new(); permDefList=AQCGI_PermDef_List_new();
AQH_ModService_AddPermDef(permDefList, "DeviceRead", 0x001, "Read and list devices"); AQH_ModService_AddPermDef(permDefList, "DeviceRead", 0x001, "Read and list devices");
AQH_ModService_AddPermDef(permDefList, "DeviceWrite", 0x002, "Modify devices"); AQH_ModService_AddPermDef(permDefList, "DeviceWrite", 0x002, "Modify devices");
@@ -90,17 +90,17 @@ void _createPermDefList(AQH_MODULE *m)
AQH_ModService_AddPermDef(permDefList, "ValueDel", 0x080, "Remove values"); AQH_ModService_AddPermDef(permDefList, "ValueDel", 0x080, "Remove values");
AQH_ModService_AddPermDef(permDefList, "ValueSet", 0x100, "Set values"); AQH_ModService_AddPermDef(permDefList, "ValueSet", 0x100, "Set values");
AQH_Module_SetPermDefList(m, permDefList); AQCGI_Module_SetPermDefList(m, permDefList);
} }
void _createRoleList(AQH_MODULE *m) void _createRoleList(AQCGI_MODULE *m)
{ {
AQH_ROLE_LIST *roleList; AQCGI_ROLE_LIST *roleList;
int id=1; int id=1;
roleList=AQH_Role_List_new(); roleList=AQCGI_Role_List_new();
AQH_ModService_AddRole(roleList, id++, "Reader", AQH_ModService_AddRole(roleList, id++, "Reader",
AQH_MODDEVICES_PERMS_DEVICEREAD | AQH_MODDEVICES_PERMS_DEVICEREAD |
AQH_MODDEVICES_PERMS_VALUEREAD, AQH_MODDEVICES_PERMS_VALUEREAD,
@@ -121,7 +121,7 @@ void _createRoleList(AQH_MODULE *m)
AQH_MODDEVICES_PERMS_VALUEREAD | AQH_MODDEVICES_PERMS_VALUEREAD |
AQH_MODDEVICES_PERMS_VALUESET, AQH_MODDEVICES_PERMS_VALUESET,
"Set values"); "Set values");
AQH_Module_SetRoleList(m, roleList); AQCGI_Module_SetRoleList(m, roleList);
} }

View File

@@ -21,7 +21,7 @@
int AQH_ModDevices_Create(AQH_SERVICE *sv); int AQH_ModDevices_Create(AQCGI_SERVICE *sv);
#endif #endif

View File

@@ -54,19 +54,19 @@ enum {
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
static void _writePage(AQH_MODULE *m, AQH_DATACLIENT *dc, GWEN_XMLNODE *nPage, GWEN_BUFFER *dbuf); static void _writePage(AQCGI_MODULE *m, AQH_DATACLIENT *dc, GWEN_XMLNODE *nPage, GWEN_BUFFER *dbuf);
static void _writeItem(AQH_MODULE *m, AQH_DATACLIENT *dc, const char *sPageId, GWEN_XMLNODE *nItem, GWEN_BUFFER *dbuf); static void _writeItem(AQCGI_MODULE *m, AQH_DATACLIENT *dc, const char *sPageId, GWEN_XMLNODE *nItem, GWEN_BUFFER *dbuf);
static void _writeActor(AQH_DATACLIENT *dc, const char *sPageId, GWEN_XMLNODE *n, int layout, GWEN_BUFFER *dbuf); static void _writeActor(AQH_DATACLIENT *dc, const char *sPageId, GWEN_XMLNODE *n, int layout, GWEN_BUFFER *dbuf);
static void _writeGraph(const char *sPageId, GWEN_XMLNODE *n, int layout, GWEN_BUFFER *dbuf); static void _writeGraph(const char *sPageId, GWEN_XMLNODE *n, int layout, GWEN_BUFFER *dbuf);
static void _handlePageActor(AQCGI_REQUEST *rq, AQH_DATACLIENT *dc, const char *sActorId, GWEN_XMLNODE *nActor); static void _handlePageActor(AQCGI_REQUEST *rq, AQH_DATACLIENT *dc, const char *sActorId, GWEN_XMLNODE *nActor);
static void _handlePageGraph(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_DATACLIENT *dc, const char *sGraphId, GWEN_XMLNODE *nGraph, GWEN_BUFFER *dbuf); static void _handlePageGraph(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQH_DATACLIENT *dc, const char *sGraphId, GWEN_XMLNODE *nGraph, GWEN_BUFFER *dbuf);
static void _genPageGraph(AQH_DATACLIENT *dc, const char *sGraphId, const char *sFilename, GWEN_XMLNODE *nGraph); static void _genPageGraph(AQH_DATACLIENT *dc, const char *sGraphId, const char *sFilename, GWEN_XMLNODE *nGraph);
static void _addCurves(AQH_DATACLIENT *dc, AQDG_GRAPH *g, GWEN_XMLNODE *nGraph, uint64_t tsBegin, uint64_t tsEnd); static void _addCurves(AQH_DATACLIENT *dc, AQDG_GRAPH *g, GWEN_XMLNODE *nGraph, uint64_t tsBegin, uint64_t tsEnd);
static AQDG_GRAPH_DATAPAIR_LIST *_readCurveData(AQH_DATACLIENT *dc, GWEN_XMLNODE *nCurve, uint64_t tsBegin, uint64_t tsEnd); static AQDG_GRAPH_DATAPAIR_LIST *_readCurveData(AQH_DATACLIENT *dc, GWEN_XMLNODE *nCurve, uint64_t tsBegin, uint64_t tsEnd);
static uint64_t _parseTime(const char *s); static uint64_t _parseTime(const char *s);
static GWEN_XMLNODE *_getSubItemNode(GWEN_XMLNODE *nPage, const char *sId, const char *sElementName); static GWEN_XMLNODE *_getSubItemNode(GWEN_XMLNODE *nPage, const char *sId, const char *sElementName);
static void _mkPathForGraph(AQH_MODULE *m, const char *sGraphId, GWEN_BUFFER *dbuf); static void _mkPathForGraph(AQCGI_MODULE *m, const char *sGraphId, GWEN_BUFFER *dbuf);
static void _addGraphLink(const char *sPageId, const char *sGraphId, int w, int h, GWEN_BUFFER *dbuf); static void _addGraphLink(const char *sPageId, const char *sGraphId, int w, int h, GWEN_BUFFER *dbuf);
static void _writeRgbwToForm(const char *sValueName, uint32_t color, GWEN_BUFFER *dbuf); static void _writeRgbwToForm(const char *sValueName, uint32_t color, GWEN_BUFFER *dbuf);
static void _writeOnOffToForm(const char *sValueName, int intVal, GWEN_BUFFER *dbuf); static void _writeOnOffToForm(const char *sValueName, int intVal, GWEN_BUFFER *dbuf);
@@ -76,9 +76,9 @@ static int _getColorComponent(GWEN_DB_NODE *dbPost, const char *sValueName, cons
static void _setOnOffData(AQH_DATACLIENT *dc, const AQH_VALUE *value, const char *sValue); static void _setOnOffData(AQH_DATACLIENT *dc, const AQH_VALUE *value, const char *sValue);
static void _setOnOffAutoData(AQH_DATACLIENT *dc, const AQH_VALUE *value, const char *sValue); static void _setOnOffAutoData(AQH_DATACLIENT *dc, const AQH_VALUE *value, const char *sValue);
static void _sendPageList(AQH_MODULE *m, GWEN_BUFFER *dbuf); static void _sendPageList(AQCGI_MODULE *m, GWEN_BUFFER *dbuf);
static GWEN_STRINGLIST *_listPageFiles(AQH_MODULE *m); static GWEN_STRINGLIST *_listPageFiles(AQCGI_MODULE *m);
static GWEN_XMLNODE *_readPage(AQH_MODULE *m, const char *sPageName); static GWEN_XMLNODE *_readPage(AQCGI_MODULE *m, const char *sPageName);
static GWEN_XMLNODE *_readPageFile(const char *sFilename); static GWEN_XMLNODE *_readPageFile(const char *sFilename);
static int _layoutFromString(const char *s); static int _layoutFromString(const char *s);
@@ -89,7 +89,7 @@ static int _layoutFromString(const char *s);
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModDevices_RunPageGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf) void AQH_ModDevices_RunPageGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf)
{ {
GWEN_DB_NODE *dbQuery; GWEN_DB_NODE *dbQuery;
const char *sPageId; const char *sPageId;
@@ -126,7 +126,7 @@ void AQH_ModDevices_RunPageGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *se
void AQH_ModDevices_RunPageGraph(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf) void AQH_ModDevices_RunPageGraph(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf)
{ {
GWEN_DB_NODE *dbQuery; GWEN_DB_NODE *dbQuery;
const char *sPageId; const char *sPageId;
@@ -161,7 +161,7 @@ void AQH_ModDevices_RunPageGraph(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *
void AQH_ModDevices_RunPagePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf) void AQH_ModDevices_RunPagePost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf)
{ {
GWEN_DB_NODE *dbPost; GWEN_DB_NODE *dbPost;
const char *sPageId; const char *sPageId;
@@ -246,7 +246,7 @@ void _handlePageActor(AQCGI_REQUEST *rq, AQH_DATACLIENT *dc, const char *sActorI
void _handlePageGraph(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_DATACLIENT *dc, const char *sGraphId, GWEN_XMLNODE *nGraph, GWEN_BUFFER *dbuf) void _handlePageGraph(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQH_DATACLIENT *dc, const char *sGraphId, GWEN_XMLNODE *nGraph, GWEN_BUFFER *dbuf)
{ {
GWEN_BUFFER *fbuf; GWEN_BUFFER *fbuf;
int refreshTime; int refreshTime;
@@ -459,13 +459,13 @@ GWEN_XMLNODE *_getSubItemNode(GWEN_XMLNODE *nPage, const char *sId, const char *
void _mkPathForGraph(AQH_MODULE *m, const char *sGraphId, GWEN_BUFFER *buf) void _mkPathForGraph(AQCGI_MODULE *m, const char *sGraphId, GWEN_BUFFER *buf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
const char *s; const char *s;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
s=AQH_Service_GetCacheFolder(sv); s=AQCGI_Service_GetCacheFolder(sv);
GBAA(buf, "%s%s%s", s, GWEN_DIR_SEPARATOR_S, sGraphId); GBAA(buf, "%s%s%s", s, GWEN_DIR_SEPARATOR_S, sGraphId);
AQH_ModService_EscapeToBuffer(s, buf); AQH_ModService_EscapeToBuffer(s, buf);
GBAS(buf, ".png"); GBAS(buf, ".png");
@@ -473,7 +473,7 @@ void _mkPathForGraph(AQH_MODULE *m, const char *sGraphId, GWEN_BUFFER *buf)
void _writePage(AQH_MODULE *m, AQH_DATACLIENT *dc, GWEN_XMLNODE *nPage, GWEN_BUFFER *dbuf) void _writePage(AQCGI_MODULE *m, AQH_DATACLIENT *dc, GWEN_XMLNODE *nPage, GWEN_BUFFER *dbuf)
{ {
const char *sPageId; const char *sPageId;
GWEN_XMLNODE *nItem; GWEN_XMLNODE *nItem;
@@ -515,7 +515,7 @@ void _writePage(AQH_MODULE *m, AQH_DATACLIENT *dc, GWEN_XMLNODE *nPage, GWEN_BUF
void _writeItem(AQH_MODULE *m, AQH_DATACLIENT *dc, const char *sPageId, GWEN_XMLNODE *nItem, GWEN_BUFFER *dbuf) void _writeItem(AQCGI_MODULE *m, AQH_DATACLIENT *dc, const char *sPageId, GWEN_XMLNODE *nItem, GWEN_BUFFER *dbuf)
{ {
GWEN_XMLNODE *n; GWEN_XMLNODE *n;
uint32_t perms; uint32_t perms;
@@ -819,7 +819,7 @@ void _setOnOffAutoData(AQH_DATACLIENT *dc, const AQH_VALUE *value, const char *s
void _sendPageList(AQH_MODULE *m, GWEN_BUFFER *dbuf) void _sendPageList(AQCGI_MODULE *m, GWEN_BUFFER *dbuf)
{ {
GWEN_STRINGLIST *sl; GWEN_STRINGLIST *sl;
@@ -870,16 +870,16 @@ void _sendPageList(AQH_MODULE *m, GWEN_BUFFER *dbuf)
GWEN_STRINGLIST *_listPageFiles(AQH_MODULE *m) GWEN_STRINGLIST *_listPageFiles(AQCGI_MODULE *m)
{ {
GWEN_BUFFER *fbuf; GWEN_BUFFER *fbuf;
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_STRINGLIST *sl; GWEN_STRINGLIST *sl;
int rv; int rv;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
fbuf=GWEN_Buffer_new(0, 256, 0, 1); fbuf=GWEN_Buffer_new(0, 256, 0, 1);
GBAA(fbuf, "%s%spages", AQH_Service_GetRuntimeFolder(sv), GWEN_DIR_SEPARATOR_S); GBAA(fbuf, "%s%spages", AQCGI_Service_GetRuntimeFolder(sv), GWEN_DIR_SEPARATOR_S);
sl=GWEN_StringList_new(); sl=GWEN_StringList_new();
rv=GWEN_Directory_GetMatchingFilesRecursively(GWEN_Buffer_GetStart(fbuf), sl, "*.xml"); rv=GWEN_Directory_GetMatchingFilesRecursively(GWEN_Buffer_GetStart(fbuf), sl, "*.xml");
if (rv<0) { if (rv<0) {
@@ -900,15 +900,15 @@ GWEN_STRINGLIST *_listPageFiles(AQH_MODULE *m)
GWEN_XMLNODE *_readPage(AQH_MODULE *m, const char *sPageName) GWEN_XMLNODE *_readPage(AQCGI_MODULE *m, const char *sPageName)
{ {
GWEN_BUFFER *fbuf; GWEN_BUFFER *fbuf;
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_XMLNODE *fileNode; GWEN_XMLNODE *fileNode;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
fbuf=GWEN_Buffer_new(0, 256, 0, 1); fbuf=GWEN_Buffer_new(0, 256, 0, 1);
GBAA(fbuf, "%s%spages%s", AQH_Service_GetRuntimeFolder(sv), GWEN_DIR_SEPARATOR_S, GWEN_DIR_SEPARATOR_S); GBAA(fbuf, "%s%spages%s", AQCGI_Service_GetRuntimeFolder(sv), GWEN_DIR_SEPARATOR_S, GWEN_DIR_SEPARATOR_S);
AQH_ModService_EscapeToBuffer(sPageName, fbuf); AQH_ModService_EscapeToBuffer(sPageName, fbuf);
GBAS(fbuf, ".xml"); GBAS(fbuf, ".xml");

View File

@@ -21,9 +21,9 @@
void AQH_ModDevices_RunPageGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf); void AQH_ModDevices_RunPageGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf);
void AQH_ModDevices_RunPagePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf); void AQH_ModDevices_RunPagePost(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf);
void AQH_ModDevices_RunPageGraph(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf); void AQH_ModDevices_RunPageGraph(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf);
#endif #endif

View File

@@ -47,9 +47,9 @@ static void _setOnOffAutoData(AQH_DATACLIENT *dc, const AQH_VALUE *value, const
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModDevices_RunSetData(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf) void AQH_ModDevices_RunSetData(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_DB_NODE *dbPost; GWEN_DB_NODE *dbPost;
const char *sDeviceName; const char *sDeviceName;
const char *sValueName; const char *sValueName;

View File

@@ -21,7 +21,7 @@
void AQH_ModDevices_RunSetData(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf); void AQH_ModDevices_RunSetData(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf);
#endif #endif

View File

@@ -45,9 +45,9 @@ static void _handleDeviceForm(AQH_DATACLIENT *dc, AQH_DEVICE *device, GWEN_DB_NO
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModDevices_RunSetDevice(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf) void AQH_ModDevices_RunSetDevice(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
GWEN_DB_NODE *dbPost; GWEN_DB_NODE *dbPost;
const char *sDeviceName; const char *sDeviceName;
AQH_DEVICE *device; AQH_DEVICE *device;
@@ -76,17 +76,7 @@ void AQH_ModDevices_RunSetDevice(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *
DBG_ERROR(NULL, "device not found"); DBG_ERROR(NULL, "device not found");
} }
if (sDeviceName && *sDeviceName) { AQH_ModDevices_RedirectToDevice(rq, "device.html", device);
GWEN_BUFFER *pbuf;
pbuf=GWEN_Buffer_new(0, 256, 0, 1);
GBAS(pbuf, "Location: device.html?device=");
GWEN_Text_EscapeToBuffer(sDeviceName, pbuf);
AQCGI_Request_AddResponseHeaderData(rq, GWEN_Buffer_GetStart(pbuf));
GWEN_Buffer_free(pbuf);
}
AQCGI_Request_SetResponseCode(rq, 303);
AQCGI_Request_SetResponseText(rq, "See other");
} }

View File

@@ -21,7 +21,7 @@
void AQH_ModDevices_RunSetDevice(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf); void AQH_ModDevices_RunSetDevice(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf);
#endif #endif

View File

@@ -36,9 +36,9 @@
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
static void _runValueWithArgs(AQH_MODULE *m, static void _runValueWithArgs(AQCGI_MODULE *m,
AQCGI_REQUEST *rq, AQCGI_REQUEST *rq,
AQH_SESSION *session, AQCGI_SESSION *session,
AQH_DATACLIENT *dc, AQH_DATACLIENT *dc,
const char *sDeviceName, const char *sDeviceName,
const char *sValueName, const char *sValueName,
@@ -55,7 +55,7 @@ static void _writeOnOffAutoToForm(const char *sValueName, int intVal, GWEN_BUFFE
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModDevices_RunValue(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf) void AQH_ModDevices_RunValue(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf)
{ {
GWEN_DB_NODE *dbQuery; GWEN_DB_NODE *dbQuery;
const char *sDeviceName; const char *sDeviceName;
@@ -100,9 +100,9 @@ void AQH_ModDevices_RunValue(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *sess
void _runValueWithArgs(AQH_MODULE *m, void _runValueWithArgs(AQCGI_MODULE *m,
AQCGI_REQUEST *rq, AQCGI_REQUEST *rq,
AQH_SESSION *session, AQCGI_SESSION *session,
AQH_DATACLIENT *dc, AQH_DATACLIENT *dc,
const char *sDeviceName, const char *sDeviceName,
const char *sValueName, const char *sValueName,

View File

@@ -21,7 +21,7 @@
void AQH_ModDevices_RunValue(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf); void AQH_ModDevices_RunValue(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf);
#endif #endif

View File

@@ -41,6 +41,7 @@ static void _writeValueToDetailedTable(const char *sDeviceName, const AQH_VALUE
static void _writeValueListToTable(const char *sDeviceName, const AQH_VALUE_LIST *valueList, GWEN_BUFFER *dbuf); static void _writeValueListToTable(const char *sDeviceName, const AQH_VALUE_LIST *valueList, GWEN_BUFFER *dbuf);
static void _writeValueToTable(const char *sDeviceName, const AQH_VALUE *value, GWEN_BUFFER *dbuf); static void _writeValueToTable(const char *sDeviceName, const AQH_VALUE *value, GWEN_BUFFER *dbuf);
static void _addGraphLink(const char *sDeviceName, const char *sValueName, const char *sPeriod, GWEN_BUFFER *dbuf, int withLink); static void _addGraphLink(const char *sDeviceName, const char *sValueName, const char *sPeriod, GWEN_BUFFER *dbuf, int withLink);
static void _writeDeviceInfo(const AQH_DEVICE *device, GWEN_BUFFER *dbuf);
@@ -49,7 +50,7 @@ static void _addGraphLink(const char *sDeviceName, const char *sValueName, const
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModDevices_RunValuesAsGraph(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf) void AQH_ModDevices_RunValuesAsGraph(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf)
{ {
GWEN_DB_NODE *dbQuery; GWEN_DB_NODE *dbQuery;
const char *sDeviceName; const char *sDeviceName;
@@ -59,40 +60,70 @@ void AQH_ModDevices_RunValuesAsGraph(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSI
if (!(sDeviceName && *sDeviceName)) if (!(sDeviceName && *sDeviceName))
AQH_ModDevices_RunIndex(m, rq, session, dc, dbuf); AQH_ModDevices_RunIndex(m, rq, session, dc, dbuf);
else { else {
const char *sValueName; AQH_DEVICE *device;
sValueName=GWEN_DB_GetCharValue(dbQuery, "value", 0, NULL); device=AQH_DataClient_GetDeviceByName(dc, sDeviceName);
if (sValueName && *sValueName) { if (device) {
AQH_VALUE *value; const char *sValueName;
GBAA(dbuf,"<h1>Value %s/%s</h1>\n", sDeviceName, sValueName); sValueName=GWEN_DB_GetCharValue(dbQuery, "value", 0, NULL);
value=AQH_ModDevices_GetValueForDevice(dc, sDeviceName, sValueName); if (sValueName && *sValueName) {
if (value) { AQH_VALUE *value;
_writeValueToDetailedTable(sDeviceName, value, dbuf);
AQH_Value_free(value);
AQCGI_Request_AddResponseHeaderData(rq, "Refresh: 120");
}
}
else {
AQH_VALUE_LIST *valueList;
valueList=AQH_DataClient_GetValues(dc, sDeviceName, 0); GBAA(dbuf,"<h1>Value %s/%s</h1>\n", sDeviceName, sValueName);
if (valueList && AQH_Value_List_GetCount(valueList)) { _writeDeviceInfo(device, dbuf);
value=AQH_ModDevices_GetValueForDevice(dc, sDeviceName, sValueName);
GBAA(dbuf,"<h1>Values for Device %s</h1>\n", sDeviceName); if (value) {
_writeValueListToTable(sDeviceName, valueList, dbuf); _writeValueToDetailedTable(sDeviceName, value, dbuf);
GBAS(dbuf, "\n"); AQH_Value_free(value);
AQCGI_Request_AddResponseHeaderData(rq, "Refresh: 120");
}
} }
else { else {
GBAS(dbuf,"<p>No values.</p>\n"); AQH_VALUE_LIST *valueList;
valueList=AQH_DataClient_GetValues(dc, sDeviceName, 0);
if (valueList && AQH_Value_List_GetCount(valueList)) {
GBAA(dbuf,"<h1>Values for Device %s</h1>\n", sDeviceName);
_writeDeviceInfo(device, dbuf);
_writeValueListToTable(sDeviceName, valueList, dbuf);
GBAS(dbuf, "\n");
}
else {
GBAS(dbuf,"<p>No values.</p>\n");
}
AQH_Value_List_free(valueList);
AQCGI_Request_AddResponseHeaderData(rq, "Refresh: 305");
} }
AQH_Value_List_free(valueList); AQH_Device_free(device);
AQCGI_Request_AddResponseHeaderData(rq, "Refresh: 305");
} }
} }
} }
void _writeDeviceInfo(const AQH_DEVICE *device, GWEN_BUFFER *dbuf)
{
const char *s;
int cnt=0;
GBAS(dbuf, "<p>");
s=AQH_Device_GetNameForGui(device);
if (s)
GBAA(dbuf, "%s%s", (cnt++)?", ":"", s?s:"");
s=AQH_Device_GetRoomName(device);
if (s)
GBAA(dbuf, "%s%s", (cnt++)?", ":"", s?s:"");
s=AQH_Device_GetLocation(device);
if (s)
GBAA(dbuf, "%s%s", (cnt++)?", ":"", s?s:"");
s=AQH_Device_GetDescription(device);
if (s)
GBAA(dbuf, "%s%s", (cnt++)?", ":"", s?s:"");
GBAS(dbuf, "</p>");
}
void _writeValueToDetailedTable(const char *sDeviceName, const AQH_VALUE *value, GWEN_BUFFER *dbuf) void _writeValueToDetailedTable(const char *sDeviceName, const AQH_VALUE *value, GWEN_BUFFER *dbuf)
{ {

View File

@@ -21,7 +21,7 @@
void AQH_ModDevices_RunValuesAsGraph(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf); void AQH_ModDevices_RunValuesAsGraph(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf);
#endif #endif

View File

@@ -47,7 +47,7 @@ static void _writeValueToTable(const char *sDeviceName, const AQH_VALUE *value,
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModDevices_RunValuesAsTable(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf) void AQH_ModDevices_RunValuesAsTable(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf)
{ {
GWEN_DB_NODE *dbQuery; GWEN_DB_NODE *dbQuery;
const char *sDeviceName; const char *sDeviceName;

View File

@@ -21,7 +21,7 @@
void AQH_ModDevices_RunValuesAsTable(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf); void AQH_ModDevices_RunValuesAsTable(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf);
#endif #endif

View File

@@ -83,7 +83,7 @@ static MY_GRAPH_PARAMS _graphParamsBool[]={
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
static void _runGraphValueWithArgs(AQH_MODULE *m, static void _runGraphValueWithArgs(AQCGI_MODULE *m,
AQCGI_REQUEST *rq, AQCGI_REQUEST *rq,
AQH_DATACLIENT *dc, AQH_DATACLIENT *dc,
const char *sDeviceName, const char *sDeviceName,
@@ -95,7 +95,7 @@ static void _createGraph(AQH_DATACLIENT *dc,
const char *graphTitle, int precision, const char *curveLabel, const char *graphTitle, int precision, const char *curveLabel,
const char *sImgFile, int imgWidth, int imgHeight, uint64_t numDataPoints); const char *sImgFile, int imgWidth, int imgHeight, uint64_t numDataPoints);
static AQDG_GRAPH *_mkGraphObjectWithTitle(const char *graphTitle, const MY_GRAPH_PARAMS *graphParams, int precision); static AQDG_GRAPH *_mkGraphObjectWithTitle(const char *graphTitle, const MY_GRAPH_PARAMS *graphParams, int precision);
static void _mkPathForValueAndPeriod(AQH_MODULE *m, const AQH_VALUE *v, const MY_GRAPH_PARAMS *graphParams, GWEN_BUFFER *dbuf); static void _mkPathForValueAndPeriod(AQCGI_MODULE *m, const AQH_VALUE *v, const MY_GRAPH_PARAMS *graphParams, GWEN_BUFFER *dbuf);
static const MY_GRAPH_PARAMS *_getParamsByName(const char *s, int modality); static const MY_GRAPH_PARAMS *_getParamsByName(const char *s, int modality);
@@ -105,7 +105,7 @@ static const MY_GRAPH_PARAMS *_getParamsByName(const char *s, int modality);
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModDevices_RunGraphValue(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf) void AQH_ModDevices_RunGraphValue(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf)
{ {
GWEN_DB_NODE *dbQuery; GWEN_DB_NODE *dbQuery;
const char *sDeviceName; const char *sDeviceName;
@@ -135,7 +135,7 @@ void AQH_ModDevices_RunGraphValue(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION
void _runGraphValueWithArgs(AQH_MODULE *m, void _runGraphValueWithArgs(AQCGI_MODULE *m,
AQCGI_REQUEST *rq, AQCGI_REQUEST *rq,
AQH_DATACLIENT *dc, AQH_DATACLIENT *dc,
const char *sDeviceName, const char *sDeviceName,
@@ -251,15 +251,15 @@ AQDG_GRAPH *_mkGraphObjectWithTitle(const char *graphTitle, const MY_GRAPH_PARAM
} }
void _mkPathForValueAndPeriod(AQH_MODULE *m, const AQH_VALUE *v, const MY_GRAPH_PARAMS *graphParams, GWEN_BUFFER *dbuf) void _mkPathForValueAndPeriod(AQCGI_MODULE *m, const AQH_VALUE *v, const MY_GRAPH_PARAMS *graphParams, GWEN_BUFFER *dbuf)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
const char *s; const char *s;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
/* cache folder */ /* cache folder */
s=AQH_Service_GetCacheFolder(sv); s=AQCGI_Service_GetCacheFolder(sv);
GBAA(dbuf, "%s%s", s, GWEN_DIR_SEPARATOR_S); GBAA(dbuf, "%s%s", s, GWEN_DIR_SEPARATOR_S);
/* var name */ /* var name */

View File

@@ -21,7 +21,7 @@
void AQH_ModDevices_RunGraphValue(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf); void AQH_ModDevices_RunGraphValue(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf);
#endif #endif

View File

@@ -13,11 +13,11 @@
#include "./mdataclient.h" #include "./mdataclient.h"
#include "aqhome-cgi/service/module.h"
#include "aqhome/msg/ipc/m_ipc.h" #include "aqhome/msg/ipc/m_ipc.h"
#include "aqhome/msg/ipc/data/m_ipcd.h" #include "aqhome/msg/ipc/data/m_ipcd.h"
#include <aqcgi/service/module.h>
#include <gwenhywfar/debug.h> #include <gwenhywfar/debug.h>
#include <gwenhywfar/timestamp.h> #include <gwenhywfar/timestamp.h>
@@ -43,7 +43,7 @@
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
void AQH_ModDataClient_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder) void AQH_ModDataClient_Extend(AQCGI_MODULE *m, AQCGI_SERVICE *sv, const char *baseFolder)
{ {
AQH_ModService_Extend(m, sv, baseFolder); AQH_ModService_Extend(m, sv, baseFolder);
@@ -51,9 +51,9 @@ void AQH_ModDataClient_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFo
void AQH_ModDataClient_HandleRequest(AQH_MODULE *m, void AQH_ModDataClient_HandleRequest(AQCGI_MODULE *m,
AQCGI_REQUEST *rq, AQCGI_REQUEST *rq,
AQH_SESSION *session, AQCGI_SESSION *session,
AQH_MODDATACLIENT_RUN_FN runFn, AQH_MODDATACLIENT_RUN_FN runFn,
GWEN_BUFFER *dbuf) GWEN_BUFFER *dbuf)
{ {

View File

@@ -20,13 +20,13 @@
typedef void (*AQH_MODDATACLIENT_RUN_FN)(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf); typedef void (*AQH_MODDATACLIENT_RUN_FN)(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, AQH_DATACLIENT *dc, GWEN_BUFFER *dbuf);
void AQH_ModDataClient_Extend(AQH_MODULE *m, AQH_SERVICE *sv, const char *baseFolder); void AQH_ModDataClient_Extend(AQCGI_MODULE *m, AQCGI_SERVICE *sv, const char *baseFolder);
void AQH_ModDataClient_HandleRequest(AQH_MODULE *m, void AQH_ModDataClient_HandleRequest(AQCGI_MODULE *m,
AQCGI_REQUEST *rq, AQCGI_REQUEST *rq,
AQH_SESSION *session, AQCGI_SESSION *session,
AQH_MODDATACLIENT_RUN_FN runFn, AQH_MODDATACLIENT_RUN_FN runFn,
GWEN_BUFFER *dbuf); GWEN_BUFFER *dbuf);

View File

@@ -42,13 +42,13 @@
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
static AQH_MODULE *_loadSubModule(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sModuleName); static AQCGI_MODULE *_loadSubModule(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sModuleName);
static int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, const char *sLastPathElem); static int _handleRequest(AQCGI_MODULE *m, AQCGI_REQUEST *rq, AQCGI_SESSION *session, const char *sLastPathElem);
static int _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf); static int _handleRqIndex(AQCGI_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf);
static int _handleRqLogin(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf); static int _handleRqLogin(AQCGI_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf);
static int _handleRqLoginGet(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf); static int _handleRqLoginGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf);
static int _handleRqLoginPost(AQH_MODULE *m, AQCGI_REQUEST *rq); static int _handleRqLoginPost(AQCGI_MODULE *m, AQCGI_REQUEST *rq);
static AQH_USER *_getAndCheckUser(AQH_MODULE *m, AQCGI_REQUEST *rq); static AQCGI_USER *_getAndCheckUser(AQCGI_MODULE *m, AQCGI_REQUEST *rq);
/* ------------------------------------------------------------------------------------------------ /* ------------------------------------------------------------------------------------------------
@@ -56,11 +56,11 @@ static AQH_USER *_getAndCheckUser(AQH_MODULE *m, AQCGI_REQUEST *rq);
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
AQH_MODULE *AQH_ModRoot_new(AQH_SERVICE *sv, const char *baseFolder) AQCGI_MODULE *AQH_ModRoot_new(AQCGI_SERVICE *sv, const char *baseFolder)
{ {
AQH_MODULE *m; AQCGI_MODULE *m;
m=AQH_Module_new(); m=AQCGI_Module_new();
AQH_ModService_Extend(m, sv, baseFolder); AQH_ModService_Extend(m, sv, baseFolder);
AQH_ModService_SetHandleRequestFn(m, _handleRequest); AQH_ModService_SetHandleRequestFn(m, _handleRequest);
AQH_ModService_SetLoadSubModuleFn(m, _loadSubModule); AQH_ModService_SetLoadSubModuleFn(m, _loadSubModule);
@@ -70,15 +70,15 @@ AQH_MODULE *AQH_ModRoot_new(AQH_SERVICE *sv, const char *baseFolder)
AQH_MODULE *_loadSubModule(AQH_MODULE *m, GWEN_UNUSED AQCGI_REQUEST *rq, GWEN_UNUSED AQH_SESSION *session, const char *sModuleName) AQCGI_MODULE *_loadSubModule(AQCGI_MODULE *m, GWEN_UNUSED AQCGI_REQUEST *rq, GWEN_UNUSED AQCGI_SESSION *session, const char *sModuleName)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
sv=AQH_ModService_GetService(m); sv=AQH_ModService_GetService(m);
if (strcasecmp(sModuleName, "devices")==0) { if (strcasecmp(sModuleName, "devices")==0) {
AQH_MODULE *mSub; AQCGI_MODULE *mSub;
mSub=AQH_Service_LoadModule(sv, sModuleName); mSub=AQCGI_Service_LoadModule(sv, sModuleName);
if (mSub) { if (mSub) {
const char *s; const char *s;
GWEN_BUFFER *nbuf; GWEN_BUFFER *nbuf;
@@ -88,15 +88,15 @@ AQH_MODULE *_loadSubModule(AQH_MODULE *m, GWEN_UNUSED AQCGI_REQUEST *rq, GWEN_UN
GWEN_Buffer_AppendArgs(nbuf, "%s/devices", s?s:"."); GWEN_Buffer_AppendArgs(nbuf, "%s/devices", s?s:".");
AQH_ModDevices_Extend(mSub, AQH_ModService_GetService(m), GWEN_Buffer_GetStart(nbuf)); AQH_ModDevices_Extend(mSub, AQH_ModService_GetService(m), GWEN_Buffer_GetStart(nbuf));
AQH_Module_Tree2_AddChild(m, mSub); AQCGI_Module_Tree2_AddChild(m, mSub);
GWEN_Buffer_free(nbuf); GWEN_Buffer_free(nbuf);
return mSub; return mSub;
} }
} }
else if (strcasecmp(sModuleName, "admin")==0) { else if (strcasecmp(sModuleName, "admin")==0) {
AQH_MODULE *mSub; AQCGI_MODULE *mSub;
mSub=AQH_Service_LoadModule(sv, sModuleName); mSub=AQCGI_Service_LoadModule(sv, sModuleName);
if (mSub) { if (mSub) {
const char *s; const char *s;
GWEN_BUFFER *nbuf; GWEN_BUFFER *nbuf;
@@ -106,7 +106,7 @@ AQH_MODULE *_loadSubModule(AQH_MODULE *m, GWEN_UNUSED AQCGI_REQUEST *rq, GWEN_UN
GWEN_Buffer_AppendArgs(nbuf, "%s/admin", s?s:"."); GWEN_Buffer_AppendArgs(nbuf, "%s/admin", s?s:".");
AQH_ModAdmin_Extend(mSub, AQH_ModService_GetService(m), GWEN_Buffer_GetStart(nbuf)); AQH_ModAdmin_Extend(mSub, AQH_ModService_GetService(m), GWEN_Buffer_GetStart(nbuf));
AQH_Module_Tree2_AddChild(m, mSub); AQCGI_Module_Tree2_AddChild(m, mSub);
GWEN_Buffer_free(nbuf); GWEN_Buffer_free(nbuf);
return mSub; return mSub;
} }
@@ -116,7 +116,7 @@ AQH_MODULE *_loadSubModule(AQH_MODULE *m, GWEN_UNUSED AQCGI_REQUEST *rq, GWEN_UN
int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_UNUSED AQH_SESSION *session, const char *sLastPathElem) int _handleRequest(AQCGI_MODULE *m, AQCGI_REQUEST *rq, GWEN_UNUSED AQCGI_SESSION *session, const char *sLastPathElem)
{ {
GWEN_BUFFER *dbuf; GWEN_BUFFER *dbuf;
@@ -149,7 +149,7 @@ int _handleRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_UNUSED AQH_SESSION *se
int _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf) int _handleRqIndex(AQCGI_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf)
{ {
if (AQCGI_Request_GetRequestMethod(rq)==AQCGI_REQUEST_METHOD_GET) if (AQCGI_Request_GetRequestMethod(rq)==AQCGI_REQUEST_METHOD_GET)
return AQH_ModService_RespondWithFile(m, rq, "en", "index.html", dbuf); return AQH_ModService_RespondWithFile(m, rq, "en", "index.html", dbuf);
@@ -163,7 +163,7 @@ int _handleRqIndex(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf)
int _handleRqLogin(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf) int _handleRqLogin(AQCGI_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf)
{ {
if (AQCGI_Request_GetRequestMethod(rq)==AQCGI_REQUEST_METHOD_GET) if (AQCGI_Request_GetRequestMethod(rq)==AQCGI_REQUEST_METHOD_GET)
_handleRqLoginGet(m, rq, dbuf); _handleRqLoginGet(m, rq, dbuf);
@@ -180,7 +180,7 @@ int _handleRqLogin(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf)
int _handleRqLoginGet(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf) int _handleRqLoginGet(AQCGI_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf)
{ {
GWEN_DB_NODE *dbQuery; GWEN_DB_NODE *dbQuery;
const char *sSrc; const char *sSrc;
@@ -200,11 +200,11 @@ int _handleRqLoginGet(AQH_MODULE *m, AQCGI_REQUEST *rq, GWEN_BUFFER *dbuf)
int _handleRqLoginPost(AQH_MODULE *m, AQCGI_REQUEST *rq) int _handleRqLoginPost(AQCGI_MODULE *m, AQCGI_REQUEST *rq)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
AQH_USER *user; AQCGI_USER *user;
AQH_SESSION *session; AQCGI_SESSION *session;
GWEN_BUFFER *tbuf; GWEN_BUFFER *tbuf;
GWEN_TIMESTAMP *ts; GWEN_TIMESTAMP *ts;
GWEN_DB_NODE *dbPost; GWEN_DB_NODE *dbPost;
@@ -220,38 +220,38 @@ int _handleRqLoginPost(AQH_MODULE *m, AQCGI_REQUEST *rq)
} }
ts=GWEN_Timestamp_NowInLocalTime(); ts=GWEN_Timestamp_NowInLocalTime();
AQH_User_SetTimestampLastLogin(user, ts); AQCGI_User_SetTimestampLastLogin(user, ts);
rv=AQH_Service_SaveUser(sv, user); rv=AQCGI_Service_SaveUser(sv, user);
if (rv<0) { if (rv<0) {
DBG_ERROR(NULL, "Error saving user \"%s\"", AQH_User_GetAlias(user)); DBG_ERROR(NULL, "Error saving user \"%s\"", AQCGI_User_GetAlias(user));
AQCGI_Request_SetResponseCode(rq, 500); AQCGI_Request_SetResponseCode(rq, 500);
AQCGI_Request_SetResponseText(rq, "Internal Error"); AQCGI_Request_SetResponseText(rq, "Internal Error");
AQH_User_free(user); AQCGI_User_free(user);
return rv; return rv;
} }
/* generate session */ /* generate session */
tbuf=GWEN_Buffer_new(0, 64, 0, 1); tbuf=GWEN_Buffer_new(0, 64, 0, 1);
AQCGI_GenerateSessionId(tbuf); AQCGI_GenerateSessionId(tbuf);
session=AQH_Session_new(); session=AQCGI_Session_new();
AQH_Session_SetTimestampCreation(session, ts); AQCGI_Session_SetTimestampCreation(session, ts);
AQH_Session_SetTimestampLastAccess(session, ts); AQCGI_Session_SetTimestampLastAccess(session, ts);
AQH_Session_SetUid(session, GWEN_Buffer_GetStart(tbuf)); AQCGI_Session_SetUid(session, GWEN_Buffer_GetStart(tbuf));
GWEN_Buffer_free(tbuf); GWEN_Buffer_free(tbuf);
AQH_Session_SetUserAlias(session, AQH_User_GetAlias(user)); AQCGI_Session_SetUserAlias(session, AQCGI_User_GetAlias(user));
rv=AQH_Service_AddSession(sv, session); rv=AQCGI_Service_AddSession(sv, session);
if (rv<0) { if (rv<0) {
DBG_ERROR(NULL, "Error adding session for user \"%s\" (%d)", AQH_User_GetAlias(user), rv); DBG_ERROR(NULL, "Error adding session for user \"%s\" (%d)", AQCGI_User_GetAlias(user), rv);
AQCGI_Request_SetResponseCode(rq, 500); AQCGI_Request_SetResponseCode(rq, 500);
AQCGI_Request_SetResponseText(rq, "Internal Error"); AQCGI_Request_SetResponseText(rq, "Internal Error");
AQH_Session_free(session); AQCGI_Session_free(session);
AQH_User_free(user); AQCGI_User_free(user);
return GWEN_ERROR_INTERNAL; return GWEN_ERROR_INTERNAL;
} }
/* add Set-Cookie header */ /* add Set-Cookie header */
tbuf=GWEN_Buffer_new(0, 256, 0, 1); tbuf=GWEN_Buffer_new(0, 256, 0, 1);
GWEN_Buffer_AppendArgs(tbuf, "Set-Cookie: session=%s; max-age=%d", AQH_Session_GetUid(session), AQH_SERVICE_SESSION_MAXAGE); GWEN_Buffer_AppendArgs(tbuf, "Set-Cookie: session=%s; max-age=%d", AQCGI_Session_GetUid(session), AQH_SERVICE_SESSION_MAXAGE);
AQCGI_Request_AddResponseHeaderData(rq, GWEN_Buffer_GetStart(tbuf)); AQCGI_Request_AddResponseHeaderData(rq, GWEN_Buffer_GetStart(tbuf));
GWEN_Buffer_free(tbuf); GWEN_Buffer_free(tbuf);
@@ -283,24 +283,24 @@ int _handleRqLoginPost(AQH_MODULE *m, AQCGI_REQUEST *rq)
AQCGI_Request_SetResponseText(rq, "See other"); AQCGI_Request_SetResponseText(rq, "See other");
} }
AQH_Session_free(session); AQCGI_Session_free(session);
AQH_User_free(user); AQCGI_User_free(user);
return 0; return 0;
} }
AQH_USER *_getAndCheckUser(AQH_MODULE *m, AQCGI_REQUEST *rq) AQCGI_USER *_getAndCheckUser(AQCGI_MODULE *m, AQCGI_REQUEST *rq)
{ {
GWEN_DB_NODE *dbPost; GWEN_DB_NODE *dbPost;
dbPost=AQCGI_Request_GetDbPostBody(rq); dbPost=AQCGI_Request_GetDbPostBody(rq);
if (dbPost) { if (dbPost) {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
const char *sUserName; const char *sUserName;
const char *sPasswd; const char *sPasswd;
AQH_USER *user; AQCGI_USER *user;
const char *hashedPaswd; const char *hashedPaswd;
GWEN_BUFFER *buf; GWEN_BUFFER *buf;
@@ -315,7 +315,7 @@ AQH_USER *_getAndCheckUser(AQH_MODULE *m, AQCGI_REQUEST *rq)
} }
DBG_ERROR(NULL, "Loading user \"%s\" (%p)", sUserName, sv); DBG_ERROR(NULL, "Loading user \"%s\" (%p)", sUserName, sv);
user=AQH_Service_LoadUser(sv, sUserName); user=AQCGI_Service_LoadUser(sv, sUserName);
if (user==NULL) { if (user==NULL) {
DBG_ERROR(NULL, "User \"%s\" not found", sUserName); DBG_ERROR(NULL, "User \"%s\" not found", sUserName);
AQCGI_Request_SetResponseCode(rq, 403); AQCGI_Request_SetResponseCode(rq, 403);
@@ -324,20 +324,20 @@ AQH_USER *_getAndCheckUser(AQH_MODULE *m, AQCGI_REQUEST *rq)
} }
DBG_ERROR(NULL, "Loaded user \"%s\"", sUserName); DBG_ERROR(NULL, "Loaded user \"%s\"", sUserName);
if (AQH_User_GetState(user)!=AQH_UserState_Active) { if (AQCGI_User_GetState(user)!=AQCGI_UserState_Active) {
DBG_ERROR(NULL, "User \"%s\" not active", sUserName); DBG_ERROR(NULL, "User \"%s\" not active", sUserName);
AQCGI_Request_SetResponseCode(rq, 403); AQCGI_Request_SetResponseCode(rq, 403);
AQCGI_Request_SetResponseText(rq, "Forbidden"); AQCGI_Request_SetResponseText(rq, "Forbidden");
AQH_User_free(user); AQCGI_User_free(user);
return NULL; return NULL;
} }
hashedPaswd=AQH_User_GetHashedPassword(user); hashedPaswd=AQCGI_User_GetHashedPassword(user);
if (!(hashedPaswd && *hashedPaswd)) { if (!(hashedPaswd && *hashedPaswd)) {
DBG_ERROR(NULL, "User \"%s\" has no hashed password", sUserName); DBG_ERROR(NULL, "User \"%s\" has no hashed password", sUserName);
AQCGI_Request_SetResponseCode(rq, 403); AQCGI_Request_SetResponseCode(rq, 403);
AQCGI_Request_SetResponseText(rq, "Forbidden"); AQCGI_Request_SetResponseText(rq, "Forbidden");
AQH_User_free(user); AQCGI_User_free(user);
return NULL; return NULL;
} }
buf=GWEN_Buffer_new(0, 256, 0, 1); buf=GWEN_Buffer_new(0, 256, 0, 1);
@@ -349,7 +349,7 @@ AQH_USER *_getAndCheckUser(AQH_MODULE *m, AQCGI_REQUEST *rq)
AQCGI_Request_SetResponseCode(rq, 403); AQCGI_Request_SetResponseCode(rq, 403);
AQCGI_Request_SetResponseText(rq, "Forbidden"); AQCGI_Request_SetResponseText(rq, "Forbidden");
GWEN_Buffer_free(buf); GWEN_Buffer_free(buf);
AQH_User_free(user); AQCGI_User_free(user);
return NULL; return NULL;
} }
GWEN_Buffer_free(buf); GWEN_Buffer_free(buf);

View File

@@ -16,7 +16,7 @@
#include <gwenhywfar/buffer.h> #include <gwenhywfar/buffer.h>
AQH_MODULE *AQH_ModRoot_new(AQH_SERVICE *sv, const char *baseFolder); AQCGI_MODULE *AQH_ModRoot_new(AQCGI_SERVICE *sv, const char *baseFolder);

View File

@@ -1,86 +0,0 @@
<?xml?>
<gwbuild>
<target type="ConvenienceLibrary" name="aqhcgi_service" >
<includes type="c" >
$(gwenhywfar_cflags)
-I$(topsrcdir)
-I$(topbuilddir)
-I$(topsrcdir)/apps
-I$(topbuilddir)/apps
-I$(builddir)
-I$(srcdir)
</includes>
<includes type="tm2" >
--include=$(builddir)
--include=$(srcdir)
</includes>
<define name="not_BUILDING_AQHOME" />
<setVar name="local/cflags">$(visibility_cflags)</setVar>
<setVar name="tm2flags-INACTIVE" >
--api=AQHOME_API
</setVar>
<setVar name="local/typefiles" >
module.t2d
moduleperms.t2d
role.t2d
user.t2d
session.t2d
permdef.t2d
</setVar>
<setVar name="local/built_sources" >
</setVar>
<setVar name="local/built_headers_pub">
</setVar>
<setVar name="local/built_headers_priv" >
</setVar>
<headers dist="false" install="$(pkgincludedir)/service" >
$(local/built_headers_pub)
</headers>
<headers dist="true" install="$(pkgincludedir)/service" >
service.h
</headers>
<headers dist="true" >
service_p.h
</headers>
<sources>
$(local/typefiles)
service.c
</sources>
<extradist>
</extradist>
<useTargets>
</useTargets>
<subdirs>
</subdirs>
</target>
</gwbuild>

View File

@@ -1,20 +0,0 @@
- service:
- userList
- rootModule
- sessionList
- user:
- modulePerms
- module:
- roleList
- permDefList
- session

View File

@@ -1,103 +0,0 @@
<?xml?>
<tm2>
<type id="AQH_MODULE" type="pointer">
<descr>
</descr>
<lang id="c">
<identifier>AQH_MODULE</identifier>
<prefix>AQH_Module</prefix>
<baseFileName>module</baseFileName>
<flags>
with_inherit
with_xml
with_db
with_list1
with_list2
with_tree2
nodup
nocopy
</flags>
<headers>
<header type="sys" loc="pre">aqhome/api.h</header>
<header type="sys" loc="pre">gwenhywfar/error.h</header>
<header type="sys" loc="post">aqhome-cgi/service/role.h</header>
<header type="sys" loc="post">aqhome-cgi/service/permdef.h</header>
</headers>
<inlines>
</inlines>
</lang>
<defines>
<define id="AQH_MODULE_FLAGS" prefix="AQH_MODULE_FLAGS_">
<item name="ACTIVE" value="0x00000001" />
</define>
</defines>
<members>
<member name="id" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>with_getbymember sortbymember</flags>
</member>
<member name="flags" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>with_flags</flags>
</member>
<member name="name" type="char_ptr" maxlen="16">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>own with_getbymember sortbymember</flags>
</member>
<member name="descr" type="char_ptr" maxlen="256">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>own</flags>
</member>
<member name="guestPerms" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags></flags>
</member>
<member name="roleList" type="AQH_ROLE_LIST" elementName="role" >
<default>NULL</default>
<preset>NULL</preset>
<access>public</access>
<flags>own</flags>
<getflags>none</getflags>
<setflags>none</setflags>
</member>
<member name="permDefList" type="AQH_PERMDEF_LIST" elementName="permdef" >
<default>NULL</default>
<preset>NULL</preset>
<access>public</access>
<flags>own</flags>
<getflags>none</getflags>
<setflags>none</setflags>
</member>
</members>
</type>
</tm2>

View File

@@ -1,67 +0,0 @@
<?xml?>
<tm2>
<type id="AQH_MODULE_PERMS" type="pointer">
<descr>
</descr>
<lang id="c">
<identifier>AQH_MODULE_PERMS</identifier>
<prefix>AQH_ModulePerms</prefix>
<baseFileName>moduleperms</baseFileName>
<flags>
with_inherit
with_xml
with_db
with_list1
with_list2
</flags>
<headers>
<header type="sys" loc="pre">aqhome/api.h</header>
<header type="sys" loc="pre">gwenhywfar/error.h</header>
<header type="sys" loc="post">aqhome-cgi/service/role.h</header>
</headers>
<inlines>
</inlines>
</lang>
<members>
<member name="moduleId" type="char_ptr" maxlen="256">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>with_getbymember sortbymember</flags>
</member>
<member name="explAddPerms" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags></flags>
</member>
<member name="explDelPerms" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags></flags>
</member>
<member name="roleArray" type="uint8_t_array" maxlen="16">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags></flags>
</member>
</members>
</type>
</tm2>

View File

@@ -1,65 +0,0 @@
<?xml?>
<tm2>
<type id="AQH_PERMDEF" type="pointer">
<descr>
</descr>
<lang id="c">
<identifier>AQH_PERMDEF</identifier>
<prefix>AQH_PermDef</prefix>
<baseFileName>permdef</baseFileName>
<flags>
with_xml
with_db
with_list1
nodup
nocopy
</flags>
<headers>
<header type="sys" loc="pre">aqhome/api.h</header>
</headers>
<inlines>
</inlines>
</lang>
<members>
<member name="id" type="char_ptr" maxlen="32">
<default>NULL</default>
<preset>NULL</preset>
<access>public</access>
<flags>own with_getbymember</flags>
</member>
<member name="name" type="char_ptr" maxlen="32">
<default>NULL</default>
<preset>NULL</preset>
<access>public</access>
<flags>own with_getbymember</flags>
</member>
<member name="mask" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>own with_getbymember</flags>
</member>
<member name="descr" type="char_ptr" maxlen="256">
<default>NULL</default>
<preset>NULL</preset>
<access>public</access>
<flags>own</flags>
</member>
</members>
</type>
</tm2>

View File

@@ -1,79 +0,0 @@
<?xml?>
<tm2>
<type id="AQH_ROLE" type="pointer">
<descr>
</descr>
<lang id="c">
<identifier>AQH_ROLE</identifier>
<prefix>AQH_Role</prefix>
<baseFileName>role</baseFileName>
<flags>
with_xml
with_db
with_list1
with_list2
</flags>
<headers>
<header type="sys" loc="pre">aqhome/api.h</header>
<header type="sys" loc="pre">gwenhywfar/error.h</header>
</headers>
<inlines>
</inlines>
</lang>
<members>
<member name="id" type="uint8_t" maxlen="1">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>with_getbymember</flags>
</member>
<member name="name" type="char_ptr" maxlen="16">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>own</flags>
</member>
<member name="descr" type="char_ptr" maxlen="256">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>own</flags>
</member>
<member name="perms" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags></flags>
</member>
<member name="explAddPerms" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags></flags>
</member>
<member name="explDelPerms" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags></flags>
</member>
</members>
</type>
</tm2>

View File

@@ -1,432 +0,0 @@
/****************************************************************************
* This file is part of the project AqHome.
* AqHome (c) by 2025 Martin Preuss, all rights reserved.
*
* The license for this file can be found in the file COPYING which you
* should have received along with this file.
****************************************************************************/
#ifdef HAVE_CONFIG_H
# include <config.h>
#endif
//#define DISABLE_DEBUGLOG
#include "aqhome-cgi/service/service_p.h"
#include <gwenhywfar/stringlist.h>
#include <gwenhywfar/text.h>
#include <gwenhywfar/debug.h>
GWEN_INHERIT_FUNCTIONS(AQH_SERVICE);
GWEN_LIST_FUNCTIONS(AQH_SERVICE, AQH_Service);
AQH_SERVICE *AQH_Service_new(const char *baseFolder, const char *baseUrl)
{
AQH_SERVICE *sv;
GWEN_NEW_OBJECT(AQH_SERVICE, sv);
GWEN_INHERIT_INIT(AQH_SERVICE, sv);
GWEN_LIST_INIT(AQH_SERVICE, sv);
sv->baseUrl=baseUrl?strdup(baseUrl):NULL;
sv->baseFolder=baseFolder?strdup(baseFolder):NULL;
if (sv->baseFolder) {
GWEN_BUFFER *dbuf;
uint32_t pos;
dbuf=GWEN_Buffer_new(0, 256, 0, 1);
GWEN_Buffer_AppendArgs(dbuf, "%s%s", sv->baseFolder, GWEN_DIR_SEPARATOR_S);
pos=GWEN_Buffer_GetPos(dbuf);
/* data folder */
GWEN_Buffer_AppendString(dbuf, "data");
sv->runtimeFolder=strdup(GWEN_Buffer_GetStart(dbuf));
DBG_ERROR(NULL, "Runtime folder: %s", GWEN_Buffer_GetStart(dbuf));
GWEN_Buffer_Crop(dbuf, 0, pos);
/* cache folder */
GWEN_Buffer_AppendString(dbuf, "cache");
sv->cacheFolder=strdup(GWEN_Buffer_GetStart(dbuf));
DBG_ERROR(NULL, "Cache folder: %s", GWEN_Buffer_GetStart(dbuf));
GWEN_Buffer_Crop(dbuf, 0, pos);
GWEN_Buffer_free(dbuf);
}
return sv;
}
void AQH_Service_free(AQH_SERVICE *sv)
{
if (sv) {
GWEN_LIST_FINI(AQH_SERVICE, sv);
GWEN_INHERIT_FINI(AQH_SERVICE, sv);
free(sv->baseUrl);
free(sv->baseFolder);
free(sv->runtimeFolder);
free(sv->cacheFolder);
free(sv->loginUrl);
GWEN_FREE_OBJECT(sv);
}
}
const char *AQH_Service_GetBaseUrl(const AQH_SERVICE *sv)
{
return sv?sv->baseUrl:NULL;
}
const char *AQH_Service_GetBaseFolder(const AQH_SERVICE *sv)
{
return sv?sv->baseFolder:NULL;
}
const char *AQH_Service_GetRuntimeFolder(const AQH_SERVICE *sv)
{
return sv?sv->runtimeFolder:NULL;
}
const char *AQH_Service_GetCacheFolder(const AQH_SERVICE *sv)
{
return sv?sv->cacheFolder:NULL;
}
const char *AQH_Service_GetLoginUrl(const AQH_SERVICE *sv)
{
return sv?sv->loginUrl:NULL;
}
void AQH_Service_SetLoginUrl(AQH_SERVICE *sv, const char *s)
{
if (sv) {
free(sv->loginUrl);
sv->loginUrl=s?strdup(s):NULL;
}
}
#if 0
AQH_MODULE *AQH_Service_GetModuleByPath(const AQH_SERVICE *sv, const char *s)
{
if (sv && s && *s) {
GWEN_STRINGLIST *sl;
sl=GWEN_StringList_fromString2(s, "/", 0,
GWEN_TEXT_FLAGS_DEL_QUOTES |
GWEN_TEXT_FLAGS_DEL_LEADING_BLANKS |
GWEN_TEXT_FLAGS_DEL_MULTIPLE_BLANKS |
GWEN_TEXT_FLAGS_DEL_TRAILING_BLANKS);
if (sl) {
GWEN_STRINGLISTENTRY *se;
AQH_MODULE *m;
m=sv->rootModule;
se=GWEN_StringList_FirstEntry(sl);
while(se && m) {
const char *sWantedName;
sWantedName=GWEN_StringListEntry_Data(se);
if (sWantedName && *sWantedName) {
AQH_MODULE *mTemp;
mTemp=AQH_Module_Tree2_GetFirstChild(m);
while(mTemp) {
const char *sModName;
sModName=AQH_Module_GetName(mTemp);
if (sModName && *sModName && 0==strcasecmp(sModName, sWantedName))
break;
mTemp=AQH_Module_Tree2_GetNext(mTemp);
}
if (mTemp==NULL) {
DBG_ERROR(NULL, "Module \%s\" not found", sWantedName);
GWEN_StringList_free(sl);
return NULL;
}
m=mTemp;
}
else {
DBG_ERROR(NULL, "Empty path element in \"%s\"", s);
GWEN_StringList_free(sl);
return NULL;
}
se=GWEN_StringListEntry_Next(se);
} /* while(se && m) */
GWEN_StringList_free(sl);
return m;
}
else {
DBG_ERROR(NULL, "Bad path \"%s\"", s);
}
}
return NULL;
}
#endif
int AQH_Service_HandleRequest(AQH_SERVICE *sv, AQCGI_REQUEST *req)
{
return (sv && sv->handleRequestFn)?(sv->handleRequestFn(sv, req)):GWEN_ERROR_NOT_IMPLEMENTED;
}
AQH_USER *AQH_Service_LoadUser(AQH_SERVICE *sv, const char *s)
{
return (sv && sv->loadUserFn)?(sv->loadUserFn(sv, s)):NULL;
}
int AQH_Service_SaveUser(AQH_SERVICE *sv, AQH_USER *user)
{
return (sv && sv->saveUserFn)?(sv->saveUserFn(sv, user)):GWEN_ERROR_NOT_IMPLEMENTED;
}
int AQH_Service_AddUser(AQH_SERVICE *sv, AQH_USER *user)
{
return (sv && sv->addUserFn)?(sv->addUserFn(sv, user)):GWEN_ERROR_NOT_IMPLEMENTED;
}
int AQH_Service_DelUser(AQH_SERVICE *sv, const char *s)
{
return (sv && sv->delUserFn)?(sv->delUserFn(sv, s)):GWEN_ERROR_NOT_IMPLEMENTED;
}
GWEN_STRINGLIST *AQH_Service_ListUsers(AQH_SERVICE *sv)
{
return (sv && sv->listUsersFn)?(sv->listUsersFn(sv)):NULL;
}
AQH_MODULE *AQH_Service_LoadModule(AQH_SERVICE *sv, const char *s)
{
return (sv && sv->loadModuleFn)?(sv->loadModuleFn(sv, s)):NULL;
}
int AQH_Service_SaveModule(AQH_SERVICE *sv, AQH_MODULE *module)
{
return (sv && sv->saveModuleFn)?(sv->saveModuleFn(sv, module)):GWEN_ERROR_NOT_IMPLEMENTED;
}
int AQH_Service_AddModule(AQH_SERVICE *sv, AQH_MODULE *module)
{
return (sv && sv->addModuleFn)?(sv->addModuleFn(sv, module)):GWEN_ERROR_NOT_IMPLEMENTED;
}
int AQH_Service_DelModule(AQH_SERVICE *sv, const char *s)
{
return (sv && sv->delModuleFn)?(sv->delModuleFn(sv, s)):GWEN_ERROR_NOT_IMPLEMENTED;
}
GWEN_STRINGLIST *AQH_Service_ListModules(AQH_SERVICE *sv)
{
return (sv && sv->listModulesFn)?(sv->listModulesFn(sv)):NULL;
}
AQH_SESSION* AQH_Service_LoadSession(AQH_SERVICE *sv, const char *s)
{
return (sv && sv->loadSessionFn)?(sv->loadSessionFn(sv, s)):NULL;
}
int AQH_Service_SaveSession(AQH_SERVICE *sv, AQH_SESSION *session)
{
return (sv && sv->saveSessionFn)?(sv->saveSessionFn(sv, session)):GWEN_ERROR_NOT_IMPLEMENTED;
}
int AQH_Service_AddSession(AQH_SERVICE *sv, AQH_SESSION *session)
{
return (sv && sv->addSessionFn)?(sv->addSessionFn(sv, session)):GWEN_ERROR_NOT_IMPLEMENTED;
}
int AQH_Service_DelSession(AQH_SERVICE *sv, const char *s)
{
return (sv && sv->delSessionFn)?(sv->delSessionFn(sv, s)):GWEN_ERROR_NOT_IMPLEMENTED;
}
void AQH_Service_SetHandleRequestFn(AQH_SERVICE *sv, AQH_SERVICE_HANDLEREQUEST_FN f)
{
if (sv)
sv->handleRequestFn=f;
}
void AQH_Service_SetLoadUserFn(AQH_SERVICE *sv, AQH_SERVICE_LOADUSER_FN f)
{
if (sv)
sv->loadUserFn=f;
}
void AQH_Service_SetSaveUserFn(AQH_SERVICE *sv, AQH_SERVICE_SAVEUSER_FN f)
{
if (sv)
sv->saveUserFn=f;
}
void AQH_Service_SetAddUserFn(AQH_SERVICE *sv, AQH_SERVICE_ADDUSER_FN f)
{
if (sv)
sv->addUserFn=f;
}
void AQH_Service_SetDelUserFn(AQH_SERVICE *sv, AQH_SERVICE_DELUSER_FN f)
{
if (sv)
sv->delUserFn=f;
}
void AQH_Service_SetListUsersFn(AQH_SERVICE *sv, AQH_SERVICE_LISTUSERS_FN f)
{
if (sv)
sv->listUsersFn=f;
}
void AQH_Service_SetLoadModuleFn(AQH_SERVICE *sv, AQH_SERVICE_LOADMODULE_FN f)
{
if (sv)
sv->loadModuleFn=f;
}
void AQH_Service_SetSaveModuleFn(AQH_SERVICE *sv, AQH_SERVICE_SAVEMODULE_FN f)
{
if (sv)
sv->saveModuleFn=f;
}
void AQH_Service_SetAddModuleFn(AQH_SERVICE *sv, AQH_SERVICE_ADDMODULE_FN f)
{
if (sv)
sv->addModuleFn=f;
}
void AQH_Service_SetDelModuleFn(AQH_SERVICE *sv, AQH_SERVICE_DELMODULE_FN f)
{
if (sv)
sv->delModuleFn=f;
}
void AQH_Service_SetListModulesFn(AQH_SERVICE *sv, AQH_SERVICE_LISTMODULES_FN f)
{
if (sv)
sv->listModulesFn=f;
}
void AQH_Service_SetLoadSessionFn(AQH_SERVICE *sv, AQH_SERVICE_LOADSESSION_FN f)
{
if (sv)
sv->loadSessionFn=f;
}
void AQH_Service_SetSaveSessionFn(AQH_SERVICE *sv, AQH_SERVICE_SAVESESSION_FN f)
{
if (sv)
sv->saveSessionFn=f;
}
void AQH_Service_SetAddSessionFn(AQH_SERVICE *sv, AQH_SERVICE_ADDSESSION_FN f)
{
if (sv)
sv->addSessionFn=f;
}
void AQH_Service_SetDelSessionFn(AQH_SERVICE *sv, AQH_SERVICE_DELSESSION_FN f)
{
if (sv)
sv->delSessionFn=f;
}
void AQH_Service_SetListSessionsFn(AQH_SERVICE *sv, AQH_SERVICE_LISTSESSIONS_FN f)
{
if (sv)
sv->listSessionsFn=f;
}

View File

@@ -1,109 +0,0 @@
/****************************************************************************
* This file is part of the project AqHome.
* AqHome (c) by 2025 Martin Preuss, all rights reserved.
*
* The license for this file can be found in the file COPYING which you
* should have received along with this file.
****************************************************************************/
#ifndef AQHOME_SERVICE_H
#define AQHOME_SERVICE_H
#include <aqhome/api.h>
#include <gwenhywfar/inherit.h>
#include <gwenhywfar/list.h>
#include <gwenhywfar/stringlist.h>
typedef struct AQH_SERVICE AQH_SERVICE;
GWEN_INHERIT_FUNCTION_DEFS(AQH_SERVICE);
GWEN_LIST_FUNCTION_DEFS(AQH_SERVICE, AQH_Service);
#include "aqhome-cgi/service/user.h"
#include "aqhome-cgi/service/module.h"
#include "aqhome-cgi/service/session.h"
#include <aqcgi/cgi.h>
typedef int (*AQH_SERVICE_HANDLEREQUEST_FN)(AQH_SERVICE *sv, AQCGI_REQUEST *req);
typedef AQH_USER* (*AQH_SERVICE_LOADUSER_FN)(AQH_SERVICE *sv, const char *s);
typedef int (*AQH_SERVICE_SAVEUSER_FN)(AQH_SERVICE *sv, AQH_USER *user);
typedef int (*AQH_SERVICE_ADDUSER_FN)(AQH_SERVICE *sv, AQH_USER *user);
typedef int (*AQH_SERVICE_DELUSER_FN)(AQH_SERVICE *sv, const char *s);
typedef GWEN_STRINGLIST* (*AQH_SERVICE_LISTUSERS_FN)(AQH_SERVICE *sv);
typedef AQH_MODULE* (*AQH_SERVICE_LOADMODULE_FN)(AQH_SERVICE *sv, const char *s);
typedef int (*AQH_SERVICE_SAVEMODULE_FN)(AQH_SERVICE *sv, AQH_MODULE *module);
typedef int (*AQH_SERVICE_ADDMODULE_FN)(AQH_SERVICE *sv, AQH_MODULE *module);
typedef int (*AQH_SERVICE_DELMODULE_FN)(AQH_SERVICE *sv, const char *s);
typedef GWEN_STRINGLIST* (*AQH_SERVICE_LISTMODULES_FN)(AQH_SERVICE *sv);
typedef AQH_SESSION* (*AQH_SERVICE_LOADSESSION_FN)(AQH_SERVICE *sv, const char *s);
typedef int (*AQH_SERVICE_SAVESESSION_FN)(AQH_SERVICE *sv, AQH_SESSION *session);
typedef int (*AQH_SERVICE_ADDSESSION_FN)(AQH_SERVICE *sv, AQH_SESSION *session);
typedef int (*AQH_SERVICE_DELSESSION_FN)(AQH_SERVICE *sv, const char *s);
typedef GWEN_STRINGLIST* (*AQH_SERVICE_LISTSESSIONS_FN)(AQH_SERVICE *sv);
AQH_SERVICE *AQH_Service_new(const char *baseFolder, const char *baseUrl);
void AQH_Service_free(AQH_SERVICE *sv);
const char *AQH_Service_GetBaseUrl(const AQH_SERVICE *sv);
const char *AQH_Service_GetLoginUrl(const AQH_SERVICE *sv);
void AQH_Service_SetLoginUrl(AQH_SERVICE *sv, const char *s);
const char *AQH_Service_GetBaseFolder(const AQH_SERVICE *sv);
const char *AQH_Service_GetRuntimeFolder(const AQH_SERVICE *sv);
const char *AQH_Service_GetCacheFolder(const AQH_SERVICE *sv);
int AQH_Service_HandleRequest(AQH_SERVICE *sv, AQCGI_REQUEST *req);
AQH_USER *AQH_Service_LoadUser(AQH_SERVICE *sv, const char *s);
int AQH_Service_SaveUser(AQH_SERVICE *sv, AQH_USER *user);
int AQH_Service_AddUser(AQH_SERVICE *sv, AQH_USER *user);
int AQH_Service_DelUser(AQH_SERVICE *sv, const char *s);
GWEN_STRINGLIST *AQH_Service_ListUsers(AQH_SERVICE *sv);
AQH_MODULE *AQH_Service_LoadModule(AQH_SERVICE *sv, const char *s);
int AQH_Service_SaveModule(AQH_SERVICE *sv, AQH_MODULE *module);
int AQH_Service_AddModule(AQH_SERVICE *sv, AQH_MODULE *module);
int AQH_Service_DelModule(AQH_SERVICE *sv, const char *s);
GWEN_STRINGLIST *AQH_Service_ListModules(AQH_SERVICE *sv);
AQH_SESSION* AQH_Service_LoadSession(AQH_SERVICE *sv, const char *s);
int AQH_Service_SaveSession(AQH_SERVICE *sv, AQH_SESSION *session);
int AQH_Service_AddSession(AQH_SERVICE *sv, AQH_SESSION *session);
int AQH_Service_DelSession(AQH_SERVICE *sv, const char *s);
GWEN_STRINGLIST *AQH_Service_ListSessions(AQH_SERVICE *sv);
void AQH_Service_SetHandleRequestFn(AQH_SERVICE *sv, AQH_SERVICE_HANDLEREQUEST_FN f);
void AQH_Service_SetLoadUserFn(AQH_SERVICE *sv, AQH_SERVICE_LOADUSER_FN f);
void AQH_Service_SetSaveUserFn(AQH_SERVICE *sv, AQH_SERVICE_SAVEUSER_FN f);
void AQH_Service_SetAddUserFn(AQH_SERVICE *sv, AQH_SERVICE_ADDUSER_FN f);
void AQH_Service_SetDelUserFn(AQH_SERVICE *sv, AQH_SERVICE_DELUSER_FN f);
void AQH_Service_SetListUsersFn(AQH_SERVICE *sv, AQH_SERVICE_LISTUSERS_FN f);
void AQH_Service_SetLoadModuleFn(AQH_SERVICE *sv, AQH_SERVICE_LOADMODULE_FN f);
void AQH_Service_SetSaveModuleFn(AQH_SERVICE *sv, AQH_SERVICE_SAVEMODULE_FN f);
void AQH_Service_SetAddModuleFn(AQH_SERVICE *sv, AQH_SERVICE_ADDMODULE_FN f);
void AQH_Service_SetDelModuleFn(AQH_SERVICE *sv, AQH_SERVICE_DELMODULE_FN f);
void AQH_Service_SetListModulesFn(AQH_SERVICE *sv, AQH_SERVICE_LISTMODULES_FN f);
void AQH_Service_SetLoadSessionFn(AQH_SERVICE *sv, AQH_SERVICE_LOADSESSION_FN f);
void AQH_Service_SetSaveSessionFn(AQH_SERVICE *sv, AQH_SERVICE_SAVESESSION_FN f);
void AQH_Service_SetAddSessionFn(AQH_SERVICE *sv, AQH_SERVICE_ADDSESSION_FN f);
void AQH_Service_SetDelSessionFn(AQH_SERVICE *sv, AQH_SERVICE_DELSESSION_FN f);
void AQH_Service_SetListSessionsFn(AQH_SERVICE *sv, AQH_SERVICE_LISTSESSIONS_FN f);
#endif

View File

@@ -1,52 +0,0 @@
/****************************************************************************
* This file is part of the project AqHome.
* AqHome (c) by 2023 Martin Preuss, all rights reserved.
*
* The license for this file can be found in the file COPYING which you
* should have received along with this file.
****************************************************************************/
#ifndef AQHOME_SERVICE_P_H
#define AQHOME_SERVICE_P_H
#include "aqhome-cgi/service/service.h"
struct AQH_SERVICE {
GWEN_INHERIT_ELEMENT(AQH_SERVICE);
GWEN_LIST_ELEMENT(AQH_SERVICE);
char *baseUrl;
char *baseFolder;
char *runtimeFolder;
char *cacheFolder;
char *loginUrl;
AQH_SERVICE_HANDLEREQUEST_FN handleRequestFn;
AQH_SERVICE_LOADUSER_FN loadUserFn;
AQH_SERVICE_SAVEUSER_FN saveUserFn;
AQH_SERVICE_ADDUSER_FN addUserFn;
AQH_SERVICE_DELUSER_FN delUserFn;
AQH_SERVICE_LISTUSERS_FN listUsersFn;
AQH_SERVICE_LOADMODULE_FN loadModuleFn;
AQH_SERVICE_SAVEMODULE_FN saveModuleFn;
AQH_SERVICE_ADDMODULE_FN addModuleFn;
AQH_SERVICE_DELMODULE_FN delModuleFn;
AQH_SERVICE_LISTMODULES_FN listModulesFn;
AQH_SERVICE_LOADSESSION_FN loadSessionFn;
AQH_SERVICE_SAVESESSION_FN saveSessionFn;
AQH_SERVICE_ADDSESSION_FN addSessionFn;
AQH_SERVICE_DELSESSION_FN delSessionFn;
AQH_SERVICE_LISTSESSIONS_FN listSessionsFn;
};
#endif

View File

@@ -1,117 +0,0 @@
<?xml?>
<tm2>
<type id="AQH_SESSION" type="pointer">
<descr>
</descr>
<lang id="c">
<identifier>AQH_SESSION</identifier>
<prefix>AQH_Session</prefix>
<baseFileName>session</baseFileName>
<flags>
with_xml
with_db
with_list1
with_list2
nodup
nocopy
</flags>
<headers>
<header type="sys" loc="pre">aqhome/api.h</header>
<header type="sys" loc="pre">gwenhywfar/error.h</header>
<header type="sys" loc="pre">gwenhywfar/timestamp.h</header>
<header type="sys" loc="post">aqhome-cgi/service/user.h</header>
</headers>
<inlines>
</inlines>
</lang>
<defines>
<define id="AQH_SESSION_RTFLAGS" prefix="AQH_SESSION_RTFLAGS_">
<item name="MODIFIED" value="0x00000001" />
</define>
</defines>
<members>
<member name="uid" type="char_ptr" maxlen="64">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>own with_getbymember</flags>
</member>
<member name="flags" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>with_flags</flags>
</member>
<member name="userAlias" type="char_ptr" maxlen="64">
<default>NULL</default>
<preset>NULL</preset>
<access>public</access>
<flags>own</flags>
</member>
<member name="state" type="int" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags></flags>
</member>
<member name="tempToken" type="char_ptr" maxlen="64">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>own</flags>
</member>
<member name="timestampCreation" type="gwen_timestamp" maxlen="8">
<default>NULL</default>
<preset>NULL</preset>
<access>public</access>
<flags>own</flags>
</member>
<member name="timestampLastAccess" type="gwen_timestamp" maxlen="8">
<default>NULL</default>
<preset>NULL</preset>
<access>public</access>
<flags>own</flags>
</member>
<member name="user" type="AQH_USER">
<default>NULL</default>
<preset>NULL</preset>
<access>public</access>
<setflags>assign</setflags>
<getflags>none</getflags>
<flags>volatile nodup nocopy</flags>
</member>
<member name="runtimeFlags" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>with_flags volatile</flags>
</member>
</members>
</type>
</tm2>

View File

@@ -1,164 +0,0 @@
<?xml?>
<tm2>
<type id="AQH_USER" type="pointer">
<descr>
</descr>
<lang id="c">
<identifier>AQH_USER</identifier>
<prefix>AQH_User</prefix>
<baseFileName>user</baseFileName>
<flags>
with_xml
with_db
with_list1
with_list2
with_refcount
nodup
nocopy
</flags>
<headers>
<header type="sys" loc="pre">aqhome/api.h</header>
<header type="sys" loc="pre">gwenhywfar/error.h</header>
<header type="sys" loc="pre">gwenhywfar/timestamp.h</header>
<header type="sys" loc="post">aqhome-cgi/service/moduleperms.h</header>
</headers>
<inlines>
</inlines>
</lang>
<defines>
<define id="AQH_USER_FLAGS" prefix="AQH_USER_FLAGS_">
<item name="ADMIN" value="0x00000001" />
</define>
<define id="AQH_USER_RTFLAGS" prefix="AQH_USER_RTFLAGS_">
<item name="MODIFIED" value="0x00000001" />
<item name="PERMSCALC" value="0x00000002" />
</define>
</defines>
<enums>
<enum id="AQH_USER_STATE" prefix="AQH_UserState_">
<item name="suspended">
<descr>User suspended</descr>
</item>
<item name="waitForConfirmation">
<descr>Waiting for email confirmation</descr>
</item>
<item name="waitForApproval">
<descr>Waiting for approval by admin</descr>
</item>
<item name="active">
<descr>User active</descr>
</item>
</enum>
</enums>
<members>
<member name="id" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>with_getbymember sortbymember</flags>
</member>
<member name="flags" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>with_flags</flags>
</member>
<member name="state" type="int" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>sortbymember</flags>
</member>
<member name="name" type="char_ptr" maxlen="16">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>own sortbymember</flags>
</member>
<member name="alias" type="char_ptr" maxlen="16">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>own with_getbymember sortbymember</flags>
</member>
<member name="hashedPassword" type="char_ptr" maxlen="128">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>own</flags>
</member>
<member name="email" type="char_ptr" maxlen="128">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>own with_getbymember sortbymember</flags>
</member>
<member name="notes" type="char_ptr" maxlen="256">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>own</flags>
</member>
<member name="timestampCreation" type="gwen_timestamp" maxlen="8">
<default>NULL</default>
<preset>NULL</preset>
<access>public</access>
<flags>own sortbymember</flags>
</member>
<member name="timestampLastLogin" type="gwen_timestamp" maxlen="8">
<default>NULL</default>
<preset>NULL</preset>
<access>public</access>
<flags>own sortbymember</flags>
</member>
<member name="modulePermList" type="AQH_MODULE_PERMS_LIST">
<default>NULL</default>
<preset>NULL</preset>
<access>public</access>
<getflags>none</getflags>
<setflags>none</setflags>
<flags>own</flags>
</member>
<member name="runtimeFlags" type="uint32_t" maxlen="4">
<default>0</default>
<preset>0</preset>
<access>public</access>
<flags>volatile with_flags</flags>
</member>
</members>
</type>
</tm2>

View File

@@ -35,7 +35,7 @@
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
GWEN_INHERIT(AQH_SERVICE, AQH_SERVICE_FILE) GWEN_INHERIT(AQCGI_SERVICE, AQH_SERVICE_FILE)
@@ -46,29 +46,29 @@ GWEN_INHERIT(AQH_SERVICE, AQH_SERVICE_FILE)
static void GWENHYWFAR_CB _freeData(void *bp, void *p); static void GWENHYWFAR_CB _freeData(void *bp, void *p);
static AQH_USER *_loadUser(AQH_SERVICE *sv, const char *s); static AQCGI_USER *_loadUser(AQCGI_SERVICE *sv, const char *s);
static int _saveUser(AQH_SERVICE *sv, AQH_USER *user); static int _saveUser(AQCGI_SERVICE *sv, AQCGI_USER *user);
static int _addUser(AQH_SERVICE *sv, AQH_USER *user); static int _addUser(AQCGI_SERVICE *sv, AQCGI_USER *user);
static int _delUser(AQH_SERVICE *sv, const char *s); static int _delUser(AQCGI_SERVICE *sv, const char *s);
static GWEN_STRINGLIST *_listUsers(AQH_SERVICE *sv); static GWEN_STRINGLIST *_listUsers(AQCGI_SERVICE *sv);
static AQH_MODULE *_loadModule(AQH_SERVICE *sv, const char *s); static AQCGI_MODULE *_loadModule(AQCGI_SERVICE *sv, const char *s);
static int _saveModule(AQH_SERVICE *sv, AQH_MODULE *module); static int _saveModule(AQCGI_SERVICE *sv, AQCGI_MODULE *module);
static int _addModule(AQH_SERVICE *sv, AQH_MODULE *module); static int _addModule(AQCGI_SERVICE *sv, AQCGI_MODULE *module);
static int _delModule(AQH_SERVICE *sv, const char *s); static int _delModule(AQCGI_SERVICE *sv, const char *s);
static GWEN_STRINGLIST *_listModules(AQH_SERVICE *sv); static GWEN_STRINGLIST *_listModules(AQCGI_SERVICE *sv);
static AQH_SESSION* _loadSession(AQH_SERVICE *sv, const char *s); static AQCGI_SESSION* _loadSession(AQCGI_SERVICE *sv, const char *s);
static int _saveSession(AQH_SERVICE *sv, AQH_SESSION *session); static int _saveSession(AQCGI_SERVICE *sv, AQCGI_SESSION *session);
static int _addSession(AQH_SERVICE *sv, AQH_SESSION *session); static int _addSession(AQCGI_SERVICE *sv, AQCGI_SESSION *session);
static int _delSession(AQH_SERVICE *sv, const char *s); static int _delSession(AQCGI_SERVICE *sv, const char *s);
static GWEN_STRINGLIST *_listSessions(AQH_SERVICE *sv); static GWEN_STRINGLIST *_listSessions(AQCGI_SERVICE *sv);
static GWEN_DB_NODE *_loadGroupLocked(AQH_SERVICE *sv, const char *groupName, const char *subGroupName); static GWEN_DB_NODE *_loadGroupLocked(AQCGI_SERVICE *sv, const char *groupName, const char *subGroupName);
static int _saveGroupLocked(AQH_SERVICE *sv, const char *groupName, const char *subGroupName, GWEN_DB_NODE *db); static int _saveGroupLocked(AQCGI_SERVICE *sv, const char *groupName, const char *subGroupName, GWEN_DB_NODE *db);
static int _addGroupLocked(AQH_SERVICE *sv, const char *groupName, const char *subGroupName, GWEN_DB_NODE *db); static int _addGroupLocked(AQCGI_SERVICE *sv, const char *groupName, const char *subGroupName, GWEN_DB_NODE *db);
static int _deleteGroup(AQH_SERVICE *sv, const char *groupName, const char *subGroupName); static int _deleteGroup(AQCGI_SERVICE *sv, const char *groupName, const char *subGroupName);
static GWEN_STRINGLIST *_listGroup(AQH_SERVICE *sv, const char *groupName); static GWEN_STRINGLIST *_listGroup(AQCGI_SERVICE *sv, const char *groupName);
//static void _logGroup(const char *groupName, const char *subGroupName, GWEN_DB_NODE *db); //static void _logGroup(const char *groupName, const char *subGroupName, GWEN_DB_NODE *db);
@@ -79,42 +79,42 @@ static GWEN_STRINGLIST *_listGroup(AQH_SERVICE *sv, const char *groupName);
* ------------------------------------------------------------------------------------------------ * ------------------------------------------------------------------------------------------------
*/ */
AQH_SERVICE *AQH_ServiceFiles_new(const char *baseFolder, const char *baseUrl) AQCGI_SERVICE *AQH_ServiceFiles_new(const char *baseFolder, const char *baseUrl)
{ {
AQH_SERVICE *sv; AQCGI_SERVICE *sv;
AQH_SERVICE_FILE *xs; AQH_SERVICE_FILE *xs;
GWEN_BUFFER *dbuf; GWEN_BUFFER *dbuf;
sv=AQH_Service_new(baseFolder, baseUrl); sv=AQCGI_Service_new(baseFolder, baseUrl);
GWEN_NEW_OBJECT(AQH_SERVICE_FILE, xs); GWEN_NEW_OBJECT(AQH_SERVICE_FILE, xs);
GWEN_INHERIT_SETDATA(AQH_SERVICE, AQH_SERVICE_FILE, sv, xs, _freeData); GWEN_INHERIT_SETDATA(AQCGI_SERVICE, AQH_SERVICE_FILE, sv, xs, _freeData);
AQH_Service_SetLoadUserFn(sv, _loadUser); AQCGI_Service_SetLoadUserFn(sv, _loadUser);
AQH_Service_SetSaveUserFn(sv, _saveUser); AQCGI_Service_SetSaveUserFn(sv, _saveUser);
AQH_Service_SetAddUserFn(sv, _addUser); AQCGI_Service_SetAddUserFn(sv, _addUser);
AQH_Service_SetDelUserFn(sv, _delUser); AQCGI_Service_SetDelUserFn(sv, _delUser);
AQH_Service_SetListUsersFn(sv, _listUsers); AQCGI_Service_SetListUsersFn(sv, _listUsers);
AQH_Service_SetLoadModuleFn(sv, _loadModule); AQCGI_Service_SetLoadModuleFn(sv, _loadModule);
AQH_Service_SetSaveModuleFn(sv, _saveModule); AQCGI_Service_SetSaveModuleFn(sv, _saveModule);
AQH_Service_SetAddModuleFn(sv, _addModule); AQCGI_Service_SetAddModuleFn(sv, _addModule);
AQH_Service_SetDelModuleFn(sv, _delModule); AQCGI_Service_SetDelModuleFn(sv, _delModule);
AQH_Service_SetListModulesFn(sv, _listModules); AQCGI_Service_SetListModulesFn(sv, _listModules);
AQH_Service_SetLoadSessionFn(sv, _loadSession); AQCGI_Service_SetLoadSessionFn(sv, _loadSession);
AQH_Service_SetSaveSessionFn(sv, _saveSession); AQCGI_Service_SetSaveSessionFn(sv, _saveSession);
AQH_Service_SetAddSessionFn(sv, _addSession); AQCGI_Service_SetAddSessionFn(sv, _addSession);
AQH_Service_SetDelSessionFn(sv, _delSession); AQCGI_Service_SetDelSessionFn(sv, _delSession);
AQH_Service_SetListSessionsFn(sv, _listSessions); AQCGI_Service_SetListSessionsFn(sv, _listSessions);
dbuf=GWEN_Buffer_new(0, 256, 0, 1); dbuf=GWEN_Buffer_new(0, 256, 0, 1);
GWEN_Buffer_AppendArgs(dbuf, "dir://%s", AQH_Service_GetRuntimeFolder(sv)); GWEN_Buffer_AppendArgs(dbuf, "dir://%s", AQCGI_Service_GetRuntimeFolder(sv));
DBG_ERROR(NULL, "Creating config mgr \"%s\"", GWEN_Buffer_GetStart(dbuf)); DBG_ERROR(NULL, "Creating config mgr \"%s\"", GWEN_Buffer_GetStart(dbuf));
xs->configMgr=GWEN_ConfigMgr_Factory(GWEN_Buffer_GetStart(dbuf)); xs->configMgr=GWEN_ConfigMgr_Factory(GWEN_Buffer_GetStart(dbuf));
if (xs->configMgr==NULL) { if (xs->configMgr==NULL) {
DBG_ERROR(NULL, "Error creating config mgr \"%s\"", GWEN_Buffer_GetStart(dbuf)); DBG_ERROR(NULL, "Error creating config mgr \"%s\"", GWEN_Buffer_GetStart(dbuf));
GWEN_Buffer_free(dbuf); GWEN_Buffer_free(dbuf);
AQH_Service_free(sv); AQCGI_Service_free(sv);
return NULL; return NULL;
} }
GWEN_Buffer_free(dbuf); GWEN_Buffer_free(dbuf);
@@ -135,15 +135,15 @@ void GWENHYWFAR_CB _freeData(GWEN_UNUSED void *bp, void *p)
AQH_USER *_loadUser(AQH_SERVICE *sv, const char *s) AQCGI_USER *_loadUser(AQCGI_SERVICE *sv, const char *s)
{ {
GWEN_DB_NODE *db; GWEN_DB_NODE *db;
db=_loadGroupLocked(sv, AQH_SERVICE_FILE_GROUP_USERS, s); db=_loadGroupLocked(sv, AQH_SERVICE_FILE_GROUP_USERS, s);
if (db) { if (db) {
AQH_USER *user; AQCGI_USER *user;
user=AQH_User_fromDb(db); user=AQCGI_User_fromDb(db);
GWEN_DB_Group_free(db); GWEN_DB_Group_free(db);
return user; return user;
} }
@@ -153,25 +153,23 @@ AQH_USER *_loadUser(AQH_SERVICE *sv, const char *s)
int _saveUser(AQH_SERVICE *sv, AQH_USER *user) int _saveUser(AQCGI_SERVICE *sv, AQCGI_USER *user)
{ {
const char *s; const char *s;
s=AQH_User_GetAlias(user); s=AQCGI_User_GetAlias(user);
if (s && *s) { if (s && *s) {
GWEN_DB_NODE *db; GWEN_DB_NODE *db;
int rv; int rv;
db=GWEN_DB_Group_new(s); db=GWEN_DB_Group_new(s);
rv=AQH_User_toDb(user, db); rv=AQCGI_User_toDb(user, db);
if (rv<0) { if (rv<0) {
DBG_ERROR(NULL, "here (%d)", rv); DBG_ERROR(NULL, "here (%d)", rv);
GWEN_DB_Group_free(db); GWEN_DB_Group_free(db);
return rv; return rv;
} }
/*_logGroup(AQH_SERVICE_FILE_GROUP_USERS, s, db);*/
rv=_saveGroupLocked(sv, AQH_SERVICE_FILE_GROUP_USERS, s, db); rv=_saveGroupLocked(sv, AQH_SERVICE_FILE_GROUP_USERS, s, db);
if (rv<0) { if (rv<0) {
DBG_ERROR(NULL, "here (%d)", rv); DBG_ERROR(NULL, "here (%d)", rv);
@@ -186,17 +184,17 @@ int _saveUser(AQH_SERVICE *sv, AQH_USER *user)
int _addUser(AQH_SERVICE *sv, AQH_USER *user) int _addUser(AQCGI_SERVICE *sv, AQCGI_USER *user)
{ {
const char *s; const char *s;
s=AQH_User_GetAlias(user); s=AQCGI_User_GetAlias(user);
if (s && *s) { if (s && *s) {
GWEN_DB_NODE *db; GWEN_DB_NODE *db;
int rv; int rv;
db=GWEN_DB_Group_new(s); db=GWEN_DB_Group_new(s);
rv=AQH_User_toDb(user, db); rv=AQCGI_User_toDb(user, db);
if (rv<0) { if (rv<0) {
DBG_ERROR(NULL, "here (%d)", rv); DBG_ERROR(NULL, "here (%d)", rv);
GWEN_DB_Group_free(db); GWEN_DB_Group_free(db);
@@ -219,29 +217,29 @@ int _addUser(AQH_SERVICE *sv, AQH_USER *user)
int _delUser(AQH_SERVICE *sv, const char *s) int _delUser(AQCGI_SERVICE *sv, const char *s)
{ {
return _deleteGroup(sv, AQH_SERVICE_FILE_GROUP_USERS, s); return _deleteGroup(sv, AQH_SERVICE_FILE_GROUP_USERS, s);
} }
GWEN_STRINGLIST *_listUsers(AQH_SERVICE *sv) GWEN_STRINGLIST *_listUsers(AQCGI_SERVICE *sv)
{ {
return _listGroup(sv, AQH_SERVICE_FILE_GROUP_USERS); return _listGroup(sv, AQH_SERVICE_FILE_GROUP_USERS);
} }
AQH_MODULE *_loadModule(AQH_SERVICE *sv, const char *s) AQCGI_MODULE *_loadModule(AQCGI_SERVICE *sv, const char *s)
{ {
GWEN_DB_NODE *db; GWEN_DB_NODE *db;
db=_loadGroupLocked(sv, AQH_SERVICE_FILE_GROUP_MODULES, s); db=_loadGroupLocked(sv, AQH_SERVICE_FILE_GROUP_MODULES, s);
if (db) { if (db) {
AQH_MODULE *module; AQCGI_MODULE *module;
module=AQH_Module_fromDb(db); module=AQCGI_Module_fromDb(db);
GWEN_DB_Group_free(db); GWEN_DB_Group_free(db);
return module; return module;
} }
@@ -251,17 +249,17 @@ AQH_MODULE *_loadModule(AQH_SERVICE *sv, const char *s)
int _saveModule(AQH_SERVICE *sv, AQH_MODULE *module) int _saveModule(AQCGI_SERVICE *sv, AQCGI_MODULE *module)
{ {
const char *s; const char *s;
s=AQH_Module_GetName(module); s=AQCGI_Module_GetName(module);
if (s && *s) { if (s && *s) {
GWEN_DB_NODE *db; GWEN_DB_NODE *db;
int rv; int rv;
db=GWEN_DB_Group_new(s); db=GWEN_DB_Group_new(s);
rv=AQH_Module_toDb(module, db); rv=AQCGI_Module_toDb(module, db);
if (rv<0) { if (rv<0) {
DBG_ERROR(NULL, "here (%d)", rv); DBG_ERROR(NULL, "here (%d)", rv);
GWEN_DB_Group_free(db); GWEN_DB_Group_free(db);
@@ -281,17 +279,17 @@ int _saveModule(AQH_SERVICE *sv, AQH_MODULE *module)
int _addModule(AQH_SERVICE *sv, AQH_MODULE *module) int _addModule(AQCGI_SERVICE *sv, AQCGI_MODULE *module)
{ {
const char *s; const char *s;
s=AQH_Module_GetName(module); s=AQCGI_Module_GetName(module);
if (s && *s) { if (s && *s) {
GWEN_DB_NODE *db; GWEN_DB_NODE *db;
int rv; int rv;
db=GWEN_DB_Group_new(s); db=GWEN_DB_Group_new(s);
rv=AQH_Module_toDb(module, db); rv=AQCGI_Module_toDb(module, db);
if (rv<0) { if (rv<0) {
DBG_ERROR(NULL, "here (%d)", rv); DBG_ERROR(NULL, "here (%d)", rv);
GWEN_DB_Group_free(db); GWEN_DB_Group_free(db);
@@ -311,14 +309,14 @@ int _addModule(AQH_SERVICE *sv, AQH_MODULE *module)
int _delModule(AQH_SERVICE *sv, const char *s) int _delModule(AQCGI_SERVICE *sv, const char *s)
{ {
return _deleteGroup(sv, AQH_SERVICE_FILE_GROUP_MODULES, s); return _deleteGroup(sv, AQH_SERVICE_FILE_GROUP_MODULES, s);
} }
GWEN_STRINGLIST *_listModules(AQH_SERVICE *sv) GWEN_STRINGLIST *_listModules(AQCGI_SERVICE *sv)
{ {
return _listGroup(sv, AQH_SERVICE_FILE_GROUP_MODULES); return _listGroup(sv, AQH_SERVICE_FILE_GROUP_MODULES);
} }
@@ -326,15 +324,15 @@ GWEN_STRINGLIST *_listModules(AQH_SERVICE *sv)
AQH_SESSION* _loadSession(AQH_SERVICE *sv, const char *s) AQCGI_SESSION* _loadSession(AQCGI_SERVICE *sv, const char *s)
{ {
GWEN_DB_NODE *db; GWEN_DB_NODE *db;
db=_loadGroupLocked(sv, AQH_SERVICE_FILE_GROUP_SESSIONS, s); db=_loadGroupLocked(sv, AQH_SERVICE_FILE_GROUP_SESSIONS, s);
if (db) { if (db) {
AQH_SESSION *session; AQCGI_SESSION *session;
session=AQH_Session_fromDb(db); session=AQCGI_Session_fromDb(db);
GWEN_DB_Group_free(db); GWEN_DB_Group_free(db);
return session; return session;
} }
@@ -344,17 +342,17 @@ AQH_SESSION* _loadSession(AQH_SERVICE *sv, const char *s)
int _saveSession(AQH_SERVICE *sv, AQH_SESSION *session) int _saveSession(AQCGI_SERVICE *sv, AQCGI_SESSION *session)
{ {
const char *s; const char *s;
s=AQH_Session_GetUid(session); s=AQCGI_Session_GetUid(session);
if (s && *s) { if (s && *s) {
GWEN_DB_NODE *db; GWEN_DB_NODE *db;
int rv; int rv;
db=GWEN_DB_Group_new(s); db=GWEN_DB_Group_new(s);
rv=AQH_Session_toDb(session, db); rv=AQCGI_Session_toDb(session, db);
if (rv<0) { if (rv<0) {
DBG_ERROR(NULL, "here (%d)", rv); DBG_ERROR(NULL, "here (%d)", rv);
GWEN_DB_Group_free(db); GWEN_DB_Group_free(db);
@@ -374,17 +372,17 @@ int _saveSession(AQH_SERVICE *sv, AQH_SESSION *session)
int _addSession(AQH_SERVICE *sv, AQH_SESSION *session) int _addSession(AQCGI_SERVICE *sv, AQCGI_SESSION *session)
{ {
const char *s; const char *s;
s=AQH_Session_GetUid(session); s=AQCGI_Session_GetUid(session);
if (s && *s) { if (s && *s) {
GWEN_DB_NODE *db; GWEN_DB_NODE *db;
int rv; int rv;
db=GWEN_DB_Group_new(s); db=GWEN_DB_Group_new(s);
rv=AQH_Session_toDb(session, db); rv=AQCGI_Session_toDb(session, db);
if (rv<0) { if (rv<0) {
DBG_ERROR(NULL, "here (%d)", rv); DBG_ERROR(NULL, "here (%d)", rv);
GWEN_DB_Group_free(db); GWEN_DB_Group_free(db);
@@ -404,27 +402,27 @@ int _addSession(AQH_SERVICE *sv, AQH_SESSION *session)
int _delSession(AQH_SERVICE *sv, const char *s) int _delSession(AQCGI_SERVICE *sv, const char *s)
{ {
return _deleteGroup(sv, AQH_SERVICE_FILE_GROUP_SESSIONS, s); return _deleteGroup(sv, AQH_SERVICE_FILE_GROUP_SESSIONS, s);
} }
GWEN_STRINGLIST *_listSessions(AQH_SERVICE *sv) GWEN_STRINGLIST *_listSessions(AQCGI_SERVICE *sv)
{ {
return _listGroup(sv, AQH_SERVICE_FILE_GROUP_SESSIONS); return _listGroup(sv, AQH_SERVICE_FILE_GROUP_SESSIONS);
} }
GWEN_DB_NODE *_loadGroupLocked(AQH_SERVICE *sv, const char *groupName, const char *subGroupName) GWEN_DB_NODE *_loadGroupLocked(AQCGI_SERVICE *sv, const char *groupName, const char *subGroupName)
{ {
DBG_ERROR(NULL, "Lock and load group %s/%s", groupName, subGroupName); DBG_ERROR(NULL, "Lock and load group %s/%s", groupName, subGroupName);
if (sv && groupName && subGroupName) { if (sv && groupName && subGroupName) {
AQH_SERVICE_FILE *xs; AQH_SERVICE_FILE *xs;
xs=GWEN_INHERIT_GETDATA(AQH_SERVICE, AQH_SERVICE_FILE, sv); xs=GWEN_INHERIT_GETDATA(AQCGI_SERVICE, AQH_SERVICE_FILE, sv);
if (xs) { if (xs) {
GWEN_DB_NODE *db=NULL; GWEN_DB_NODE *db=NULL;
int rv; int rv;
@@ -460,12 +458,12 @@ GWEN_DB_NODE *_loadGroupLocked(AQH_SERVICE *sv, const char *groupName, const cha
int _saveGroupLocked(AQH_SERVICE *sv, const char *groupName, const char *subGroupName, GWEN_DB_NODE *db) int _saveGroupLocked(AQCGI_SERVICE *sv, const char *groupName, const char *subGroupName, GWEN_DB_NODE *db)
{ {
if (sv && groupName && subGroupName && db) { if (sv && groupName && subGroupName && db) {
AQH_SERVICE_FILE *xs; AQH_SERVICE_FILE *xs;
xs=GWEN_INHERIT_GETDATA(AQH_SERVICE, AQH_SERVICE_FILE, sv); xs=GWEN_INHERIT_GETDATA(AQCGI_SERVICE, AQH_SERVICE_FILE, sv);
if (xs) { if (xs) {
int rv; int rv;
@@ -498,12 +496,12 @@ int _saveGroupLocked(AQH_SERVICE *sv, const char *groupName, const char *subGrou
int _addGroupLocked(AQH_SERVICE *sv, const char *groupName, const char *subGroupName, GWEN_DB_NODE *db) int _addGroupLocked(AQCGI_SERVICE *sv, const char *groupName, const char *subGroupName, GWEN_DB_NODE *db)
{ {
if (sv && groupName && subGroupName && db) { if (sv && groupName && subGroupName && db) {
AQH_SERVICE_FILE *xs; AQH_SERVICE_FILE *xs;
xs=GWEN_INHERIT_GETDATA(AQH_SERVICE, AQH_SERVICE_FILE, sv); xs=GWEN_INHERIT_GETDATA(AQCGI_SERVICE, AQH_SERVICE_FILE, sv);
if (xs) { if (xs) {
int rv; int rv;
@@ -539,12 +537,12 @@ int _addGroupLocked(AQH_SERVICE *sv, const char *groupName, const char *subGroup
int _deleteGroup(AQH_SERVICE *sv, const char *groupName, const char *subGroupName) int _deleteGroup(AQCGI_SERVICE *sv, const char *groupName, const char *subGroupName)
{ {
if (sv && groupName && subGroupName) { if (sv && groupName && subGroupName) {
AQH_SERVICE_FILE *xs; AQH_SERVICE_FILE *xs;
xs=GWEN_INHERIT_GETDATA(AQH_SERVICE, AQH_SERVICE_FILE, sv); xs=GWEN_INHERIT_GETDATA(AQCGI_SERVICE, AQH_SERVICE_FILE, sv);
if (xs) { if (xs) {
int rv; int rv;
@@ -561,12 +559,12 @@ int _deleteGroup(AQH_SERVICE *sv, const char *groupName, const char *subGroupNam
GWEN_STRINGLIST *_listGroup(AQH_SERVICE *sv, const char *groupName) GWEN_STRINGLIST *_listGroup(AQCGI_SERVICE *sv, const char *groupName)
{ {
if (sv && groupName) { if (sv && groupName) {
AQH_SERVICE_FILE *xs; AQH_SERVICE_FILE *xs;
xs=GWEN_INHERIT_GETDATA(AQH_SERVICE, AQH_SERVICE_FILE, sv); xs=GWEN_INHERIT_GETDATA(AQCGI_SERVICE, AQH_SERVICE_FILE, sv);
if (xs) { if (xs) {
GWEN_STRINGLIST *sl; GWEN_STRINGLIST *sl;
int rv; int rv;

View File

@@ -10,10 +10,10 @@
#define AQHOME_SERVICE_FILE_H #define AQHOME_SERVICE_FILE_H
#include "aqhome-cgi/service/service.h" #include "aqcgi/service/service.h"
AQH_SERVICE *AQH_ServiceFiles_new(const char *baseFolder, const char *baseUrl); AQCGI_SERVICE *AQH_ServiceFiles_new(const char *baseFolder, const char *baseUrl);