X-Git-Url: http://andersk.mit.edu/gitweb/moira.git/blobdiff_plain/99ab61e6e8de0c5223f45a7582505f170e0ac8a8..4216c7743192cbd41d7995c2fe5386a9df1cf2f5:/gen/genacl.pc diff --git a/gen/genacl.pc b/gen/genacl.pc index 0ed1a072..ad5bb038 100644 --- a/gen/genacl.pc +++ b/gen/genacl.pc @@ -47,7 +47,12 @@ void dump_krb_acl(FILE *out, char *type, int id, int vers) sq = get_acl(type, id, NULL); while (sq_remove_data(sq, &m)) { - if (m->type != 'S' && m->name != NULL) + if (m->name == NULL) + { + fprintf(stderr, "Found string_id with no associated string. Exiting.\n"); + exit(MR_DBMS_ERR); + } + if (m->type != 'S') { canon_krb(m, vers, kbuf, sizeof(kbuf)); fprintf(out, "%s\n", kbuf); @@ -124,7 +129,7 @@ struct save_queue *get_acl(char *type, int id, static void save_imember(struct save_queue *sq, char *type, int id, char *tag) { EXEC SQL BEGIN DECLARE SECTION; - int lid = id, mid, mid2, tagid; + int lid = id, mid, mid2, tagid, status; char mtype[IMEMBERS_MEMBER_TYPE_SIZE]; EXEC SQL END DECLARE SECTION; char *mtag; @@ -132,7 +137,9 @@ static void save_imember(struct save_queue *sq, char *type, int id, char *tag) switch (*type) { case 'U': - sq_save_data(sq, imember('U', user_lookup(id), tag)); + EXEC SQL SELECT status INTO :status FROM users WHERE users_id = :id; + if (status != 3) + sq_save_data(sq, imember('U', user_lookup(id), tag)); break; case 'K':