Automatically add and remove password database records.
[chopwood] / cmd-remote.py
1 ### -*-python-*-
2 ###
3 ### Remote service commands
4 ###
5 ### (c) 2013 Mark Wooding
6 ###
7
8 ###----- Licensing notice ---------------------------------------------------
9 ###
10 ### This file is part of Chopwood: a password-changing service.
11 ###
12 ### Chopwood is free software; you can redistribute it and/or modify
13 ### it under the terms of the GNU Affero General Public License as
14 ### published by the Free Software Foundation; either version 3 of the
15 ### License, or (at your option) any later version.
16 ###
17 ### Chopwood is distributed in the hope that it will be useful,
18 ### but WITHOUT ANY WARRANTY; without even the implied warranty of
19 ### MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
20 ### GNU Affero General Public License for more details.
21 ###
22 ### You should have received a copy of the GNU Affero General Public
23 ### License along with Chopwood; if not, see
24 ### <http://www.gnu.org/licenses/>.
25
26 import cmdutil as CU
27 import subcommand as SC
28 import util as U
29
30 @SC.subcommand(
31 'set', ['remote'], 'Set password for remote service',
32 params = [SC.Arg('service'), SC.Arg('user')])
33 def cmd_set_svc(service, user):
34 new = U.readline('new password')
35 svc = CU.check_service(service)
36 svc.setpasswd(user, new)
37
38 @SC.subcommand(
39 'clear', ['remote'], 'Clear password for remote service',
40 params = [SC.Arg('service'), SC.Arg('user')])
41 def cmd_set_svc(service, user):
42 svc = CU.check_service(service)
43 svc.clearpasswd(user)
44
45 @SC.subcommand(
46 'mkpwent', ['remote'], 'Create a new user record',
47 params = [SC.Arg('user'), SC.Arg('service')],
48 rparam = SC.Arg('fields'))
49 def cmd_mkpwent_svc(user, service, fields):
50 passwd = U.readline('new password')
51 svc = CU.check_service(service)
52 svc.mkpwent(user, passwd, fields)
53
54 @SC.subcommand(
55 'rmpwent', ['remote'], 'Remove an existing user record',
56 params = [SC.Arg('user'), SC.Arg('service')])
57 def cmd_rmpwent_svc(user, service):
58 svc = CU.check_service(service)
59 svc.rmpwent(user)
60
61 ###----- That's all, folks --------------------------------------------------