blob: 74a7ff459762e88b960d0f63e623bdc302807007 [file] [log] [blame]
/*
* 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);