paul@961 | 1 | = Preferences = |
paul@961 | 2 | |
paul@961 | 3 | The correspondence between user preferences (stored in user preference |
paul@961 | 4 | directories) and the default settings (stored in `config.py`) is described |
paul@961 | 5 | below. |
paul@961 | 6 | |
paul@961 | 7 | || '''Preference''' || '''Default Setting''' || |
paul@961 | 8 | || `LANG` || `LANG` || |
paul@961 | 9 | || `add_method_response` || `ADD_RESPONSE_DEFAULT` || |
paul@961 | 10 | || `event_refreshing` || `REFRESHING_DEFAULT` || |
paul@961 | 11 | || `freebusy_bundling` || `BUNDLING_DEFAULT` || |
paul@961 | 12 | || `freebusy_messages` || `NOTIFYING_DEFAULT` || |
paul@961 | 13 | || `freebusy_offers` || `FREEBUSY_OFFER_DEFAULT` || |
paul@961 | 14 | || `freebusy_publishing` || `PUBLISHING_DEFAULT` || |
paul@961 | 15 | || `freebusy_sharing` || `SHARING_DEFAULT` || |
paul@961 | 16 | || `incoming` || `INCOMING_DEFAULT` || |
paul@961 | 17 | || `organiser_replacement` || `ORGANISER_REPLACEMENT_DEFAULT` || |
paul@961 | 18 | || `participating` || `PARTICIPATING_DEFAULT` || |
paul@961 | 19 | |
paul@961 | 20 | See the [[../Configuration|configuration guide]] for more information about |
paul@961 | 21 | the `config.py` file. |
paul@961 | 22 | |
paul@961 | 23 | == User Preference Settings == |
paul@961 | 24 | |
paul@961 | 25 | <<TableOfContents(3,3)>> |
paul@961 | 26 | |
paul@961 | 27 | Each of the user preferences or settings are stored in a separate file within |
paul@961 | 28 | a dedicated preferences directory for each user, with the filename bearing the |
paul@988 | 29 | name of the setting concerned. See the [[../FilesystemUsage|filesystem guide]] |
paul@988 | 30 | for more information. |
paul@961 | 31 | |
paul@961 | 32 | === CN === |
paul@961 | 33 | |
paul@961 | 34 | Default:: (none) |
paul@961 | 35 | Alternatives:: (see below) |
paul@961 | 36 | |
paul@961 | 37 | The common name of the user, employed in iCalendar objects and user |
paul@961 | 38 | interfaces. |
paul@961 | 39 | |
paul@961 | 40 | === LANG === |
paul@961 | 41 | |
paul@961 | 42 | Default:: `en` (English) |
paul@961 | 43 | Alternatives:: (any recognised and supported locale) |
paul@961 | 44 | |
paul@961 | 45 | The language for messages and user interface text. |
paul@961 | 46 | |
paul@961 | 47 | === TZID === |
paul@961 | 48 | |
paul@961 | 49 | Default:: system timezone (see `/etc/timezone`) |
paul@961 | 50 | Alternatives:: (any recognised Olson time zone identifier) |
paul@961 | 51 | |
paul@961 | 52 | The default time zone/regime for calendars, new events and local times. |
paul@961 | 53 | |
paul@1032 | 54 | === acl === |
paul@1032 | 55 | |
paul@1032 | 56 | Default:: (none) |
paul@1032 | 57 | Alternatives:: (see below) |
paul@1032 | 58 | |
paul@1032 | 59 | Provides an access control list for the `access_control_list` scheduling |
paul@1032 | 60 | function, invoked using the `scheduling_functions` setting. An access control |
paul@1032 | 61 | list consists of a collection of lines of text describing the handling policy |
paul@1032 | 62 | for an incoming invitation. |
paul@1032 | 63 | |
paul@1032 | 64 | {{{#!table |
paul@1032 | 65 | `accept` || indicates that if no rule matches, the invitation will be accepted |
paul@1032 | 66 | .. (provisionally) |
paul@1032 | 67 | == |
paul@1032 | 68 | `decline` ||<rowspan="2"> indicates that if no rule matches, the invitation |
paul@1032 | 69 | .. will be declined (provisionally) |
paul@1032 | 70 | == |
paul@1032 | 71 | `reject` |
paul@1032 | 72 | == |
paul@1032 | 73 | `accept` ''`role`'' ''`identity`'' || indicates that where the given |
paul@1032 | 74 | .. ''`identity`'' exists in the given |
paul@1032 | 75 | .. ''`role`'' in the event, and unless a subsequent rule contradicts |
paul@1032 | 76 | .. this result, the invitation will be accepted (provisionally) |
paul@1032 | 77 | == |
paul@1032 | 78 | `decline` ''`role`'' ''`identity`'' ||<rowspan="2"> indicates that where the |
paul@1032 | 79 | .. given ''`identity`'' exists |
paul@1032 | 80 | .. in the given ''`role`'' in the event, and unless a subsequent rule |
paul@1032 | 81 | .. contradicts this result, the invitation will be declined |
paul@1032 | 82 | .. (provisionally) |
paul@1032 | 83 | |
paul@1032 | 84 | == |
paul@1032 | 85 | `reject` ''`role`'' ''`identity`'' |
paul@1032 | 86 | }}} |
paul@1032 | 87 | |
paul@1032 | 88 | In the above, `role` is either `organiser` (or `organizer`) or `attendee`; |
paul@1032 | 89 | `identity` is an address or URL. |
paul@1032 | 90 | |
paul@1032 | 91 | Note that even if an accepted result is returned by the `access_control_list` |
paul@1032 | 92 | scheduling function, other functions that follow it in the list of functions |
paul@1032 | 93 | may overturn this result. |
paul@1032 | 94 | |
paul@1032 | 95 | See the [[../Resources|resources guide]] for examples and more information. |
paul@1032 | 96 | |
paul@961 | 97 | === add_method_response === |
paul@961 | 98 | |
paul@961 | 99 | Default:: `refresh` |
paul@961 | 100 | Alternatives:: (see below) |
paul@961 | 101 | |
paul@961 | 102 | Indicate how `ADD` methods shall be responded to when received by a recipient: |
paul@961 | 103 | |
paul@961 | 104 | {{{#!table |
paul@961 | 105 | `add` || apply them to events as received |
paul@961 | 106 | == |
paul@961 | 107 | `ignore` || ignore attempts to add event occurrences |
paul@961 | 108 | == |
paul@961 | 109 | `refresh` || respond with a `REFRESH` message to obtain a proper request with |
paul@961 | 110 | .. all event details |
paul@961 | 111 | }}} |
paul@961 | 112 | |
paul@1039 | 113 | === confirmation_function === |
paul@1039 | 114 | |
paul@1039 | 115 | Default:: (none) |
paul@1039 | 116 | Alternatives:: (see below) |
paul@1039 | 117 | |
paul@1039 | 118 | Indicates the confirmation functions used by [[../Resources|resources]] to be |
paul@1039 | 119 | invoked when an event is scheduled. Such functions support certain scheduling |
paul@1039 | 120 | functions that require a record of scheduling activity. |
paul@1039 | 121 | |
paul@1039 | 122 | The `imiptools.handlers.scheduling` module contains the built-in confirmation |
paul@1039 | 123 | functions which include the following: |
paul@1039 | 124 | |
paul@1039 | 125 | {{{#!table |
paul@1042 | 126 | `add_to_quota` ||<rowspan="2"> add the details of an event to quota |
paul@1042 | 127 | .. records for the indicated quota group |
paul@1042 | 128 | == |
paul@1042 | 129 | `add_to_quota` ''`quota-group`'' |
paul@1042 | 130 | == |
paul@1042 | 131 | `add_to_quota_freebusy` ||<rowspan="2"> add the details of an event to |
paul@1042 | 132 | .. free/busy records stored by the indicated quota |
paul@1042 | 133 | .. group |
paul@1042 | 134 | == |
paul@1042 | 135 | `add_to_quota_freebusy` ''`quota-group`'' |
paul@1039 | 136 | }}} |
paul@1039 | 137 | |
paul@1039 | 138 | See also `retraction_function` and `scheduling_function`. |
paul@1039 | 139 | |
paul@961 | 140 | === event_refreshing === |
paul@961 | 141 | |
paul@961 | 142 | Default:: `never` |
paul@961 | 143 | Alternative:: `always` |
paul@961 | 144 | |
paul@961 | 145 | Indicate whether messages requesting a refresh of event details shall be |
paul@961 | 146 | handled automatically. If not, such messages will be passed on to the |
paul@961 | 147 | recipient for their mail program to handle. |
paul@961 | 148 | |
paul@961 | 149 | === freebusy_bundling === |
paul@961 | 150 | |
paul@961 | 151 | Default:: `never` |
paul@961 | 152 | Alternative:: `always` |
paul@961 | 153 | |
paul@961 | 154 | Indicate whether to bundle free/busy details with other payloads such as |
paul@961 | 155 | event and free/busy objects. The `freebusy_sharing` setting must be |
paul@961 | 156 | configured for bundling to operate. |
paul@961 | 157 | |
paul@961 | 158 | === freebusy_messages === |
paul@961 | 159 | |
paul@961 | 160 | Default:: `none` |
paul@961 | 161 | Alternative:: `notify` |
paul@961 | 162 | |
paul@961 | 163 | Indicate whether recipients are notified about received free/busy payloads. |
paul@961 | 164 | |
paul@961 | 165 | === freebusy_offers === |
paul@961 | 166 | |
paul@961 | 167 | Default:: (none) |
paul@961 | 168 | Alternative:: (see below) |
paul@961 | 169 | |
paul@961 | 170 | Define the period for which free/busy offers are extended by participants |
paul@961 | 171 | supporting this setting when counter-proposals are made during event |
paul@961 | 172 | scheduling. |
paul@961 | 173 | |
paul@961 | 174 | This setting requires a value indicating a duration as described in the |
paul@961 | 175 | iCalendar format specification: |
paul@961 | 176 | |
paul@961 | 177 | http://tools.ietf.org/html/rfc5545#section-3.3.6 |
paul@961 | 178 | |
paul@961 | 179 | For example: |
paul@961 | 180 | |
paul@961 | 181 | || `PT10M` || extend scheduling offers for 10 minutes || |
paul@961 | 182 | || `PT600S` || extend scheduling offers for 600 seconds (10 minutes) || |
paul@961 | 183 | || `PT1D` || extend offers for 1 day || |
paul@961 | 184 | |
paul@961 | 185 | === freebusy_publishing === |
paul@961 | 186 | |
paul@961 | 187 | Default:: `no` |
paul@961 | 188 | Alternative:: `publish` |
paul@961 | 189 | |
paul@961 | 190 | Indicate whether to publish free/busy details as Web resources. The |
paul@961 | 191 | `freebusy_sharing` setting must be configured for publishing to operate. |
paul@961 | 192 | |
paul@961 | 193 | === freebusy_sharing === |
paul@961 | 194 | |
paul@961 | 195 | Default:: `no` |
paul@961 | 196 | Alternative:: `share` |
paul@961 | 197 | |
paul@961 | 198 | Share free/busy details generally: |
paul@961 | 199 | |
paul@961 | 200 | * bundling in e-mail messages if bundling is configured |
paul@961 | 201 | * responding to free/busy requests via e-mail |
paul@961 | 202 | * publishing as Web resources if a static Web resource is configured and if |
paul@961 | 203 | publishing is configured |
paul@961 | 204 | |
paul@961 | 205 | === incoming === |
paul@961 | 206 | |
paul@961 | 207 | Default:: `summary-wraps-message` |
paul@961 | 208 | Alternatives:: (see below) |
paul@961 | 209 | |
paul@961 | 210 | Define how incoming event messages are delivered to recipients: |
paul@961 | 211 | |
paul@961 | 212 | {{{#!table |
paul@961 | 213 | `message-only` |
paul@961 | 214 | || deliver only the incoming message as it was received |
paul@961 | 215 | == |
paul@961 | 216 | `message-then-summary` |
paul@961 | 217 | || deliver the message first followed by a summary message |
paul@961 | 218 | == |
paul@961 | 219 | `summary-then-message` |
paul@961 | 220 | || deliver a summary first followed by the message |
paul@961 | 221 | == |
paul@961 | 222 | `summary-only` |
paul@961 | 223 | || deliver only a summary of the message |
paul@961 | 224 | == |
paul@961 | 225 | `summary-wraps-message` |
paul@961 | 226 | || deliver a summary that includes the original message as an attachment |
paul@961 | 227 | }}} |
paul@961 | 228 | |
paul@961 | 229 | === organiser_replacement === |
paul@961 | 230 | |
paul@961 | 231 | Default:: `attendee` |
paul@961 | 232 | Alternatives:: (see below) |
paul@961 | 233 | |
paul@961 | 234 | Indicate whether the organiser of an event can be replaced and the nature of |
paul@961 | 235 | any replacement: |
paul@961 | 236 | |
paul@961 | 237 | {{{#!table |
paul@961 | 238 | `any` || any identity, regardless of whether it is already present or even |
paul@961 | 239 | .. previously unknown, may become the organiser |
paul@961 | 240 | == |
paul@961 | 241 | `attendee` || any new organiser must be a previously-recognised attendee |
paul@961 | 242 | == |
paul@961 | 243 | `never` || forbid the replacement of an event's organiser |
paul@961 | 244 | }}} |
paul@961 | 245 | |
paul@961 | 246 | === participating === |
paul@961 | 247 | |
paul@961 | 248 | Default:: `participate` |
paul@961 | 249 | Alternative:: `no` |
paul@961 | 250 | |
paul@961 | 251 | Indicate whether a recipient participates in the calendar system. Note that |
paul@961 | 252 | participation by default occurs because the handler programs will be defined |
paul@961 | 253 | in the mail system for recipients fulfilling certain criteria; other |
paul@961 | 254 | recipients will be handled in other ways. Thus, initial non-participation must |
paul@961 | 255 | be defined by initialising this setting to "no" for all eligible users, if |
paul@961 | 256 | this is the general policy on initial calendar system participation. |
paul@961 | 257 | |
paul@961 | 258 | === permitted_times === |
paul@961 | 259 | |
paul@961 | 260 | Default:: (none) |
paul@961 | 261 | Alternatives:: (see below) |
paul@961 | 262 | |
paul@961 | 263 | Define the time values at which events can be scheduled. In its simplest form, |
paul@961 | 264 | this indicates the resolution of a calendar for a participant supporting this |
paul@961 | 265 | setting, with the given minute values being those allowed for the start and |
paul@961 | 266 | end of an event. This setting requires a value of one of the following forms: |
paul@961 | 267 | |
paul@961 | 268 | {{{ |
paul@961 | 269 | <minute values> |
paul@961 | 270 | <hour values>:<minute values> |
paul@961 | 271 | <hour values>:<minute values>:<second values> |
paul@961 | 272 | }}} |
paul@961 | 273 | |
paul@961 | 274 | Each list of values is a comma-separated collection of permissible values for |
paul@961 | 275 | the unit of time being constrained. Any unspecified list is taken to permit |
paul@961 | 276 | all normally permissible values for that unit of time. For example: |
paul@961 | 277 | |
paul@961 | 278 | {{{#!table |
paul@961 | 279 | `0,15,30,45` || every 15 minutes from the start of each hour |
paul@961 | 280 | == |
paul@961 | 281 | `10,12,14,16:0,20,40` || every 20 minutes from 10:00 until 16:40 inclusive |
paul@961 | 282 | == |
paul@961 | 283 | `12::0,30` || every 30 seconds from the start of each minute |
paul@961 | 284 | .. during the period from 12:00:00 until 12:59:30 |
paul@961 | 285 | .. inclusive |
paul@961 | 286 | }}} |
paul@961 | 287 | |
paul@961 | 288 | The purpose of this setting is not necessarily to impose availability |
paul@961 | 289 | constraints but instead to impose a "grid" to which event start and end points |
paul@961 | 290 | shall be "locked". |
paul@961 | 291 | |
paul@961 | 292 | The values are interpreted in the local time of the participant. Thus, a time |
paul@961 | 293 | represented in UTC may have apparently inappropriate hour (and for some zones) |
paul@961 | 294 | minute values that correspond to permitted values in this participant's own |
paul@961 | 295 | time zone. |
paul@961 | 296 | |
paul@1039 | 297 | === retraction_function === |
paul@1039 | 298 | |
paul@1039 | 299 | Default:: (none) |
paul@1039 | 300 | Alternatives:: (see below) |
paul@1039 | 301 | |
paul@1039 | 302 | Indicates the retraction functions used by [[../Resources|resources]] to be |
paul@1039 | 303 | invoked when an event is cancelled. Such functions support certain scheduling |
paul@1039 | 304 | functions that require a record of scheduling activity. |
paul@1039 | 305 | |
paul@1039 | 306 | The `imiptools.handlers.scheduling` module contains the built-in retraction |
paul@1039 | 307 | functions which include the following: |
paul@1039 | 308 | |
paul@1039 | 309 | {{{#!table |
paul@1042 | 310 | `remove_from_quota` ||<rowspan="2"> remove the details of an event from |
paul@1042 | 311 | .. quota records for the indicated quota group |
paul@1042 | 312 | == |
paul@1042 | 313 | `remove_from_quota` ''`quota-group`'' |
paul@1042 | 314 | == |
paul@1042 | 315 | `remove_from_quota_freebusy` ||<rowspan="2"> remove the details of an event |
paul@1042 | 316 | .. from free/busy records stored by the |
paul@1042 | 317 | .. indicated quota group |
paul@1042 | 318 | == |
paul@1042 | 319 | `remove_from_quota_freebusy` ''`quota-group`'' |
paul@1039 | 320 | }}} |
paul@1039 | 321 | |
paul@1039 | 322 | See also `confirmation_function` and `scheduling_function`. |
paul@1039 | 323 | |
paul@961 | 324 | === scheduling_function === |
paul@961 | 325 | |
paul@961 | 326 | Default:: `schedule_in_freebusy` |
paul@961 | 327 | Alternatives:: (see below) |
paul@961 | 328 | |
paul@1032 | 329 | Indicates the scheduling functions used by [[../Resources|resources]] to find |
paul@1032 | 330 | an appropriate period for an event, with each function to be applied to a |
paul@1032 | 331 | scheduling request appearing on a separate line, optionally accompanied by |
paul@1032 | 332 | arguments controlling the behaviour of the function. |
paul@1025 | 333 | |
paul@1039 | 334 | The `imiptools.handlers.scheduling` module contains the built-in scheduling |
paul@1025 | 335 | functions which include the following: |
paul@961 | 336 | |
paul@961 | 337 | {{{#!table |
paul@1032 | 338 | `access_control_list` || use an access control list provided by a file whose |
paul@1032 | 339 | .. name is given as an argument, accepting or declining |
paul@1032 | 340 | .. the invitation according to the indicated rules |
paul@1032 | 341 | .. (described in the [[../Resources|resources guide]]) |
paul@1032 | 342 | == |
paul@1039 | 343 | `check_quota` || accept an invitation only if the organiser does not |
paul@1042 | 344 | .. exceed their quota allowance for bookings for the |
paul@1042 | 345 | .. indicated quota group |
paul@1042 | 346 | .. (described in the [[../Resources|resources guide]]) |
paul@1042 | 347 | == |
paul@1042 | 348 | `schedule_across_quota`|| accept an invitation only if the organiser has not |
paul@1042 | 349 | .. reserved a resource for a conflicting period in any |
paul@1042 | 350 | .. other resource belonging to the indicated quota group |
paul@1039 | 351 | .. (described in the [[../Resources|resources guide]]) |
paul@1039 | 352 | == |
paul@1032 | 353 | `same_domain_only` || accept an invitation only if the organiser employs an |
paul@1032 | 354 | .. address in the same domain as the resource |
paul@1030 | 355 | == |
paul@961 | 356 | `schedule_in_freebusy` || accept an invitation if the event periods are free |
paul@961 | 357 | .. according to the free/busy records for the resource; |
paul@961 | 358 | .. decline otherwise |
paul@961 | 359 | == |
paul@961 | 360 | `schedule_corrected_in_freebusy` || correct periods in an event according to |
paul@961 | 361 | .. the permitted_times setting (see above), |
paul@961 | 362 | .. then attempt to schedule the event according to the |
paul@961 | 363 | .. free/busy records for the resource |
paul@961 | 364 | == |
paul@961 | 365 | `schedule_next_available_in_freebusy` || correct periods in an event according |
paul@961 | 366 | .. to the permitted_times setting (see |
paul@961 | 367 | .. above), if configured, and attempt to schedule the |
paul@961 | 368 | .. event according to the free/busy records for the |
paul@961 | 369 | .. resource and for any attendees for whom records are |
paul@961 | 370 | .. available, seeking the next available free period for |
paul@961 | 371 | .. each period that conflicts with an existing event |
paul@961 | 372 | }}} |
paul@961 | 373 | |
paul@961 | 374 | The scheduling mechanism can be extended by implementing additional scheduling |
paul@961 | 375 | functions or by extending the handler framework directly. |
paul@1039 | 376 | |
paul@1039 | 377 | See also `confirmation_function` and `retraction_function`. |