3 Provides unit tests and examples for the <Cups> lens.
9 let conf = "# Sample configuration file for the CUPS scheduler.
12 # Deactivate CUPS' internal logrotating, as we provide a better one, especially
13 # LogLevel debug2 gets usable now
16 # Administrator user group...
20 # Only listen for connections from the local machine.
22 Listen /var/run/cups/cups.sock
24 # Show shared printers on the local network.
25 BrowseOrder allow,deny
27 BrowseLocalProtocols CUPS dnssd
30 # Default authentication type, when authentication is required...
33 # Web interface setting...
36 # Restrict access to the server...
41 # Restrict access to the admin pages...
46 # Restrict access to configuration files...
47 <Location /admin/conf>
53 # Set the default printer/job policies...
55 # Job/subscription privacy...
56 JobPrivateAccess default
57 JobPrivateValues default
58 SubscriptionPrivateAccess default
59 SubscriptionPrivateValues default
61 # Job-related operations must be done by the owner or an administrator...
62 <Limit Create-Job Print-Job Print-URI Validate-Job>
66 <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
67 Require user @OWNER @SYSTEM
71 # All administration operations require an administrator to authenticate...
72 <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default CUPS-Get-Devices>
78 # All printer operations require a printer operator to authenticate...
79 <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
85 # Only the owner or an administrator can cancel or authenticate a job...
86 <Limit Cancel-Job CUPS-Authenticate-Job>
87 Require user @OWNER @SYSTEM
96 # Set the authenticated printer/job policies...
97 <Policy authenticated>
98 # Job/subscription privacy...
99 JobPrivateAccess default
100 JobPrivateValues default
101 SubscriptionPrivateAccess default
102 SubscriptionPrivateValues default
104 # Job-related operations must be done by the owner or an administrator...
105 <Limit Create-Job Print-Job Print-URI Validate-Job>
110 <Limit Send-Document Send-URI Hold-Job Release-Job Restart-Job Purge-Jobs Set-Job-Attributes Create-Job-Subscription Renew-Subscription Cancel-Subscription Get-Notifications Reprocess-Job Cancel-Current-Job Suspend-Current-Job Resume-Job Cancel-My-Jobs Close-Job CUPS-Move-Job CUPS-Get-Document>
112 Require user @OWNER @SYSTEM
116 # All administration operations require an administrator to authenticate...
117 <Limit CUPS-Add-Modify-Printer CUPS-Delete-Printer CUPS-Add-Modify-Class CUPS-Delete-Class CUPS-Set-Default>
123 # All printer operations require a printer operator to authenticate...
124 <Limit Pause-Printer Resume-Printer Enable-Printer Disable-Printer Pause-Printer-After-Current-Job Hold-New-Jobs Release-Held-New-Jobs Deactivate-Printer Activate-Printer Restart-Printer Shutdown-Printer Startup-Printer Promote-Job Schedule-Job-After Cancel-Jobs CUPS-Accept-Jobs CUPS-Reject-Jobs>
130 # Only the owner or an administrator can cancel or authenticate a job...
131 <Limit Cancel-Job CUPS-Authenticate-Job>
133 Require user @OWNER @SYSTEM
143 (* Test: Simplevars.lns *)
144 test Cups.lns get conf =
145 { "#comment" = "Sample configuration file for the CUPS scheduler." }
146 { "directive" = "LogLevel"
150 { "#comment" = "Deactivate CUPS' internal logrotating, as we provide a better one, especially" }
151 { "#comment" = "LogLevel debug2 gets usable now" }
152 { "directive" = "MaxLogSize"
156 { "#comment" = "Administrator user group..." }
157 { "directive" = "SystemGroup"
158 { "arg" = "lpadmin" }
162 { "#comment" = "Only listen for connections from the local machine." }
163 { "directive" = "Listen"
164 { "arg" = "localhost:631" }
166 { "directive" = "Listen"
167 { "arg" = "/var/run/cups/cups.sock" }
170 { "#comment" = "Show shared printers on the local network." }
171 { "directive" = "BrowseOrder"
172 { "arg" = "allow,deny" }
174 { "directive" = "BrowseAllow"
177 { "directive" = "BrowseLocalProtocols"
181 { "directive" = "BrowseAddress"
185 { "#comment" = "Default authentication type, when authentication is required..." }
186 { "directive" = "DefaultAuthType"
190 { "#comment" = "Web interface setting..." }
191 { "directive" = "WebInterface"
195 { "#comment" = "Restrict access to the server..." }
198 { "directive" = "Order"
199 { "arg" = "allow,deny" }
202 { "#comment" = "Restrict access to the admin pages..." }
205 { "directive" = "Order"
206 { "arg" = "allow,deny" }
209 { "#comment" = "Restrict access to configuration files..." }
211 { "arg" = "/admin/conf" }
212 { "directive" = "AuthType"
213 { "arg" = "Default" }
215 { "directive" = "Require"
217 { "arg" = "@SYSTEM" }
219 { "directive" = "Order"
220 { "arg" = "allow,deny" }
223 { "#comment" = "Set the default printer/job policies..." }
225 { "arg" = "default" }
226 { "#comment" = "Job/subscription privacy..." }
227 { "directive" = "JobPrivateAccess"
228 { "arg" = "default" }
230 { "directive" = "JobPrivateValues"
231 { "arg" = "default" }
233 { "directive" = "SubscriptionPrivateAccess"
234 { "arg" = "default" }
236 { "directive" = "SubscriptionPrivateValues"
237 { "arg" = "default" }
240 { "#comment" = "Job-related operations must be done by the owner or an administrator..." }
242 { "arg" = "Create-Job" }
243 { "arg" = "Print-Job" }
244 { "arg" = "Print-URI" }
245 { "arg" = "Validate-Job" }
246 { "directive" = "Order"
247 { "arg" = "deny,allow" }
251 { "arg" = "Send-Document" }
252 { "arg" = "Send-URI" }
253 { "arg" = "Hold-Job" }
254 { "arg" = "Release-Job" }
255 { "arg" = "Restart-Job" }
256 { "arg" = "Purge-Jobs" }
257 { "arg" = "Set-Job-Attributes" }
258 { "arg" = "Create-Job-Subscription" }
259 { "arg" = "Renew-Subscription" }
260 { "arg" = "Cancel-Subscription" }
261 { "arg" = "Get-Notifications" }
262 { "arg" = "Reprocess-Job" }
263 { "arg" = "Cancel-Current-Job" }
264 { "arg" = "Suspend-Current-Job" }
265 { "arg" = "Resume-Job" }
266 { "arg" = "Cancel-My-Jobs" }
267 { "arg" = "Close-Job" }
268 { "arg" = "CUPS-Move-Job" }
269 { "arg" = "CUPS-Get-Document" }
270 { "directive" = "Require"
273 { "arg" = "@SYSTEM" }
275 { "directive" = "Order"
276 { "arg" = "deny,allow" }
279 { "#comment" = "All administration operations require an administrator to authenticate..." }
281 { "arg" = "CUPS-Add-Modify-Printer" }
282 { "arg" = "CUPS-Delete-Printer" }
283 { "arg" = "CUPS-Add-Modify-Class" }
284 { "arg" = "CUPS-Delete-Class" }
285 { "arg" = "CUPS-Set-Default" }
286 { "arg" = "CUPS-Get-Devices" }
287 { "directive" = "AuthType"
288 { "arg" = "Default" }
290 { "directive" = "Require"
292 { "arg" = "@SYSTEM" }
294 { "directive" = "Order"
295 { "arg" = "deny,allow" }
298 { "#comment" = "All printer operations require a printer operator to authenticate..." }
300 { "arg" = "Pause-Printer" }
301 { "arg" = "Resume-Printer" }
302 { "arg" = "Enable-Printer" }
303 { "arg" = "Disable-Printer" }
304 { "arg" = "Pause-Printer-After-Current-Job" }
305 { "arg" = "Hold-New-Jobs" }
306 { "arg" = "Release-Held-New-Jobs" }
307 { "arg" = "Deactivate-Printer" }
308 { "arg" = "Activate-Printer" }
309 { "arg" = "Restart-Printer" }
310 { "arg" = "Shutdown-Printer" }
311 { "arg" = "Startup-Printer" }
312 { "arg" = "Promote-Job" }
313 { "arg" = "Schedule-Job-After" }
314 { "arg" = "Cancel-Jobs" }
315 { "arg" = "CUPS-Accept-Jobs" }
316 { "arg" = "CUPS-Reject-Jobs" }
317 { "directive" = "AuthType"
318 { "arg" = "Default" }
320 { "directive" = "Require"
322 { "arg" = "@SYSTEM" }
324 { "directive" = "Order"
325 { "arg" = "deny,allow" }
328 { "#comment" = "Only the owner or an administrator can cancel or authenticate a job..." }
330 { "arg" = "Cancel-Job" }
331 { "arg" = "CUPS-Authenticate-Job" }
332 { "directive" = "Require"
335 { "arg" = "@SYSTEM" }
337 { "directive" = "Order"
338 { "arg" = "deny,allow" }
343 { "directive" = "Order"
344 { "arg" = "deny,allow" }
348 { "#comment" = "Set the authenticated printer/job policies..." }
350 { "arg" = "authenticated" }
351 { "#comment" = "Job/subscription privacy..." }
352 { "directive" = "JobPrivateAccess"
353 { "arg" = "default" }
355 { "directive" = "JobPrivateValues"
356 { "arg" = "default" }
358 { "directive" = "SubscriptionPrivateAccess"
359 { "arg" = "default" }
361 { "directive" = "SubscriptionPrivateValues"
362 { "arg" = "default" }
365 { "#comment" = "Job-related operations must be done by the owner or an administrator..." }
367 { "arg" = "Create-Job" }
368 { "arg" = "Print-Job" }
369 { "arg" = "Print-URI" }
370 { "arg" = "Validate-Job" }
371 { "directive" = "AuthType"
372 { "arg" = "Default" }
374 { "directive" = "Order"
375 { "arg" = "deny,allow" }
379 { "arg" = "Send-Document" }
380 { "arg" = "Send-URI" }
381 { "arg" = "Hold-Job" }
382 { "arg" = "Release-Job" }
383 { "arg" = "Restart-Job" }
384 { "arg" = "Purge-Jobs" }
385 { "arg" = "Set-Job-Attributes" }
386 { "arg" = "Create-Job-Subscription" }
387 { "arg" = "Renew-Subscription" }
388 { "arg" = "Cancel-Subscription" }
389 { "arg" = "Get-Notifications" }
390 { "arg" = "Reprocess-Job" }
391 { "arg" = "Cancel-Current-Job" }
392 { "arg" = "Suspend-Current-Job" }
393 { "arg" = "Resume-Job" }
394 { "arg" = "Cancel-My-Jobs" }
395 { "arg" = "Close-Job" }
396 { "arg" = "CUPS-Move-Job" }
397 { "arg" = "CUPS-Get-Document" }
398 { "directive" = "AuthType"
399 { "arg" = "Default" }
401 { "directive" = "Require"
404 { "arg" = "@SYSTEM" }
406 { "directive" = "Order"
407 { "arg" = "deny,allow" }
410 { "#comment" = "All administration operations require an administrator to authenticate..." }
412 { "arg" = "CUPS-Add-Modify-Printer" }
413 { "arg" = "CUPS-Delete-Printer" }
414 { "arg" = "CUPS-Add-Modify-Class" }
415 { "arg" = "CUPS-Delete-Class" }
416 { "arg" = "CUPS-Set-Default" }
417 { "directive" = "AuthType"
418 { "arg" = "Default" }
420 { "directive" = "Require"
422 { "arg" = "@SYSTEM" }
424 { "directive" = "Order"
425 { "arg" = "deny,allow" }
428 { "#comment" = "All printer operations require a printer operator to authenticate..." }
430 { "arg" = "Pause-Printer" }
431 { "arg" = "Resume-Printer" }
432 { "arg" = "Enable-Printer" }
433 { "arg" = "Disable-Printer" }
434 { "arg" = "Pause-Printer-After-Current-Job" }
435 { "arg" = "Hold-New-Jobs" }
436 { "arg" = "Release-Held-New-Jobs" }
437 { "arg" = "Deactivate-Printer" }
438 { "arg" = "Activate-Printer" }
439 { "arg" = "Restart-Printer" }
440 { "arg" = "Shutdown-Printer" }
441 { "arg" = "Startup-Printer" }
442 { "arg" = "Promote-Job" }
443 { "arg" = "Schedule-Job-After" }
444 { "arg" = "Cancel-Jobs" }
445 { "arg" = "CUPS-Accept-Jobs" }
446 { "arg" = "CUPS-Reject-Jobs" }
447 { "directive" = "AuthType"
448 { "arg" = "Default" }
450 { "directive" = "Require"
452 { "arg" = "@SYSTEM" }
454 { "directive" = "Order"
455 { "arg" = "deny,allow" }
458 { "#comment" = "Only the owner or an administrator can cancel or authenticate a job..." }
460 { "arg" = "Cancel-Job" }
461 { "arg" = "CUPS-Authenticate-Job" }
462 { "directive" = "AuthType"
463 { "arg" = "Default" }
465 { "directive" = "Require"
468 { "arg" = "@SYSTEM" }
470 { "directive" = "Order"
471 { "arg" = "deny,allow" }
476 { "directive" = "Order"
477 { "arg" = "deny,allow" }