116 ('smtp', 1), ('pop3', 1), ('imap', 1), ('managesieve', 1)) |
116 ('smtp', 1), ('pop3', 1), ('imap', 1), ('managesieve', 1)) |
117 elif sys.argv[1] in ['gu', 'getuser']: |
117 elif sys.argv[1] in ['gu', 'getuser']: |
118 order = (('uid', 1), ('gid', 1), ('address', 0)) |
118 order = (('uid', 1), ('gid', 1), ('address', 0)) |
119 return order |
119 return order |
120 |
120 |
121 |
|
122 def _printInfo(info, title): |
121 def _printInfo(info, title): |
123 msg = '%s %s' % (title, _('information')) |
122 msg = '%s %s' % (title, _('information')) |
124 print '%s\n%s' % (msg, '-'*len(msg)) |
123 print '%s\n%s' % (msg, '-'*len(msg)) |
125 for k,u in _getOrder(): |
124 for k,u in _getOrder(): |
126 if u: |
125 if u: |
148 print '\t -> %s' % target |
147 print '\t -> %s' % target |
149 else: |
148 else: |
150 print _('\tNone') |
149 print _('\tNone') |
151 print |
150 print |
152 |
151 |
|
152 def _printDomList(domains): |
|
153 if argc < 3: |
|
154 msg = _('Available domains') |
|
155 else: |
|
156 msg = _('Matching domains') |
|
157 print '%s\n%s' % (msg, '-'*len(msg)) |
|
158 if not len(domains): |
|
159 print _('\tNone') |
|
160 else: |
|
161 for domain in domains: |
|
162 d = domain[0] |
|
163 if not d.startswith('xn--'): |
|
164 print '\t%s' % d |
|
165 else: |
|
166 print "\t%s (%s)" % (d, vmm.ace2idna(d)) |
|
167 print |
|
168 |
153 def domain_add(): |
169 def domain_add(): |
154 global argc |
|
155 if argc < 3: |
170 if argc < 3: |
156 usage(EXIT.MISSING_ARGS, _('Missing domain name.')) |
171 usage(EXIT.MISSING_ARGS, _('Missing domain name.')) |
157 elif argc < 4: |
172 elif argc < 4: |
158 vmm.domain_add(sys.argv[2].lower()) |
173 vmm.domain_add(sys.argv[2].lower()) |
159 else: |
174 else: |
160 vmm.domain_add(sys.argv[2].lower(), sys.argv[3]) |
175 vmm.domain_add(sys.argv[2].lower(), sys.argv[3]) |
161 |
176 |
162 def domain_delete(): |
177 def domain_delete(): |
163 global argc |
|
164 if argc < 3: |
178 if argc < 3: |
165 usage(EXIT.MISSING_ARGS, _('Missing domain name.')) |
179 usage(EXIT.MISSING_ARGS, _('Missing domain name.')) |
166 elif argc < 4: |
180 elif argc < 4: |
167 vmm.domain_delete(sys.argv[2].lower()) |
181 vmm.domain_delete(sys.argv[2].lower()) |
168 else: |
182 else: |
169 vmm.domain_delete(sys.argv[2].lower(), sys.argv[3]) |
183 vmm.domain_delete(sys.argv[2].lower(), sys.argv[3]) |
170 |
184 |
171 def domain_info(): |
185 def domain_info(): |
172 global argc |
|
173 if argc < 3: |
186 if argc < 3: |
174 usage(EXIT.MISSING_ARGS, _('Missing domain name.')) |
187 usage(EXIT.MISSING_ARGS, _('Missing domain name.')) |
175 elif argc < 4: |
188 elif argc < 4: |
176 _printInfo(vmm.domain_info(sys.argv[2].lower()), 'Domain') |
189 _printInfo(vmm.domain_info(sys.argv[2].lower()), 'Domain') |
177 else: |
190 else: |
179 _printInfo(infos[0], 'Domain') |
192 _printInfo(infos[0], 'Domain') |
180 _printUsers(infos[1], _('accounts')) |
193 _printUsers(infos[1], _('accounts')) |
181 _printUsers(infos[2], _('aliases')) |
194 _printUsers(infos[2], _('aliases')) |
182 |
195 |
183 def domain_transport(): |
196 def domain_transport(): |
184 global argc |
|
185 if argc < 3: |
197 if argc < 3: |
186 usage(EXIT.MISSING_ARGS, _('Missing domain name and new transport.')) |
198 usage(EXIT.MISSING_ARGS, _('Missing domain name and new transport.')) |
187 if argc < 4: |
199 if argc < 4: |
188 usage(EXIT.MISSING_ARGS, _('Missing new transport.')) |
200 usage(EXIT.MISSING_ARGS, _('Missing new transport.')) |
189 elif argc < 5: |
201 elif argc < 5: |
190 vmm.domain_transport(sys.argv[2].lower(), sys.argv[3]) |
202 vmm.domain_transport(sys.argv[2].lower(), sys.argv[3]) |
191 else: |
203 else: |
192 vmm.domain_transport(sys.argv[2].lower(), sys.argv[3], sys.argv[4]) |
204 vmm.domain_transport(sys.argv[2].lower(), sys.argv[3], sys.argv[4]) |
193 |
205 |
194 def user_add(): |
206 def user_add(): |
195 global argc |
|
196 if argc < 3: |
207 if argc < 3: |
197 usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) |
208 usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) |
198 elif argc < 4: |
209 elif argc < 4: |
199 password = _readpass() |
210 password = _readpass() |
200 else: |
211 else: |
201 password = sys.argv[3] |
212 password = sys.argv[3] |
202 vmm.user_add(sys.argv[2].lower(), password) |
213 vmm.user_add(sys.argv[2].lower(), password) |
203 |
214 |
204 def user_delete(): |
215 def user_delete(): |
205 global argc |
|
206 if argc < 3: |
216 if argc < 3: |
207 usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) |
217 usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) |
208 else: |
218 else: |
209 vmm.user_delete(sys.argv[2].lower()) |
219 vmm.user_delete(sys.argv[2].lower()) |
210 |
220 |
211 def user_info(): |
221 def user_info(): |
212 global argc |
|
213 if argc < 3: |
222 if argc < 3: |
214 usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) |
223 usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) |
215 elif argc < 4: |
224 elif argc < 4: |
216 _printInfo(vmm.user_info(sys.argv[2].lower()), 'Account') |
225 _printInfo(vmm.user_info(sys.argv[2].lower()), 'Account') |
217 else: |
226 else: |
218 _printInfo(vmm.user_info(sys.argv[2].lower(), True), 'Account') |
227 _printInfo(vmm.user_info(sys.argv[2].lower(), True), 'Account') |
219 |
228 |
220 def user_name(): |
229 def user_name(): |
221 global argc |
|
222 if argc < 3: |
230 if argc < 3: |
223 usage(EXIT.MISSING_ARGS, _('Missing e-mail address and users name.')) |
231 usage(EXIT.MISSING_ARGS, _('Missing e-mail address and users name.')) |
224 if argc < 4: |
232 if argc < 4: |
225 usage(EXIT.MISSING_ARGS, _('Missing users name.')) |
233 usage(EXIT.MISSING_ARGS, _('Missing users name.')) |
226 else: |
234 else: |
227 vmm.user_name(sys.argv[2].lower(), sys.argv[3]) |
235 vmm.user_name(sys.argv[2].lower(), sys.argv[3]) |
228 |
236 |
229 def user_transport(): |
237 def user_transport(): |
230 global argc |
|
231 if argc < 3: |
238 if argc < 3: |
232 usage(EXIT.MISSING_ARGS, _('Missing e-mail address and transport.')) |
239 usage(EXIT.MISSING_ARGS, _('Missing e-mail address and transport.')) |
233 if argc <4: |
240 if argc <4: |
234 usage(EXIT.MISSING_ARGS, _('Missing transport.')) |
241 usage(EXIT.MISSING_ARGS, _('Missing transport.')) |
235 else: |
242 else: |
236 vmm.user_transport(sys.argv[2].lower(), sys.argv[3]) |
243 vmm.user_transport(sys.argv[2].lower(), sys.argv[3]) |
237 |
244 |
238 def user_enable(): |
245 def user_enable(): |
239 global argc |
|
240 if argc < 3: |
246 if argc < 3: |
241 usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) |
247 usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) |
242 elif argc < 4: |
248 elif argc < 4: |
243 vmm.user_enable(sys.argv[2].lower()) |
249 vmm.user_enable(sys.argv[2].lower()) |
244 else: |
250 else: |
245 vmm.user_enable(sys.argv[2].lower(), sys.argv[3].lower()) |
251 vmm.user_enable(sys.argv[2].lower(), sys.argv[3].lower()) |
246 |
252 |
247 def user_disable(): |
253 def user_disable(): |
248 global argc |
|
249 if argc < 3: |
254 if argc < 3: |
250 usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) |
255 usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) |
251 elif argc < 4: |
256 elif argc < 4: |
252 vmm.user_disable(sys.argv[2].lower()) |
257 vmm.user_disable(sys.argv[2].lower()) |
253 else: |
258 else: |
254 vmm.user_disable(sys.argv[2].lower(), sys.argv[3].lower()) |
259 vmm.user_disable(sys.argv[2].lower(), sys.argv[3].lower()) |
255 |
260 |
256 def user_password(): |
261 def user_password(): |
257 global argc |
|
258 if argc < 3: |
262 if argc < 3: |
259 usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) |
263 usage(EXIT.MISSING_ARGS, _('Missing e-mail address.')) |
260 elif argc < 4: |
264 elif argc < 4: |
261 password = _readpass() |
265 password = _readpass() |
262 else: |
266 else: |
263 password = sys.argv[3] |
267 password = sys.argv[3] |
264 vmm.user_password(sys.argv[2].lower(), password) |
268 vmm.user_password(sys.argv[2].lower(), password) |
265 |
269 |
266 def alias_add(): |
270 def alias_add(): |
267 global argc |
|
268 if argc < 4: |
271 if argc < 4: |
269 usage(EXIT.MISSING_ARGS, _('Missing alias address and destination.')) |
272 usage(EXIT.MISSING_ARGS, _('Missing alias address and destination.')) |
270 else: |
273 else: |
271 vmm.alias_add(sys.argv[2].lower(), sys.argv[3]) |
274 vmm.alias_add(sys.argv[2].lower(), sys.argv[3]) |
272 |
275 |
273 def alias_info(): |
276 def alias_info(): |
274 global argc |
|
275 if argc < 3: |
277 if argc < 3: |
276 usage(EXIT.MISSING_ARGS, _('Missing alias address')) |
278 usage(EXIT.MISSING_ARGS, _('Missing alias address')) |
277 else: |
279 else: |
278 _printAliases(sys.argv[2], vmm.alias_info(sys.argv[2].lower())) |
280 _printAliases(sys.argv[2], vmm.alias_info(sys.argv[2].lower())) |
279 |
281 |
280 def alias_delete(): |
282 def alias_delete(): |
281 global argc |
|
282 if argc < 3: |
283 if argc < 3: |
283 usage(EXIT.MISSING_ARGS, _('Missing alias address')) |
284 usage(EXIT.MISSING_ARGS, _('Missing alias address')) |
284 elif argc < 4: |
285 elif argc < 4: |
285 vmm.alias_delete(sys.argv[2].lower()) |
286 vmm.alias_delete(sys.argv[2].lower()) |
286 else: |
287 else: |
287 vmm.alias_delete(sys.argv[2].lower(), sys.argv[3].lower()) |
288 vmm.alias_delete(sys.argv[2].lower(), sys.argv[3].lower()) |
288 |
289 |
289 def user_byID(): |
290 def user_byID(): |
290 global argc |
|
291 if argc < 3: |
291 if argc < 3: |
292 usage(EXIT.MISSING_ARGS, _('Missing userid')) |
292 usage(EXIT.MISSING_ARGS, _('Missing userid')) |
293 else: |
293 else: |
294 _printInfo(vmm.user_byID(sys.argv[2]), 'Account') |
294 _printInfo(vmm.user_byID(sys.argv[2]), 'Account') |
|
295 |
|
296 def domain_list(): |
|
297 if argc < 3: |
|
298 _printDomList(vmm.domain_list()) |
|
299 else: |
|
300 _printDomList(vmm.domain_list(sys.argv[2].lower())) |
295 |
301 |
296 def showWarnings(): |
302 def showWarnings(): |
297 if vmm.hasWarnings(): |
303 if vmm.hasWarnings(): |
298 print _('\nWarnings:') |
304 print _('\nWarnings:') |
299 for w in vmm.getWarnings(): |
305 for w in vmm.getWarnings(): |