static bool catalogscmd(UAContext *ua, const char *cmd) { CATRES *cat; LockRes(); foreach_res(cat, R_CATALOG) { if (acl_access_ok(ua, Catalog_ACL, cat->name())) { ua->send_msg("%s\n", cat->name()); } } UnlockRes(); return true; }
/* * Get a catalog resource from prompt list */ CATRES *get_catalog_resource(UAContext *ua) { CATRES *catalog = NULL; char name[MAX_NAME_LENGTH]; for (int i = 1; i < ua->argc; i++) { if (bstrcasecmp(ua->argk[i], NT_("catalog")) && ua->argv[i]) { if (acl_access_ok(ua, Catalog_ACL, ua->argv[i])) { catalog = (CATRES *)GetResWithName(R_CATALOG, ua->argv[i]); break; } } } if (ua->gui && !catalog) { LockRes(); catalog = (CATRES *)GetNextRes(R_CATALOG, NULL); UnlockRes(); if (!catalog) { ua->error_msg(_("Could not find a Catalog resource\n")); return NULL; } else if (!acl_access_ok(ua, Catalog_ACL, catalog->name())) { ua->error_msg(_("You must specify a \"use <catalog-name>\" command before continuing.\n")); return NULL; } return catalog; } if (!catalog) { start_prompt(ua, _("The defined Catalog resources are:\n")); LockRes(); foreach_res(catalog, R_CATALOG) { if (acl_access_ok(ua, Catalog_ACL, catalog->name())) { add_prompt(ua, catalog->name()); } } UnlockRes(); if (do_prompt(ua, _("Catalog"), _("Select Catalog resource"), name, sizeof(name)) < 0) { return NULL; } catalog = (CATRES *)GetResWithName(R_CATALOG, name); }
bool dot_catalogs_cmd(UAContext *ua, const char *cmd) { CATRES *cat; LockRes(); ua->send->array_start("catalogs"); foreach_res(cat, R_CATALOG) { if (acl_access_ok(ua, Catalog_ACL, cat->name())) { ua->send->object_start(); ua->send->object_key_value("name", cat->name(), "%s\n"); ua->send->object_end(); } } ua->send->array_end("catalogs"); UnlockRes(); return true; }