Changeset e41ba05 for storage_xml.c


Ignore:
Timestamp:
2016-03-23T06:44:13Z (9 years ago)
Author:
Dennis Kaarsemaker <dennis@…>
Branches:
master
Children:
446a23e
Parents:
3ac6d9f
git-author:
Dennis Kaarsemaker <dennis@…> (22-02-16 21:26:15)
git-committer:
Dennis Kaarsemaker <dennis@…> (23-03-16 06:44:13)
Message:

Allow individual settings to be locked down

This allows a site admin who pregenerates configs to mark certain
settings as untouchable, ensuring that users cannot mess up their
settings too badly.

File:
1 edited

Legend:

Unmodified
Added
Removed
  • storage_xml.c

    r3ac6d9f re41ba05  
    6565{
    6666        struct xt_node *c;
     67        struct set *s;
    6768
    6869        for (c = node->children; (c = xt_find_node(c, "setting")); c = c->next) {
    6970                char *name = xt_find_attr(c, "name");
     71                char *locked = xt_find_attr(c, "locked");
    7072
    7173                if (!name) {
     
    8082                }
    8183                set_setstr(head, name, c->text);
     84                if (locked && !g_strcasecmp(locked, "true")) {
     85                        s = set_find(head, name);
     86                        if (s) {
     87                                s->flags |= SET_LOCKED;
     88                        }
     89                }
    8290        }
    8391}
     
    371379                        xt_add_child(cur, xset = xt_new_node("setting", set->value, NULL));
    372380                        xt_add_attr(xset, "name", set->key);
     381                        if (set->flags & SET_LOCKED) {
     382                                xt_add_attr(xset, "locked", "true");
     383                        }
    373384                }
    374385        }
Note: See TracChangeset for help on using the changeset viewer.