static void api_dvr_config_grid ( access_t *perm, idnode_set_t *ins, api_idnode_grid_conf_t *conf, htsmsg_t *args ) { dvr_config_t *cfg; LIST_FOREACH(cfg, &dvrconfigs, config_link) if (!idnode_perm((idnode_t *)cfg, perm, NULL)) { idnode_set_add(ins, (idnode_t*)cfg, &conf->filter, perm->aa_lang); idnode_perm_unset((idnode_t *)cfg); } }
static int api_access_entry_userlist ( access_t *perm, void *opaque, const char *op, htsmsg_t *args, htsmsg_t **resp ) { int i; idnode_set_t *is; idnode_t *in; access_entry_t *ae; htsmsg_t *l, *e; l = htsmsg_create_list(); if (!access_verify2(perm, ACCESS_ADMIN)) goto empty; if ((is = idnode_find_all(&access_entry_class, NULL))) { for (i = 0; i < is->is_count; i++) { in = is->is_array[i]; if (idnode_perm(in, perm, NULL)) continue; ae = (access_entry_t *)in; if (ae->ae_username != NULL && ae->ae_username[0] != '\0' && ae->ae_username[0] != '*') { e = htsmsg_create_map(); htsmsg_add_str(e, "key", ae->ae_username); htsmsg_add_str(e, "val", ae->ae_username); htsmsg_add_msg(l, NULL, e); } idnode_perm_unset(in); } free(is->is_array); free(is); } empty: *resp = htsmsg_create_map(); htsmsg_add_msg(*resp, "entries", l); return 0; }