diff --git a/src/server/dbck.c b/src/server/dbck.c index fe23777546a36532aad899781d64abb2639db877..d7ad1a220e0f4af385f9fb15193a0533add1a73f 100644 --- a/src/server/dbck.c +++ b/src/server/dbck.c @@ -1,5 +1,5 @@ /* - * $Id: dbck.c,v 0.22 1994/06/18 19:52:46 ceder Exp $ + * $Id: dbck.c,v 0.23 1994/06/18 21:05:43 ceder Exp $ * Copyright (C) 1991, 1992, 1993, 1994 Lysator Academic Computer Association. * * This file is part of the LysKOM server. @@ -28,7 +28,7 @@ * Author: Per Cederqvist. */ -static char *rcsid = "$Id: dbck.c,v 0.22 1994/06/18 19:52:46 ceder Exp $"; +static char *rcsid = "$Id: dbck.c,v 0.23 1994/06/18 21:05:43 ceder Exp $"; #include "rcs.h" USE(rcsid); @@ -77,7 +77,10 @@ int iflag=0; /* Interactive - prompt user and repair. */ int rflag=0; /* Repair simple error without confirmation. */ int gflag=0; /* Garbage collect text-file. */ int sflag=0; /* Statistic flag. */ - +/* The following variable corresponds to the -c flag, and is + present here due to a bug in lyskomd 1.6.1. */ +int unset_change_name_is_error=0; + int modifications = 0; typedef struct { @@ -866,6 +869,21 @@ check_persons(void) errors += (check_created_texts(cp, &pstat->created_texts) + check_membership_list(cp, &pstat->conferences)); } + + if (unset_change_name_is_error == 1 + && pstat->privileges.change_name == 0) + { + log("Person %lu has no change_name capability.\n", + (unsigned long)cp); + if (rflag || confirm("Grant him the capability")) + { + pstat->privileges.change_name = 1; + mark_person_as_changed(cp); + modifications++; + } + else + errors++; + } } if (vflag) @@ -1272,9 +1290,13 @@ main (int argc, sflag++; break; + case 'c': /* Consider an unset change_name an error. */ + unset_change_name_is_error = 1; + break; + default: restart_kom("usage: %s %s [config_file]\n", - argv[0], "[-d ...] [-i] [-r] [-v] [-g] [-s]"); + argv[0], "[-d ...] [-i] [-r] [-v] [-g] [-s] [-c]"); } } @@ -1293,7 +1315,7 @@ main (int argc, if (i != argc) restart_kom("usage: %s %s [config_file]\n", - argv[0], "[-d ...] [-i] [-r] [-v] [-g] [-s]"); + argv[0], "[-d ...] [-i] [-r] [-v] [-g] [-s] [-c]"); s_set_storage_management(smalloc, srealloc, sfree);