char *whoami = "cups-print.gen";
char *db = "moira/moira";
+const int krbvers = 5; /* use Kerberos 5 */
+
/* OMG, I hate this, but it's cleaner, I guess? */
const char *alterjob = "<Limit Hold-Job Release-Job\
{
struct save_queue *sq;
struct imember *m;
+ char kbuf[MAX_K_NAME_SZ];
+ char *cp;
sq = get_acl(type, id, NULL);
while (sq_remove_data(sq, &m))
{
- if (m->type == 'U')
- fprintf(out, "%s %s\n", str, m->name);
+ if (m->type != 'S' && m->type != NULL) {
+ /* CUPS wants mmanley/root, not mmanley.root@ATHENA.MIT.EDU */
+ canon_krb(m, krbvers, kbuf, sizeof(kbuf));
+
+ /* now, take out all the @realm */
+ for (cp=kbuf; *cp; cp++) {
+ if (*cp == '@') *cp = '\0';
+ }
+ fprintf(out, "%s %s\n", str, kbuf);
+ }
freeimember(m);
}
sq_destroy(sq);
EXEC SQL DECLARE csr_printers CURSOR FOR
SELECT pr.rp, pr.name, pr.duplexname, pr.hwtype,
m.name, pr.banner, pr.location, pr.contact, pr.ka,
- pr.ac
+ pr.ac, pr.lpc_acl
FROM printers pr, machine m
WHERE pr.rm = :rm AND m.mach_id = pr.mach_id
AND pr.type != 'ALIAS';
while (1)
{
EXEC SQL FETCH csr_printers INTO :rp, :name, :duplexname,
- :hwtype, :hostname, :banner, :location, :contact, :ka, :ac;
+ :hwtype, :hostname, :banner, :location, :contact, :ka, :ac, :lpc_acl;
if (sqlca.sqlcode)
break;
if (location[0])
fprintf(out, "Location %s\n", location);
fprintf(out, "ErrorPolicy abort-job\n");
- if (! ka || ! lpc_acl)
- fprintf(out, "OpPolicy default\n");
- else
+ if (ka || lpc_acl)
fprintf(out, "OpPolicy %s-policy\n", rp);
+ else
+ fprintf(out, "OpPolicy default\n");
/* Access-control list. */
if (ac)
if (ka)
fprintf(out, "AuthType Negotiate\n");
else
- fprintf(out, "AuthType Negotiate\n");
+ fprintf(out, "AuthType Default\n");
printer_user_list(out, "LIST", ac, "AllowUser");
}
if (location[0])
fprintf(out, "Location %s\n", location);
fprintf(out, "ErrorPolicy abort-job\n");
- if (! ka || ! lpc_acl)
- fprintf(out, "OpPolicy default\n");
- else
+ if (ka || lpc_acl)
fprintf(out, "OpPolicy %s-policy\n", rp);
+ else
+ fprintf(out, "OpPolicy default\n");
/* Access-control list. */
if (ac)
if (ka)
fprintf(out, "AuthType Negotiate\n");
else
- fprintf(out, "AuthType Negotiate\n");
+ fprintf(out, "AuthType Default\n");
printer_user_list(out, "LIST", ac, "AllowUser");
}
if (location[0])
fprintf(out, "Location %s\n", location);
fprintf(out, "ErrorPolicy abort-job\n");
- if (! ka || ! lpc_acl)
- fprintf(out, "OpPolicy default\n");
- else
+ if (ka || lpc_acl)
fprintf(out, "OpPolicy %s-policy\n", rp);
+ else
+ fprintf(out, "OpPolicy default\n");
/* Access-control list. */
if (ac)
if (ka)
fprintf(out, "AuthType Negotiate\n");
else
- fprintf(out, "AuthType Negotiate\n");
+ fprintf(out, "AuthType Default\n");
printer_user_list(out, "LIST", ac, "AllowUser");
}