diff --git a/apps/aqhome-cgi/modules/common/mmodules.c b/apps/aqhome-cgi/modules/common/mmodules.c index e8d87fc..26672c1 100644 --- a/apps/aqhome-cgi/modules/common/mmodules.c +++ b/apps/aqhome-cgi/modules/common/mmodules.c @@ -61,9 +61,7 @@ static void _writeRoleListToForm(const AQH_ROLE_LIST *roleList, GWEN_BUFFER *dbuf); static void _setLocationHeaderForMod(AQCGI_REQUEST *rq, const char *page, const char *sModName); -static void _writePermissionsToForm(const AQH_PERMDEF_LIST *permDefList, uint32_t perms, GWEN_BUFFER *dbuf); static void _writeEnabledPermissions(const AQH_PERMDEF_LIST *permDefList, uint32_t perms, GWEN_BUFFER *dbuf); -static uint32_t _readPermissionsFromForm(GWEN_DB_NODE *dbPost, const AQH_PERMDEF_LIST *permDefList); @@ -278,7 +276,7 @@ void _handleRqEditModPost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session permDefList=AQH_Module_GetPermDefList(currentMod); sNewModName=GWEN_DB_GetCharValue(dbPost, "name", 0, NULL); sDescr=GWEN_DB_GetCharValue(dbPost, "descr", 0, NULL); - perms=_readPermissionsFromForm(dbPost, permDefList); + perms=AQH_ModService_ReadPermsFromForm(dbPost, permDefList, NULL); if (sNewModName && *sNewModName) AQH_Module_SetName(currentMod, sNewModName); AQH_Module_SetDescr(currentMod, sDescr); @@ -331,7 +329,7 @@ void _handleRqAddRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session, "\n"); GBAS(dbuf, ""); - _writePermissionsToForm(permDefList, guestPerms, dbuf); + AQH_ModService_WritePermsToForm(guestPerms, permDefList, NULL, dbuf); GBAS(dbuf, "\n"); GBAS(dbuf, "\n"); @@ -379,7 +377,7 @@ void _handleRqAddRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session newId=(roleList?_getHighestUsedRoleId(roleList):0)+1; sName=dbPost?GWEN_DB_GetCharValue(dbPost, "name", 0, NULL):NULL; sDescr=dbPost?GWEN_DB_GetCharValue(dbPost, "descr", 0, NULL):NULL; - perms=(dbPost && permDefList)?_readPermissionsFromForm(dbPost, permDefList):0; + perms=(dbPost && permDefList)?AQH_ModService_ReadPermsFromForm(dbPost, permDefList, NULL):0; /* validate */ if (!(sName && *sName)) { @@ -462,7 +460,7 @@ void _handleRqEditRoleGet(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *session sName, sDescr?sDescr:""); GBAS(dbuf, ""); - _writePermissionsToForm(permDefList, perms, dbuf); + AQH_ModService_WritePermsToForm(perms, permDefList, NULL, dbuf); GBAS(dbuf, "\n"); GBAS(dbuf, "\n"); @@ -507,8 +505,7 @@ void _handleRqEditRolePost(AQH_MODULE *m, AQCGI_REQUEST *rq, AQH_SESSION *sessio sName=dbPost?GWEN_DB_GetCharValue(dbPost, "name", 0, NULL):NULL; sDescr=dbPost?GWEN_DB_GetCharValue(dbPost, "descr", 0, NULL):NULL; role=roleList?AQH_Role_List_GetById(roleList, oldId):NULL; - perms=(dbPost && permDefList)?_readPermissionsFromForm(dbPost, permDefList):0; - + perms=(dbPost && permDefList)?AQH_ModService_ReadPermsFromForm(dbPost, permDefList, NULL):0; /* validate */ if (!(sName && *sName)) { DBG_ERROR(NULL, "Missing value for \"name\""); @@ -657,7 +654,7 @@ void _writeEditModForm(const AQH_MODULE *currentMod, const char *sModName, GWEN_ if (permDefList) { GBAA(dbuf, "\n"); - _writePermissionsToForm(permDefList, AQH_Module_GetGuestPerms(currentMod), dbuf); + AQH_ModService_WritePermsToForm(AQH_Module_GetGuestPerms(currentMod), permDefList, NULL, dbuf); GBAA(dbuf, ""); } @@ -726,31 +723,6 @@ void _writeRoleListToForm(const AQH_ROLE_LIST *roleList, -void _writePermissionsToForm(const AQH_PERMDEF_LIST *permDefList, uint32_t perms, GWEN_BUFFER *dbuf) -{ - if (permDefList) { - const AQH_PERMDEF *permDef; - - permDef=AQH_PermDef_List_First(permDefList); - while(permDef) { - const char *s; - uint32_t mask; - - s=AQH_PermDef_GetId(permDef); - mask=AQH_PermDef_GetMask(permDef); - if (perms & mask) - GBAA(dbuf, "", s?s:""); - else - GBAA(dbuf, "", s?s:""); - GBAA(dbuf, "", s?s:"", s?s:""); - - permDef=AQH_PermDef_List_Next(permDef); - } - } -} - - - void _writeEnabledPermissions(const AQH_PERMDEF_LIST *permDefList, uint32_t perms, GWEN_BUFFER *dbuf) { if (permDefList) { @@ -772,34 +744,3 @@ void _writeEnabledPermissions(const AQH_PERMDEF_LIST *permDefList, uint32_t perm -uint32_t _readPermissionsFromForm(GWEN_DB_NODE *dbPost, const AQH_PERMDEF_LIST *permDefList) -{ - uint32_t result=0; - - if (permDefList) { - const AQH_PERMDEF *permDef; - - permDef=AQH_PermDef_List_First(permDefList); - while(permDef) { - const char *id; - uint32_t mask; - const char *s; - - id=AQH_PermDef_GetId(permDef); - mask=AQH_PermDef_GetMask(permDef); - s=GWEN_DB_GetCharValue(dbPost, id, 0, NULL); - if (s && *s) - result|=mask; - permDef=AQH_PermDef_List_Next(permDef); - } - } - - return result; -} - - - - - - -