annotate sat_pubsub/const.py @ 294:df1edebb0466

PEP implementation, draft (huge patch sorry): /!\ database schema has changed ! /!\ - whole PEP behaviour is not managed yet - if the stanza is delegated, PEP is assumed - fixed potential SQL injection in pgsql_storage - publish notifications manage PEP - added retract notifications (if "notify" attribute is present), with PEP handling - a publisher can't replace an item he didn't publised anymore - /!\ schema has changed, sat_pubsub_update_0_1.sql update it - sat_pubsub_update_0_1.sql also fixes bad items coming from former version of SàT
author Goffi <goffi@goffi.org>
date Sun, 16 Aug 2015 01:32:42 +0200
parents 002c59dbc23f
children 05c875a13a62
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
250
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
1 #!/usr/bin/python
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
2 #-*- coding: utf-8 -*-
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
3
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
4 """
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
5 Copyright (c) 2003-2011 Ralph Meijer
283
002c59dbc23f 2015 copyright dates update
Goffi <goffi@goffi.org>
parents: 280
diff changeset
6 Copyright (c) 2012, 2013, 2014, 2015 Jérôme Poisson
250
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
7
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
8
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
9 This program is free software: you can redistribute it and/or modify
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
10 it under the terms of the GNU Affero General Public License as published by
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
11 the Free Software Foundation, either version 3 of the License, or
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
12 (at your option) any later version.
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
13
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
14 This program is distributed in the hope that it will be useful,
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
15 but WITHOUT ANY WARRANTY; without even the implied warranty of
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
16 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
17 GNU Affero General Public License for more details.
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
18
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
19 You should have received a copy of the GNU Affero General Public License
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
20 along with this program. If not, see <http://www.gnu.org/licenses/>.
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
21 --
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
22
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
23 This program is based on Idavoll (http://idavoll.ik.nu/),
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
24 originaly written by Ralph Meijer (http://ralphm.net/blog/)
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
25 It is sublicensed under AGPL v3 (or any later version) as allowed by the original
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
26 license.
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
27
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
28 --
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
29
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
30 Here is a copy of the original license:
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
31
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
32 Copyright (c) 2003-2011 Ralph Meijer
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
33
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
34 Permission is hereby granted, free of charge, to any person obtaining
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
35 a copy of this software and associated documentation files (the
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
36 "Software"), to deal in the Software without restriction, including
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
37 without limitation the rights to use, copy, modify, merge, publish,
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
38 distribute, sublicense, and/or sell copies of the Software, and to
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
39 permit persons to whom the Software is furnished to do so, subject to
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
40 the following conditions:
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
41
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
42 The above copyright notice and this permission notice shall be
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
43 included in all copies or substantial portions of the Software.
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
44
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
45 THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
46 EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
47 MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
48 NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
49 LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
50 OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
51 WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
52
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
53 """
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
54
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
55
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
56 NS_GROUPBLOG_PREFIX = 'urn:xmpp:groupblog:'
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
57 NS_ITEM_CONFIG = "http://jabber.org/protocol/pubsub#item-config"
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
58 OPT_ACCESS_MODEL = 'pubsub#access_model'
eb14b8d30cba fine tuning per-item permissions
Goffi <goffi@goffi.org>
parents:
diff changeset
59 OPT_ROSTER_GROUPS_ALLOWED = 'pubsub#roster_groups_allowed'
294
df1edebb0466 PEP implementation, draft (huge patch sorry):
Goffi <goffi@goffi.org>
parents: 283
diff changeset
60 OPT_PERSIST_ITEMS = "pubsub#persist_items"
df1edebb0466 PEP implementation, draft (huge patch sorry):
Goffi <goffi@goffi.org>
parents: 283
diff changeset
61 OPT_DELIVER_PAYLOADS = "pubsub#deliver_payloads"
df1edebb0466 PEP implementation, draft (huge patch sorry):
Goffi <goffi@goffi.org>
parents: 283
diff changeset
62 OPT_SEND_LAST_PUBLISHED_ITEM = "pubsub#send_last_published_item"
260
f0cd02c032b3 publish model management
Goffi <goffi@goffi.org>
parents: 259
diff changeset
63 OPT_PUBLISH_MODEL = 'pubsub#publish_model'
259
6fe7da6b4b32 node "roster" access model management
Goffi <goffi@goffi.org>
parents: 255
diff changeset
64 VAL_AMODEL_OPEN = 'open'
6fe7da6b4b32 node "roster" access model management
Goffi <goffi@goffi.org>
parents: 255
diff changeset
65 VAL_AMODEL_ROSTER = 'roster'
6fe7da6b4b32 node "roster" access model management
Goffi <goffi@goffi.org>
parents: 255
diff changeset
66 VAL_AMODEL_JID = 'jid'
6fe7da6b4b32 node "roster" access model management
Goffi <goffi@goffi.org>
parents: 255
diff changeset
67 VAL_AMODEL_DEFAULT = VAL_AMODEL_OPEN
260
f0cd02c032b3 publish model management
Goffi <goffi@goffi.org>
parents: 259
diff changeset
68 VAL_PMODEL_PUBLISHERS = 'publishers'
f0cd02c032b3 publish model management
Goffi <goffi@goffi.org>
parents: 259
diff changeset
69 VAL_PMODEL_SUBSCRIBERS = 'subscribers'
f0cd02c032b3 publish model management
Goffi <goffi@goffi.org>
parents: 259
diff changeset
70 VAL_PMODEL_OPEN = 'open'
f0cd02c032b3 publish model management
Goffi <goffi@goffi.org>
parents: 259
diff changeset
71 VAL_PMODEL_DEFAULT = VAL_PMODEL_PUBLISHERS
263
9dfd3890e646 added the constant FLAG_RETRACT_ALLOW_PUBLISHER to allow a publisher to retract an item he has published in a node of "open" publish model.
souliane <souliane@mailoo.org>
parents: 260
diff changeset
72
294
df1edebb0466 PEP implementation, draft (huge patch sorry):
Goffi <goffi@goffi.org>
parents: 283
diff changeset
73 # FLAG_RETRACT_ALLOW_PUBLISHER = True # XXX: see the method BackendService._doRetractAllowPublisher
278
8a71486c3e95 implements RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents: 263
diff changeset
74 FLAG_ENABLE_RSM = True
8a71486c3e95 implements RSM (XEP-0059)
souliane <souliane@mailoo.org>
parents: 263
diff changeset
75 VAL_RSM_MAX_DEFAULT = 10
280
798cb8962c0b MAM (XEP-0313) support: first draft
souliane <souliane@mailoo.org>
parents: 278
diff changeset
76 FLAG_ENABLE_MAM = True