summaryrefslogtreecommitdiff
path: root/scheduler/policy.h
blob: 74a7ff459762e88b960d0f63e623bdc302807007 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
/*
 * Policy definitions for the CUPS scheduler.
 *
 * Copyright 2007-2010 by Apple Inc.
 * Copyright 1997-2005 by Easy Software Products, all rights reserved.
 *
 * Licensed under Apache License v2.0.  See the file "LICENSE" for more information.
 */


/*
 * Policy structure...
 */

typedef struct
{
  char			*name;		/* Policy name */
  cups_array_t		*job_access,	/* Private users/groups for jobs */
			*job_attrs,	/* Private attributes for jobs */
			*sub_access,	/* Private users/groups for subscriptions */
			*sub_attrs,	/* Private attributes for subscriptions */
			*ops;		/* Operations */
} cupsd_policy_t;

typedef struct cupsd_printer_s cupsd_printer_t;


/*
 * Globals...
 */

VAR cups_array_t	*Policies	VALUE(NULL);
					/* Policies */


/*
 * Prototypes...
 */

extern cupsd_policy_t	*cupsdAddPolicy(const char *policy);
extern cupsd_location_t	*cupsdAddPolicyOp(cupsd_policy_t *p,
			                  cupsd_location_t *po,
			                  ipp_op_t op);
extern http_status_t	cupsdCheckPolicy(cupsd_policy_t *p, cupsd_client_t *con,
				         const char *owner);
extern void		cupsdDeleteAllPolicies(void);
extern cupsd_policy_t	*cupsdFindPolicy(const char *policy);
extern cupsd_location_t	*cupsdFindPolicyOp(cupsd_policy_t *p, ipp_op_t op);
extern cups_array_t	*cupsdGetPrivateAttrs(cupsd_policy_t *p,
			                      cupsd_client_t *con,
					      cupsd_printer_t *printer,
			                      const char *owner);