* "hostserv" {
* "nick" "HostServ";
* "modes" "+iok";
- "toplevel_access" "600";
+ * "toplevel_access" "600";
+ * "fallback_other_assignment" "1"; //fall back to another assignment when active assignment gets removed
+ * "manager_can_del_toplevel" "0"; //managers of a toplevel group may delete the whole group
+ * "manager_can_del_secondlevel" "0"; //managers of a secondlevel group may delete the whole group
* };
* };
*
}
for(slfh = tlfh->secondlevel; slfh; slfh = next_slfh) {
next_slfh = slfh->next;
- for(manager = tlfh->managers; manager; manager = next_manager) {
+ for(manager = slfh->managers; manager; manager = next_manager) {
next_manager = manager->next;
free(manager);
}
assert((!assignment || (assignment->user == user)));
if(user->assignments) {
- for(assgn = assignment->user->assignments; assgn; assgn = assgn->unext)
+ for(assgn = user->assignments; assgn; assgn = assgn->unext)
assgn->active = 0;
}
assignment->active = 1;
}
- apply_fakehost(assignment->user->hi, NULL);
+ apply_fakehost(user->hi, NULL);
}
static struct hs_assignment *hs_add_assignment(struct hs_secondlevel *slfh, struct hs_user *user) {
hs_activate_assignment(hs_user, NULL);
return 1;
} else {
- if(!strchr(argv[1], '.')) {
-
- }
fakehost = argv[1];
char *slfh_name = fakehost;
char *tlfh_name = strchr(fakehost, '.');