more code sharing.
This commit is contained in:
@@ -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,
|
||||
"<tr><td><label for=\"descr\">Description:</label></td><td><input type=\"text\" name=\"descr\"></td></tr>\n");
|
||||
|
||||
GBAS(dbuf, "<tr><td><label>Permissions:</label></td><td>");
|
||||
_writePermissionsToForm(permDefList, guestPerms, dbuf);
|
||||
AQH_ModService_WritePermsToForm(guestPerms, permDefList, NULL, dbuf);
|
||||
GBAS(dbuf, "</td></tr>\n");
|
||||
|
||||
GBAS(dbuf, "</table>\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, "<tr><td><label>Permissions:</label></td><td>");
|
||||
_writePermissionsToForm(permDefList, perms, dbuf);
|
||||
AQH_ModService_WritePermsToForm(perms, permDefList, NULL, dbuf);
|
||||
GBAS(dbuf, "</td></tr>\n");
|
||||
|
||||
GBAS(dbuf, "</table>\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, "<tr><td><label>Guest Permissions:</label></td>\n<td>");
|
||||
_writePermissionsToForm(permDefList, AQH_Module_GetGuestPerms(currentMod), dbuf);
|
||||
AQH_ModService_WritePermsToForm(AQH_Module_GetGuestPerms(currentMod), permDefList, NULL, dbuf);
|
||||
GBAA(dbuf, "</td></tr>");
|
||||
}
|
||||
|
||||
@@ -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, "<input type=\"checkbox\" name=\"%s\" checked>", s?s:"");
|
||||
else
|
||||
GBAA(dbuf, "<input type=\"checkbox\" name=\"%s\">", s?s:"");
|
||||
GBAA(dbuf, "<label for=\"%s\">%s</label>", 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;
|
||||
}
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user