Skip to content

Commit 1dd50f3

Browse files
committed
Refactor: libcrmcommon: Unindent more of pcmk__unpack_acls()
Signed-off-by: Reid Wahl <nrwahl@protonmail.com>
1 parent 1784f8c commit 1dd50f3

1 file changed

Lines changed: 29 additions & 38 deletions

File tree

lib/common/acl.c

Lines changed: 29 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -301,60 +301,51 @@ void
301301
pcmk__unpack_acls(xmlNode *source, xmlNode *target, const char *user)
302302
{
303303
xml_doc_private_t *docpriv = NULL;
304+
xmlNode *acls = NULL;
304305

305306
pcmk__assert(target != NULL);
306307

307308
docpriv = target->doc->_private;
308-
if (!pcmk_acl_required(user)) {
309-
pcmk__trace("Not unpacking ACLs because not required for user '%s'",
310-
user);
309+
if (!pcmk_acl_required(user) || (docpriv->acls != NULL)) {
310+
return;
311+
}
311312

312-
} else if (docpriv->acls == NULL) {
313-
xmlNode *acls = pcmk__xpath_find_one(source->doc, "//" PCMK_XE_ACLS,
314-
PCMK__LOG_NEVER);
313+
pcmk__str_update(&docpriv->acl_user, user);
315314

316-
pcmk__str_update(&(docpriv->acl_user), user);
315+
acls = pcmk__xpath_find_one(source->doc, "//" PCMK_XE_ACLS,
316+
PCMK__LOG_NEVER);
317317

318-
if (acls == NULL) {
319-
return;
320-
}
318+
for (xmlNode *child = pcmk__xe_first_child(acls, NULL, NULL, NULL);
319+
child != NULL; child = pcmk__xe_next(child, NULL)) {
321320

322-
for (xmlNode *child = pcmk__xe_first_child(acls, NULL, NULL, NULL);
323-
child != NULL; child = pcmk__xe_next(child, NULL)) {
321+
const bool is_target = pcmk__xe_is(child, PCMK_XE_ACL_TARGET);
322+
const bool is_group = pcmk__xe_is(child, PCMK_XE_ACL_GROUP);
323+
const char *id = NULL;
324324

325-
const bool is_target = pcmk__xe_is(child, PCMK_XE_ACL_TARGET);
326-
const bool is_group = pcmk__xe_is(child, PCMK_XE_ACL_GROUP);
327-
const char *id = NULL;
325+
if (!is_target && !is_group) {
326+
continue;
327+
}
328328

329-
if (!is_target && !is_group) {
330-
continue;
331-
}
329+
id = pcmk__s(pcmk__xe_get(child, PCMK_XA_NAME), pcmk__xe_id(child));
330+
if (id == NULL) {
331+
// Not possible with schema validation enabled
332+
continue;
333+
}
332334

333-
id = pcmk__s(pcmk__xe_get(child, PCMK_XA_NAME),
334-
pcmk__xe_id(child));
335-
if (id == NULL) {
336-
// Not possible with schema validation enabled
335+
if (is_target) {
336+
if (!pcmk__str_eq(id, user, pcmk__str_none)) {
337337
continue;
338338
}
339+
pcmk__debug("Unpacking ACLs for user '%s'", id);
339340

340-
if (is_target) {
341-
if (!pcmk__str_eq(id, user, pcmk__str_none)) {
342-
continue;
343-
}
344-
345-
pcmk__debug("Unpacking ACLs for user '%s'", id);
346-
347-
} else {
348-
if (!pcmk__is_user_in_group(user, id)) {
349-
continue;
350-
}
351-
352-
pcmk__debug("Unpacking ACLs for group '%s' (user '%s')", id,
353-
user);
341+
} else {
342+
if (!pcmk__is_user_in_group(user, id)) {
343+
continue;
354344
}
355-
356-
docpriv->acls = parse_acl_entry(acls, child, docpriv->acls);
345+
pcmk__debug("Unpacking ACLs for group '%s' (user '%s')", id, user);
357346
}
347+
348+
docpriv->acls = parse_acl_entry(acls, child, docpriv->acls);
358349
}
359350
}
360351

0 commit comments

Comments
 (0)