MCPcopy Index your code
hub / github.com/tinode/chat / Usermod

Class Usermod

tn-cli/macros.py:49–106  ·  view source on GitHub ↗

Modifies user account. The following modes are available: * suspend/unsuspend account. * change user's theCard (public name, description, avatar), private comment, trusted values. This macro requires root privileges.

Source from the content-addressed store, hash-verified

47
48
49class Usermod(Macro):
50 """Modifies user account. The following modes are available:
51 * suspend/unsuspend account.
52 * change user's theCard (public name, description, avatar), private comment, trusted values.
53
54 This macro requires root privileges."""
55
56 def name(self):
57 return "usermod"
58
59 def description(self):
60 return 'Modify user account (requires root privileges)'
61
62 def add_parser_args(self):
63 self.parser.add_argument('userid', help='user to update')
64 self.parser.add_argument('-L', '--suspend', action='store_true', help='Suspend account')
65 self.parser.add_argument('-U', '--unsuspend', action='store_true', help='Unsuspend account')
66 self.parser.add_argument('--name', help='Public name')
67 self.parser.add_argument('--avatar', help='Avatar file name')
68 self.parser.add_argument('--comment', help='Private comment on account')
69 self.parser.add_argument('--note', help='Account description')
70 self.parser.add_argument('--trusted', help='Add/remove trusted marker: verified, staff, danger')
71
72 def expand(self, id, cmd, args):
73 if not cmd.userid:
74 return None
75
76 # Suspend/unsuspend user.
77 if cmd.suspend or cmd.unsuspend:
78 if cmd.suspend and cmd.unsuspend:
79 stdoutln("Cannot both suspend and unsuspend account")
80 return None
81 new_cmd = 'acc --user %s --as_root' % cmd.userid
82 if cmd.suspend:
83 new_cmd += ' --suspend true'
84 if cmd.unsuspend:
85 new_cmd += ' --suspend false'
86 return [new_cmd]
87
88 # Change theCard.
89 varname = cmd.varname if hasattr(cmd, 'varname') and cmd.varname else '$temp'
90 set_cmd = '.must ' + varname + ' set me'
91 if cmd.name is not None:
92 set_cmd += ' --fn="%s"' % cmd.name
93 if cmd.avatar is not None:
94 set_cmd += ' --photo="%s"' % cmd.avatar
95 if cmd.comment is not None:
96 set_cmd += ' --private="%s"' % cmd.comment
97 if cmd.note is not None:
98 set_cmd += ' --note="%s"' % cmd.note
99 if cmd.trusted is not None:
100 set_cmd += ' --trusted="%s" --as_root' % cmd.trusted
101 old_user = tn_globals.DefaultUser if tn_globals.DefaultUser else ''
102 return ['.use --user %s' % cmd.userid,
103 '.must sub me',
104 set_cmd,
105 '.must leave me',
106 '.use --user "%s"' % old_user]

Callers 1

macros.pyFile · 0.85

Calls

no outgoing calls

Tested by

no test coverage detected