~barry/mailman/events-and-web

« back to all changes in this revision

Viewing changes to src/mailman/rest/docs/membership.rst

  • Committer: Barry Warsaw
  • Date: 2011-09-02 00:54:37 UTC
  • mfrom: (7042.2.1 mailman_833123)
  • Revision ID: barry@list.org-20110902005437-bvjc5ptp3vlqkon9
* You can now query or change a member's `delivery_mode` attribute through
  the REST API (LP: #833132).  Given by Stephen A. Goss.

Show diffs side-by-side

added added

removed removed

Lines of Context:
42
42
    >>> dump_json('http://localhost:9001/3.0/members')
43
43
    entry 0:
44
44
        address: bperson@example.com
 
45
        delivery_mode: regular
45
46
        fqdn_listname: bee@example.com
46
47
        http_etag: ...
47
48
        role: member
55
56
 
56
57
    >>> dump_json('http://localhost:9001/3.0/members/1')
57
58
    address: bperson@example.com
 
59
    delivery_mode: regular
58
60
    fqdn_listname: bee@example.com
59
61
    http_etag: ...
60
62
    role: member
68
70
    >>> dump_json('http://localhost:9001/3.0/members')
69
71
    entry 0:
70
72
        address: bperson@example.com
 
73
        delivery_mode: regular
71
74
        fqdn_listname: bee@example.com
72
75
        http_etag: ...
73
76
        role: member
75
78
        user: http://localhost:9001/3.0/users/1
76
79
    entry 1:
77
80
        address: cperson@example.com
 
81
        delivery_mode: regular
78
82
        fqdn_listname: bee@example.com
79
83
        http_etag: ...
80
84
        role: member
93
97
    >>> dump_json('http://localhost:9001/3.0/members')
94
98
    entry 0:
95
99
        address: aperson@example.com
 
100
        delivery_mode: regular
96
101
        fqdn_listname: bee@example.com
97
102
        http_etag: ...
98
103
        role: member
100
105
        user: http://localhost:9001/3.0/users/3
101
106
    entry 1:
102
107
        address: bperson@example.com
 
108
        delivery_mode: regular
103
109
        fqdn_listname: bee@example.com
104
110
        http_etag: ...
105
111
        role: member
107
113
        user: http://localhost:9001/3.0/users/1
108
114
    entry 2:
109
115
        address: cperson@example.com
 
116
        delivery_mode: regular
110
117
        fqdn_listname: bee@example.com
111
118
        http_etag: ...
112
119
        role: member
129
136
    >>> dump_json('http://localhost:9001/3.0/members')
130
137
    entry 0:
131
138
        address: aperson@example.com
 
139
        delivery_mode: regular
132
140
        fqdn_listname: ant@example.com
133
141
        http_etag: ...
134
142
        role: member
136
144
        user: http://localhost:9001/3.0/users/3
137
145
    entry 1:
138
146
        address: cperson@example.com
 
147
        delivery_mode: regular
139
148
        fqdn_listname: ant@example.com
140
149
        http_etag: ...
141
150
        role: member
143
152
        user: http://localhost:9001/3.0/users/2
144
153
    entry 2:
145
154
        address: aperson@example.com
 
155
        delivery_mode: regular
146
156
        fqdn_listname: bee@example.com
147
157
        http_etag: ...
148
158
        role: member
150
160
        user: http://localhost:9001/3.0/users/3
151
161
    entry 3:
152
162
        address: bperson@example.com
 
163
        delivery_mode: regular
153
164
        fqdn_listname: bee@example.com
154
165
        http_etag: ...
155
166
        role: member
157
168
        user: http://localhost:9001/3.0/users/1
158
169
    entry 4:
159
170
        address: cperson@example.com
 
171
        delivery_mode: regular
160
172
        fqdn_listname: bee@example.com
161
173
        http_etag: ...
162
174
        role: member
172
184
    ...     'http://localhost:9001/3.0/lists/ant@example.com/roster/member')
173
185
    entry 0:
174
186
        address: aperson@example.com
 
187
        delivery_mode: regular
175
188
        fqdn_listname: ant@example.com
176
189
        http_etag: ...
177
190
        role: member
179
192
        user: http://localhost:9001/3.0/users/3
180
193
    entry 1:
181
194
        address: cperson@example.com
 
195
        delivery_mode: regular
182
196
        fqdn_listname: ant@example.com
183
197
        http_etag: ...
184
198
        role: member
222
236
    >>> dump_json('http://localhost:9001/3.0/members')
223
237
    entry 0:
224
238
        address: dperson@example.com
 
239
        delivery_mode: regular
225
240
        fqdn_listname: ant@example.com
226
241
        http_etag: ...
227
242
        role: moderator
229
244
        user: http://localhost:9001/3.0/users/4
230
245
    entry 1:
231
246
        address: aperson@example.com
 
247
        delivery_mode: regular
232
248
        fqdn_listname: ant@example.com
233
249
        http_etag: ...
234
250
        role: member
236
252
        user: http://localhost:9001/3.0/users/3
237
253
    entry 2:
238
254
        address: cperson@example.com
 
255
        delivery_mode: regular
239
256
        fqdn_listname: ant@example.com
240
257
        http_etag: ...
241
258
        role: member
243
260
        user: http://localhost:9001/3.0/users/2
244
261
    entry 3:
245
262
        address: cperson@example.com
 
263
        delivery_mode: regular
246
264
        fqdn_listname: bee@example.com
247
265
        http_etag: ...
248
266
        role: owner
250
268
        user: http://localhost:9001/3.0/users/2
251
269
    entry 4:
252
270
        address: aperson@example.com
 
271
        delivery_mode: regular
253
272
        fqdn_listname: bee@example.com
254
273
        http_etag: ...
255
274
        role: member
257
276
        user: http://localhost:9001/3.0/users/3
258
277
    entry 5:
259
278
        address: bperson@example.com
 
279
        delivery_mode: regular
260
280
        fqdn_listname: bee@example.com
261
281
        http_etag: ...
262
282
        role: member
264
284
        user: http://localhost:9001/3.0/users/1
265
285
    entry 6:
266
286
        address: cperson@example.com
 
287
        delivery_mode: regular
267
288
        fqdn_listname: bee@example.com
268
289
        http_etag: ...
269
290
        role: member
279
300
    ...     'http://localhost:9001/3.0/lists/bee@example.com/roster/owner')
280
301
    entry 0:
281
302
        address: cperson@example.com
 
303
        delivery_mode: regular
282
304
        fqdn_listname: bee@example.com
283
305
        http_etag: ...
284
306
        role: owner
297
319
    >>> dump_json('http://localhost:9001/3.0/lists/'
298
320
    ...           'bee@example.com/owner/cperson@example.com')
299
321
    address: cperson@example.com
 
322
    delivery_mode: regular
300
323
    fqdn_listname: bee@example.com
301
324
    http_etag: ...
302
325
    role: owner
311
334
    ...           })
312
335
    entry 0:
313
336
        address: aperson@example.com
 
337
        delivery_mode: regular
314
338
        fqdn_listname: ant@example.com
315
339
        http_etag: ...
316
340
        role: member
318
342
        user: http://localhost:9001/3.0/users/3
319
343
    entry 1:
320
344
        address: aperson@example.com
 
345
        delivery_mode: regular
321
346
        fqdn_listname: bee@example.com
322
347
        http_etag: ...
323
348
        role: member
334
359
    ...           })
335
360
    entry 0:
336
361
        address: aperson@example.com
 
362
        delivery_mode: regular
337
363
        fqdn_listname: bee@example.com
338
364
        http_etag: ...
339
365
        role: member
341
367
        user: http://localhost:9001/3.0/users/3
342
368
    entry 1:
343
369
        address: bperson@example.com
 
370
        delivery_mode: regular
344
371
        fqdn_listname: bee@example.com
345
372
        http_etag: ...
346
373
        role: member
348
375
        user: http://localhost:9001/3.0/users/1
349
376
    entry 2:
350
377
        address: cperson@example.com
 
378
        delivery_mode: regular
351
379
        fqdn_listname: bee@example.com
352
380
        http_etag: ...
353
381
        role: member
355
383
        user: http://localhost:9001/3.0/users/2
356
384
    entry 3:
357
385
        address: cperson@example.com
 
386
        delivery_mode: regular
358
387
        fqdn_listname: bee@example.com
359
388
        http_etag: ...
360
389
        role: owner
361
390
        self_link: http://localhost:9001/3.0/members/7
362
391
        user: http://localhost:9001/3.0/users/2
363
 
    http_etag: "66836d0f23bed36fa9e0cda1e5dec7e5b0797743"
 
392
    http_etag: "..."
364
393
    start: 0
365
394
    total_size: 4
366
395
 
373
402
    ...           })
374
403
    entry 0:
375
404
        address: cperson@example.com
 
405
        delivery_mode: regular
376
406
        fqdn_listname: bee@example.com
377
407
        http_etag: ...
378
408
        role: member
380
410
        user: http://localhost:9001/3.0/users/2
381
411
    entry 1:
382
412
        address: cperson@example.com
 
413
        delivery_mode: regular
383
414
        fqdn_listname: bee@example.com
384
415
        http_etag: ...
385
416
        role: owner
397
428
    ...           })
398
429
    entry 0:
399
430
        address: cperson@example.com
 
431
        delivery_mode: regular
400
432
        fqdn_listname: ant@example.com
401
433
        http_etag: ...
402
434
        role: member
404
436
        user: http://localhost:9001/3.0/users/2
405
437
    entry 1:
406
438
        address: cperson@example.com
 
439
        delivery_mode: regular
407
440
        fqdn_listname: bee@example.com
408
441
        http_etag: ...
409
442
        role: member
422
455
    ...           })
423
456
    entry 0:
424
457
        address: cperson@example.com
 
458
        delivery_mode: regular
425
459
        fqdn_listname: bee@example.com
426
460
        http_etag: ...
427
461
        role: member
469
503
    ...
470
504
    entry 3:
471
505
        address: eperson@example.com
 
506
        delivery_mode: regular
472
507
        fqdn_listname: ant@example.com
473
508
        http_etag: ...
474
509
        role: member
509
544
    ...
510
545
    entry 4:
511
546
        address: gwen@example.com
 
547
        delivery_mode: regular
512
548
        fqdn_listname: ant@example.com
513
549
        http_etag: "..."
514
550
        role: member
531
567
    ...
532
568
    entry 4:
533
569
        address: gwen.person@example.com
 
570
        delivery_mode: regular
534
571
        fqdn_listname: ant@example.com
535
572
        http_etag: "..."
536
573
        role: member
584
621
    >>> memberships = list(fred.memberships.members)
585
622
    >>> len(memberships)
586
623
    1
 
624
 
 
625
Fred is getting MIME deliveries.
 
626
 
587
627
    >>> memberships[0]
588
628
    <Member: Fred Person <fperson@example.com>
589
629
             on ant@example.com as MemberRole.member>
 
630
    >>> print memberships[0].delivery_mode
 
631
    DeliveryMode.mime_digests
 
632
 
 
633
    >>> dump_json('http://localhost:9001/3.0/members/10')
 
634
    address: fperson@example.com
 
635
    delivery_mode: mime_digests
 
636
    fqdn_listname: ant@example.com
 
637
    http_etag: "..."
 
638
    role: member
 
639
    self_link: http://localhost:9001/3.0/members/10
 
640
    user: http://localhost:9001/3.0/users/7
 
641
 
 
642
Fred wants to change his delivery from MIME digest back to regular delivery.
 
643
This can be done by PATCH'ing his member with the `delivery_mode` parameter.
 
644
::
 
645
 
 
646
    >>> transaction.abort()
 
647
    >>> dump_json('http://localhost:9001/3.0/members/10', {
 
648
    ...           'delivery_mode': 'regular',
 
649
    ...           }, method='PATCH')
 
650
    content-length: 0
 
651
    date: ...
 
652
    server: ...
 
653
    status: 204
 
654
 
 
655
    >>> dump_json('http://localhost:9001/3.0/members/10')
 
656
    address: fperson@example.com
 
657
    delivery_mode: regular
 
658
    fqdn_listname: ant@example.com
 
659
    http_etag: "..."
 
660
    role: member
 
661
    self_link: http://localhost:9001/3.0/members/10
 
662
    user: http://localhost:9001/3.0/users/7
 
663
 
 
664
If a PATCH request changes no attributes, nothing happens.
 
665
::
 
666
 
 
667
    >>> dump_json('http://localhost:9001/3.0/members/10', method='PATCH')
 
668
    content-length: 0
 
669
    date: ...
 
670
    server: ...
 
671
    status: 204
 
672
 
 
673
    >>> dump_json('http://localhost:9001/3.0/members/10')
 
674
    address: fperson@example.com
 
675
    delivery_mode: regular
 
676
    fqdn_listname: ant@example.com
 
677
    http_etag: "..."
 
678
    role: member
 
679
    self_link: http://localhost:9001/3.0/members/10
 
680
    user: http://localhost:9001/3.0/users/7
590
681
 
591
682
 
592
683
Changing delivery address
623
714
    ...
624
715
    entry 5:
625
716
        address: herb@example.com
 
717
        delivery_mode: regular
626
718
        fqdn_listname: ant@example.com
627
719
        http_etag: "..."
628
720
        role: member
631
723
    ...
632
724
    entry 10:
633
725
        address: herb@example.com
 
726
        delivery_mode: regular
634
727
        fqdn_listname: bee@example.com
635
728
        http_etag: "..."
636
729
        role: member
686
779
    ...           'hperson@example.com/memberships')
687
780
    entry 0:
688
781
        address: hperson@example.com
 
782
        delivery_mode: regular
689
783
        fqdn_listname: ant@example.com
690
784
        http_etag: "..."
691
785
        role: member
693
787
        user: http://localhost:9001/3.0/users/8
694
788
    entry 1:
695
789
        address: hperson@example.com
 
790
        delivery_mode: regular
696
791
        fqdn_listname: bee@example.com
697
792
        http_etag: "..."
698
793
        role: member