Creates a new user account.
| 155 | |
| 156 | |
| 157 | class Useradd(Macro): |
| 158 | """Creates a new user account.""" |
| 159 | |
| 160 | def name(self): |
| 161 | return "useradd" |
| 162 | |
| 163 | def description(self): |
| 164 | return "Create a new user account" |
| 165 | |
| 166 | def add_parser_args(self): |
| 167 | self.parser.add_argument('login', help='User login') |
| 168 | self.parser.add_argument('-P', '--password', help='Password') |
| 169 | self.parser.add_argument('--cred', help='List of comma-separated credentials in format "(email|tel):value1,(email|tel):value2,..."') |
| 170 | self.parser.add_argument('--name', help='Public name of the user') |
| 171 | self.parser.add_argument('--comment', help='Private comment') |
| 172 | self.parser.add_argument('--note', help='Public description') |
| 173 | self.parser.add_argument('--trusted', help='Add/remove trusted marker: verified, staff, danger') |
| 174 | self.parser.add_argument('--tags', help='Comma-separated list of tags') |
| 175 | self.parser.add_argument('--avatar', help='Path to avatar file') |
| 176 | self.parser.add_argument('--auth', help='Default auth acs') |
| 177 | self.parser.add_argument('--anon', help='Default anon acs') |
| 178 | |
| 179 | def expand(self, id, cmd, args): |
| 180 | if not cmd.login: |
| 181 | return None |
| 182 | if not cmd.password: |
| 183 | stdoutln("Password --password must be specified") |
| 184 | return None |
| 185 | if not cmd.cred: |
| 186 | stdoutln("Must specify at least one credential: --cred.") |
| 187 | return None |
| 188 | varname = cmd.varname if hasattr(cmd, 'varname') and cmd.varname else '$temp' |
| 189 | new_cmd = '.must ' + varname + ' acc --scheme basic --secret="%s:%s" --cred="%s"' % (cmd.login, cmd.password, cmd.cred) |
| 190 | if cmd.name: |
| 191 | new_cmd += ' --fn="%s"' % cmd.name |
| 192 | if cmd.comment: |
| 193 | new_cmd += ' --private="%s"' % cmd.comment |
| 194 | if cmd.note is not None: |
| 195 | set_cmd += ' --note="%s"' % cmd.note |
| 196 | if cmd.trusted is not None: |
| 197 | set_cmd += ' --trusted="%s" --as_root' % cmd.trusted |
| 198 | if cmd.tags: |
| 199 | new_cmd += ' --tags="%s"' % cmd.tags |
| 200 | if cmd.avatar: |
| 201 | new_cmd += ' --photo="%s"' % cmd.avatar |
| 202 | if cmd.auth: |
| 203 | new_cmd += ' --auth="%s"' % cmd.auth |
| 204 | if cmd.anon: |
| 205 | new_cmd += ' --anon="%s"' % cmd.anon |
| 206 | return [new_cmd] |
| 207 | |
| 208 | |
| 209 | class Chacs(Macro): |