]> git.ipfire.org Git - thirdparty/cups.git/blob - scheduler/policy.h
License change: Apache License, Version 2.0.
[thirdparty/cups.git] / scheduler / policy.h
1 /*
2 * Policy definitions for the CUPS scheduler.
3 *
4 * Copyright 2007-2010 by Apple Inc.
5 * Copyright 1997-2005 by Easy Software Products, all rights reserved.
6 *
7 * Licensed under Apache License v2.0. See the file "LICENSE" for more information.
8 */
9
10
11 /*
12 * Policy structure...
13 */
14
15 typedef struct
16 {
17 char *name; /* Policy name */
18 cups_array_t *job_access, /* Private users/groups for jobs */
19 *job_attrs, /* Private attributes for jobs */
20 *sub_access, /* Private users/groups for subscriptions */
21 *sub_attrs, /* Private attributes for subscriptions */
22 *ops; /* Operations */
23 } cupsd_policy_t;
24
25 typedef struct cupsd_printer_s cupsd_printer_t;
26
27
28 /*
29 * Globals...
30 */
31
32 VAR cups_array_t *Policies VALUE(NULL);
33 /* Policies */
34
35
36 /*
37 * Prototypes...
38 */
39
40 extern cupsd_policy_t *cupsdAddPolicy(const char *policy);
41 extern cupsd_location_t *cupsdAddPolicyOp(cupsd_policy_t *p,
42 cupsd_location_t *po,
43 ipp_op_t op);
44 extern http_status_t cupsdCheckPolicy(cupsd_policy_t *p, cupsd_client_t *con,
45 const char *owner);
46 extern void cupsdDeleteAllPolicies(void);
47 extern cupsd_policy_t *cupsdFindPolicy(const char *policy);
48 extern cupsd_location_t *cupsdFindPolicyOp(cupsd_policy_t *p, ipp_op_t op);
49 extern cups_array_t *cupsdGetPrivateAttrs(cupsd_policy_t *p,
50 cupsd_client_t *con,
51 cupsd_printer_t *printer,
52 const char *owner);