diff options
| author | 2023-02-12 09:17:38 +0100 | |
|---|---|---|
| committer | 2023-02-12 09:17:38 +0100 | |
| commit | 0f4db7cf26b25f4841fab33620b3f791c08844ab (patch) | |
| tree | cca0493b7c9f0dd4d5d6f2b9cc93f4a2c7a57f60 /data.c | |
| parent | Version 2.22 RELEASED. (diff) | |
| download | snac2-0f4db7cf26b25f4841fab33620b3f791c08844ab.tar.gz snac2-0f4db7cf26b25f4841fab33620b3f791c08844ab.tar.xz snac2-0f4db7cf26b25f4841fab33620b3f791c08844ab.zip | |
New file ~user/user_o.json, for the admin to override user settings.
Diffstat (limited to 'data.c')
| -rw-r--r-- | data.c | 16 |
1 files changed, 16 insertions, 0 deletions
| @@ -130,6 +130,7 @@ void user_free(snac *snac) | |||
| 130 | xs_free(snac->uid); | 130 | xs_free(snac->uid); |
| 131 | xs_free(snac->basedir); | 131 | xs_free(snac->basedir); |
| 132 | xs_free(snac->config); | 132 | xs_free(snac->config); |
| 133 | xs_free(snac->config_o); | ||
| 133 | xs_free(snac->key); | 134 | xs_free(snac->key); |
| 134 | xs_free(snac->actor); | 135 | xs_free(snac->actor); |
| 135 | xs_free(snac->md5); | 136 | xs_free(snac->md5); |
| @@ -172,7 +173,22 @@ int user_open(snac *snac, const char *uid) | |||
| 172 | if ((snac->key = xs_json_loads(key_data)) != NULL) { | 173 | if ((snac->key = xs_json_loads(key_data)) != NULL) { |
| 173 | snac->actor = xs_fmt("%s/%s", srv_baseurl, uid); | 174 | snac->actor = xs_fmt("%s/%s", srv_baseurl, uid); |
| 174 | snac->md5 = xs_md5_hex(snac->actor, strlen(snac->actor)); | 175 | snac->md5 = xs_md5_hex(snac->actor, strlen(snac->actor)); |
| 176 | |||
| 177 | /* everything is ok right now */ | ||
| 175 | ret = 1; | 178 | ret = 1; |
| 179 | |||
| 180 | /* does it have a configuration override? */ | ||
| 181 | xs *cfg_file_o = xs_fmt("%s/user_o.json", snac->basedir); | ||
| 182 | if ((f = fopen(cfg_file_o, "r")) != NULL) { | ||
| 183 | xs *j = xs_readall(f); | ||
| 184 | fclose(f); | ||
| 185 | |||
| 186 | if ((snac->config_o = xs_json_loads(j)) == NULL) | ||
| 187 | srv_log(xs_fmt("cannot parse '%s'", cfg_file_o)); | ||
| 188 | } | ||
| 189 | |||
| 190 | if (snac->config_o == NULL) | ||
| 191 | snac->config_o = xs_dict_new(); | ||
| 176 | } | 192 | } |
| 177 | else | 193 | else |
| 178 | srv_log(xs_fmt("cannot parse '%s'", key_file)); | 194 | srv_log(xs_fmt("cannot parse '%s'", key_file)); |