aqhome-cgi: use service code from AqCGI.
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
|
||||
#include "./mservice_p.h"
|
||||
|
||||
#include "aqhome-cgi/service/module.h"
|
||||
#include <aqcgi/service/module.h>
|
||||
|
||||
#include <gwenhywfar/debug.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 _calcUserModPerms(AQH_MODULE *m, const AQH_USER *user);
|
||||
static uint32_t _calcRolePerms(const AQH_MODULE *m, const AQH_MODULE_PERMS *modPerms);
|
||||
static void _calcUserModPerms(AQCGI_MODULE *m, const AQCGI_USER *user);
|
||||
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;
|
||||
|
||||
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->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) {
|
||||
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) {
|
||||
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) {
|
||||
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) {
|
||||
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) {
|
||||
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) {
|
||||
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) {
|
||||
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=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) {
|
||||
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=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) {
|
||||
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->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) {
|
||||
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->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) {
|
||||
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->addHeaderFn)
|
||||
xm->addHeaderFn(m, lang, dbuf);
|
||||
else {
|
||||
AQH_MODULE *mParent;
|
||||
AQCGI_MODULE *mParent;
|
||||
|
||||
mParent=AQH_Module_Tree2_GetParent(m);
|
||||
mParent=AQCGI_Module_Tree2_GetParent(m);
|
||||
if (mParent)
|
||||
AQH_ModService_AddHeader(mParent, lang, 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) {
|
||||
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->addFooterFn)
|
||||
xm->addFooterFn(m, lang, dbuf);
|
||||
else {
|
||||
AQH_MODULE *mParent;
|
||||
AQCGI_MODULE *mParent;
|
||||
|
||||
AQH_ModService_ReadStaticFile(m, lang, AQH_MOD_SERVICE_FOOTERFILE, dbuf);
|
||||
|
||||
mParent=AQH_Module_Tree2_GetParent(m);
|
||||
mParent=AQCGI_Module_Tree2_GetParent(m);
|
||||
if (mParent)
|
||||
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;
|
||||
|
||||
@@ -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 *sFilename,
|
||||
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) {
|
||||
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)
|
||||
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) {
|
||||
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) {
|
||||
AQH_MODULE *mReturn;
|
||||
AQCGI_MODULE *mReturn;
|
||||
|
||||
mReturn=xm->loadSubModuleFn(m, rq, session, sModuleName);
|
||||
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) {
|
||||
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) {
|
||||
GWEN_BUFFER *fbuf;
|
||||
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;
|
||||
const char *s;
|
||||
|
||||
@@ -361,9 +361,9 @@ AQH_SESSION *AQH_ModService_ReadSession(AQH_MODULE *m, AQCGI_REQUEST *rq)
|
||||
db=AQCGI_Request_GetDbRequestHeader(rq);
|
||||
s=GWEN_DB_GetCharValue(db, "cookies/session", 0, NULL);
|
||||
if (s && *s) {
|
||||
AQH_SESSION *session;
|
||||
AQCGI_SESSION *session;
|
||||
|
||||
session=AQH_Service_LoadSession(sv, s);
|
||||
session=AQCGI_Service_LoadSession(sv, s);
|
||||
if (session==NULL) {
|
||||
DBG_ERROR(NULL, "Session \"%s\" not found", s);
|
||||
return NULL;
|
||||
@@ -372,24 +372,24 @@ AQH_SESSION *AQH_ModService_ReadSession(AQH_MODULE *m, AQCGI_REQUEST *rq)
|
||||
const char *sUserName;
|
||||
GWEN_BUFFER *tbuf;
|
||||
|
||||
sUserName=AQH_Session_GetUserAlias(session);
|
||||
sUserName=AQCGI_Session_GetUserAlias(session);
|
||||
if (sUserName && *sUserName) {
|
||||
AQH_USER *user;
|
||||
AQCGI_USER *user;
|
||||
|
||||
user=AQH_Service_LoadUser(sv, sUserName);
|
||||
user=AQCGI_Service_LoadUser(sv, sUserName);
|
||||
if (user==NULL) {
|
||||
DBG_ERROR(NULL, "User \"%s\" not found", sUserName);
|
||||
AQH_Session_free(session);
|
||||
AQCGI_Session_free(session);
|
||||
return NULL;
|
||||
}
|
||||
else {
|
||||
DBG_ERROR(NULL, "User is \"%s\"", sUserName);
|
||||
}
|
||||
AQH_Session_SetUser(session, user);
|
||||
AQCGI_Session_SetUser(session, user);
|
||||
}
|
||||
/* renew session cookie */
|
||||
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));
|
||||
DBG_ERROR(NULL, "Renew session cookie");
|
||||
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);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void _calcUserModPerms(AQH_MODULE *m, const AQH_USER *user)
|
||||
void _calcUserModPerms(AQCGI_MODULE *m, const AQCGI_USER *user)
|
||||
{
|
||||
if (m) {
|
||||
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) {
|
||||
uint32_t perms=0;
|
||||
|
||||
if (user) {
|
||||
if (AQH_User_GetFlags(user) & AQH_USER_FLAGS_ADMIN)
|
||||
if (AQCGI_User_GetFlags(user) & AQCGI_USER_FLAGS_ADMIN)
|
||||
perms=0xffffffff;
|
||||
else {
|
||||
const char *sModName;
|
||||
const AQH_MODULE_PERMS_LIST *modPermsList;
|
||||
AQH_MODULE_PERMS *modPerms;
|
||||
const AQCGI_MODULE_PERMS_LIST *modPermsList;
|
||||
AQCGI_MODULE_PERMS *modPerms;
|
||||
|
||||
sModName=AQH_Module_GetName(m);
|
||||
modPermsList=AQH_User_GetModulePermList(user);
|
||||
modPerms=(sModName && modPermsList)?AQH_ModulePerms_List_GetByModuleId(modPermsList, sModName):NULL;
|
||||
sModName=AQCGI_Module_GetName(m);
|
||||
modPermsList=AQCGI_User_GetModulePermList(user);
|
||||
modPerms=(sModName && modPermsList)?AQCGI_ModulePerms_List_GetByModuleId(modPermsList, sModName):NULL;
|
||||
if (modPerms)
|
||||
perms=_calcRolePerms(m, modPerms);
|
||||
else
|
||||
perms=AQH_Module_GetGuestPerms(m);
|
||||
perms=AQCGI_Module_GetGuestPerms(m);
|
||||
}
|
||||
} /* if (user) */
|
||||
else
|
||||
perms=AQH_Module_GetGuestPerms(m);
|
||||
perms=AQCGI_Module_GetGuestPerms(m);
|
||||
xm->userPerms=perms;
|
||||
}
|
||||
} /* 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;
|
||||
const AQH_ROLE_LIST *roleList;
|
||||
const AQCGI_ROLE_LIST *roleList;
|
||||
|
||||
roleList=AQH_Module_GetRoleList(m);
|
||||
roleList=AQCGI_Module_GetRoleList(m);
|
||||
if (roleList) {
|
||||
int roleArraySize;
|
||||
int i;
|
||||
uint32_t explAddPerms=0;
|
||||
uint32_t explDelPerms=0;
|
||||
|
||||
roleArraySize=AQH_ModulePerms_GetRoleArrayArraySize();
|
||||
roleArraySize=AQCGI_ModulePerms_GetRoleArrayArraySize();
|
||||
for (i=0; i<roleArraySize; i++) {
|
||||
int roleId;
|
||||
|
||||
roleId=AQH_ModulePerms_GetRoleArrayAt(modPerms, i);
|
||||
roleId=AQCGI_ModulePerms_GetRoleArrayAt(modPerms, i);
|
||||
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) {
|
||||
perms|=AQH_Role_GetPerms(role);
|
||||
explAddPerms|=AQH_Role_GetExplAddPerms(role);
|
||||
explAddPerms|=AQH_Role_GetExplDelPerms(role);
|
||||
perms|=AQCGI_Role_GetPerms(role);
|
||||
explAddPerms|=AQCGI_Role_GetExplAddPerms(role);
|
||||
explAddPerms|=AQCGI_Role_GetExplDelPerms(role);
|
||||
}
|
||||
}
|
||||
} /* for */
|
||||
/* collate permissions */
|
||||
perms|=explAddPerms;
|
||||
perms|=AQH_ModulePerms_GetExplAddPerms(modPerms);
|
||||
perms|=AQCGI_ModulePerms_GetExplAddPerms(modPerms);
|
||||
perms&=~explDelPerms;
|
||||
perms&=~AQH_ModulePerms_GetExplDelPerms(modPerms);
|
||||
perms&=~AQCGI_ModulePerms_GetExplDelPerms(modPerms);
|
||||
}
|
||||
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();
|
||||
AQH_PermDef_SetId(permDef, id);
|
||||
AQH_PermDef_SetMask(permDef, mask);
|
||||
AQH_PermDef_SetDescr(permDef, descr);
|
||||
AQH_PermDef_List_Add(permDef, permDefList);
|
||||
permDef=AQCGI_PermDef_new();
|
||||
AQCGI_PermDef_SetId(permDef, id);
|
||||
AQCGI_PermDef_SetMask(permDef, mask);
|
||||
AQCGI_PermDef_SetDescr(permDef, descr);
|
||||
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();
|
||||
AQH_Role_SetId(role, id);
|
||||
AQH_Role_SetName(role, name);
|
||||
AQH_Role_SetPerms(role, perms);
|
||||
AQH_Role_SetDescr(role, descr);
|
||||
AQH_Role_List_Add(role, roleList);
|
||||
role=AQCGI_Role_new();
|
||||
AQCGI_Role_SetId(role, id);
|
||||
AQCGI_Role_SetName(role, name);
|
||||
AQCGI_Role_SetPerms(role, perms);
|
||||
AQCGI_Role_SetDescr(role, descr);
|
||||
AQCGI_Role_List_Add(role, roleList);
|
||||
}
|
||||
|
||||
|
||||
|
||||
void AQH_ModService_HandleRequestWithTable(AQH_MODULE *m,
|
||||
void AQH_ModService_HandleRequestWithTable(AQCGI_MODULE *m,
|
||||
AQCGI_REQUEST *rq,
|
||||
AQH_SESSION *session,
|
||||
AQCGI_SESSION *session,
|
||||
const char *page,
|
||||
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) {
|
||||
const AQH_PERMDEF *permDef;
|
||||
const AQCGI_PERMDEF *permDef;
|
||||
GWEN_BUFFER *tbuf;
|
||||
uint32_t pos;
|
||||
|
||||
@@ -574,16 +574,16 @@ void AQH_ModService_WritePermsToForm(uint32_t perms, const AQH_PERMDEF_LIST *per
|
||||
GBAA(tbuf, "%s:", sPrefix);
|
||||
pos=GWEN_Buffer_GetPos(tbuf);
|
||||
|
||||
permDef=AQH_PermDef_List_First(permDefList);
|
||||
permDef=AQCGI_PermDef_List_First(permDefList);
|
||||
while(permDef) {
|
||||
const char *s;
|
||||
|
||||
s=AQH_PermDef_GetId(permDef);
|
||||
s=AQCGI_PermDef_GetId(permDef);
|
||||
if (s && *s) {
|
||||
uint32_t mask;
|
||||
|
||||
GBAS(tbuf, s);
|
||||
mask=AQH_PermDef_GetMask(permDef);
|
||||
mask=AQCGI_PermDef_GetMask(permDef);
|
||||
if (perms & mask)
|
||||
GBAA(dbuf, "<input type=\"checkbox\" name=\"%s\" checked>", GWEN_Buffer_GetStart(tbuf));
|
||||
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:"");
|
||||
GWEN_Buffer_Crop(tbuf, 0, pos);
|
||||
}
|
||||
permDef=AQH_PermDef_List_Next(permDef);
|
||||
permDef=AQCGI_PermDef_List_Next(permDef);
|
||||
}
|
||||
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;
|
||||
|
||||
if (permDefList) {
|
||||
const AQH_PERMDEF *permDef;
|
||||
const AQCGI_PERMDEF *permDef;
|
||||
GWEN_BUFFER *tbuf;
|
||||
uint32_t pos;
|
||||
|
||||
@@ -613,23 +613,23 @@ uint32_t AQH_ModService_ReadPermsFromForm(GWEN_DB_NODE *dbPost, const AQH_PERMDE
|
||||
GBAA(tbuf, "%s:", sPrefix);
|
||||
pos=GWEN_Buffer_GetPos(tbuf);
|
||||
|
||||
permDef=AQH_PermDef_List_First(permDefList);
|
||||
permDef=AQCGI_PermDef_List_First(permDefList);
|
||||
while(permDef) {
|
||||
const char *id;
|
||||
|
||||
id=AQH_PermDef_GetId(permDef);
|
||||
id=AQCGI_PermDef_GetId(permDef);
|
||||
if (id && *id) {
|
||||
uint32_t mask;
|
||||
const char *s;
|
||||
|
||||
GBAS(tbuf, id);
|
||||
mask=AQH_PermDef_GetMask(permDef);
|
||||
mask=AQCGI_PermDef_GetMask(permDef);
|
||||
s=GWEN_DB_GetCharValue(dbPost, GWEN_Buffer_GetStart(tbuf), 0, NULL);
|
||||
if (s && *s)
|
||||
result|=mask;
|
||||
GWEN_Buffer_Crop(tbuf, 0, pos);
|
||||
}
|
||||
permDef=AQH_PermDef_List_Next(permDef);
|
||||
permDef=AQCGI_PermDef_List_Next(permDef);
|
||||
}
|
||||
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;
|
||||
|
||||
sv=AQH_ModService_GetService(m);
|
||||
slModuleNames=AQH_Service_ListModules(sv);
|
||||
slModuleNames=AQCGI_Service_ListModules(sv);
|
||||
if (slModuleNames) {
|
||||
AQH_MODULE_LIST *modList;
|
||||
AQCGI_MODULE_LIST *modList;
|
||||
GWEN_STRINGLISTENTRY *se;
|
||||
|
||||
modList=AQH_Module_List_new();
|
||||
modList=AQCGI_Module_List_new();
|
||||
se=GWEN_StringList_FirstEntry(slModuleNames);
|
||||
while(se) {
|
||||
const char *sModName;
|
||||
|
||||
sModName=GWEN_StringListEntry_Data(se);
|
||||
if (sModName && *sModName) {
|
||||
AQH_MODULE *currentMod;
|
||||
AQCGI_MODULE *currentMod;
|
||||
|
||||
currentMod=AQH_Service_LoadModule(sv, sModName);
|
||||
currentMod=AQCGI_Service_LoadModule(sv, sModName);
|
||||
if (currentMod)
|
||||
AQH_Module_List_Add(currentMod, modList);
|
||||
AQCGI_Module_List_Add(currentMod, modList);
|
||||
}
|
||||
se=GWEN_StringListEntry_Next(se);
|
||||
}
|
||||
GWEN_StringList_free(slModuleNames);
|
||||
if (AQH_Module_List_GetCount(modList))
|
||||
if (AQCGI_Module_List_GetCount(modList))
|
||||
return modList;
|
||||
AQH_Module_List_free(modList);
|
||||
AQCGI_Module_List_free(modList);
|
||||
}
|
||||
|
||||
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;
|
||||
|
||||
sv=AQH_ModService_GetService(m);
|
||||
slUserNames=AQH_Service_ListUsers(sv);
|
||||
slUserNames=AQCGI_Service_ListUsers(sv);
|
||||
if (slUserNames) {
|
||||
AQH_USER_LIST *userList;
|
||||
AQCGI_USER_LIST *userList;
|
||||
GWEN_STRINGLISTENTRY *se;
|
||||
|
||||
userList=AQH_User_List_new();
|
||||
userList=AQCGI_User_List_new();
|
||||
se=GWEN_StringList_FirstEntry(slUserNames);
|
||||
while(se) {
|
||||
const char *sModName;
|
||||
|
||||
sModName=GWEN_StringListEntry_Data(se);
|
||||
if (sModName && *sModName) {
|
||||
AQH_USER *u;
|
||||
AQCGI_USER *u;
|
||||
|
||||
u=AQH_Service_LoadUser(sv, sModName);
|
||||
u=AQCGI_Service_LoadUser(sv, sModName);
|
||||
if (u)
|
||||
AQH_User_List_Add(u, userList);
|
||||
AQCGI_User_List_Add(u, userList);
|
||||
}
|
||||
se=GWEN_StringListEntry_Next(se);
|
||||
}
|
||||
GWEN_StringList_free(slUserNames);
|
||||
if (AQH_User_List_GetCount(userList))
|
||||
if (AQCGI_User_List_GetCount(userList))
|
||||
return userList;
|
||||
AQH_User_List_free(userList);
|
||||
AQCGI_User_List_free(userList);
|
||||
}
|
||||
|
||||
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 */
|
||||
AQCGI_Request_SetResponseCode(rq, 403);
|
||||
AQCGI_Request_SetResponseText(rq, "Forbidden");
|
||||
@@ -914,7 +914,7 @@ void AQH_ModService_DenyRequest(AQH_MODULE *m, AQCGI_REQUEST *rq, const AQH_SESS
|
||||
}
|
||||
else {
|
||||
/* need login */
|
||||
AQH_ModService_RedirectWithReferer(rq, AQH_Service_GetLoginUrl(AQH_ModService_GetService(m)));
|
||||
AQH_ModService_RedirectWithReferer(rq, AQCGI_Service_GetLoginUrl(AQH_ModService_GetService(m)));
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user