Mercurial > libervia-backend
annotate frontends/src/jp/cmd_identity.py @ 2528:65e278997715
component file sharing: comments metadata:
new <comments> element is added to file metadata, it contains the URL to the comments virtual node and the count of comments (this way client knows if it make sense to request comments or not).
Fixed triggers in plugin XEP-0264 (return value was missing).
New trigger in plugin XEP-0329 to allow component to add metadata (used here for comments url).
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 16 Mar 2018 18:43:11 +0100 |
parents | 0046283a285d |
children |
rev | line source |
---|---|
2254
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
1 #!/usr/bin/env python2 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 # jp: a SàT command line tool |
2483 | 5 # Copyright (C) 2009-2018 Jérôme Poisson (goffi@goffi.org) |
2254
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 # This program is free software: you can redistribute it and/or modify |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 # it under the terms of the GNU Affero General Public License as published by |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 # the Free Software Foundation, either version 3 of the License, or |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
10 # (at your option) any later version. |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
11 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
12 # This program is distributed in the hope that it will be useful, |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
15 # GNU Affero General Public License for more details. |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 # You should have received a copy of the GNU Affero General Public License |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 # along with this program. If not, see <http://www.gnu.org/licenses/>. |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
20 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
21 import base |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 from sat.core.i18n import _ |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 from sat_frontends.jp.constants import Const as C |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 from functools import partial |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
25 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
26 __commands__ = ["Identity"] |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
27 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
28 # TODO: move date parsing to base, it may be useful for other commands |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
29 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
30 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
31 class Get(base.CommandBase): |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
32 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
33 def __init__(self, host): |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
34 base.CommandBase.__init__(self, |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
35 host, |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
36 'get', |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
37 use_output=C.OUTPUT_DICT, |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
38 use_verbose=True, |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
39 help=_(u'get identity data')) |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
40 self.need_loop=True |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
41 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
42 def add_parser_options(self): |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
43 self.parser.add_argument("jid", type=base.unicode_decoder, help=_(u"entity to check")) |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
44 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
45 def identityGetCb(self, data): |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
46 self.output(data) |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
47 self.host.quit() |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
48 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
49 def start(self): |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
50 jid_ = self.host.check_jids([self.args.jid])[0] |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
51 self.host.bridge.identityGet( |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
52 jid_, |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
53 self.profile, |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
54 callback=self.identityGetCb, |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
55 errback=partial(self.errback, |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
56 msg=_(u"can't get identity data: {}"), |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
57 exit_code=C.EXIT_BRIDGE_ERRBACK)) |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
58 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
59 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
60 class Set(base.CommandBase): |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
61 def __init__(self, host): |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
62 super(Set, self).__init__(host, 'set', help=_('modify an existing event')) |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
63 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
64 def add_parser_options(self): |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
65 self.parser.add_argument("-f", "--field", type=base.unicode_decoder, action='append', nargs=2, dest='fields', |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
66 metavar=(u"KEY", u"VALUE"), required=True, help=_(u"identity field(s) to set")) |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
67 self.need_loop=True |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
68 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
69 def start(self): |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
70 fields = dict(self.args.fields) |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
71 self.host.bridge.identitySet( |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
72 fields, |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
73 self.profile, |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
74 callback=self.host.quit, |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
75 errback=partial(self.errback, |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
76 msg=_(u"can't set identity data data: {}"), |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
77 exit_code=C.EXIT_BRIDGE_ERRBACK)) |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
78 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
79 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
80 class Identity(base.CommandBase): |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
81 subcommands = (Get, Set) |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
82 |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
83 def __init__(self, host): |
6297817c3dc9
jp (identity): new identity command to handle the new plugin identity in backend, and maybe other plugins like vcard in the future
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
84 super(Identity, self).__init__(host, 'identity', use_profile=False, help=_('identity management')) |