|
14 | 14 | from pathlib import Path
|
15 | 15 | import statistics as stat
|
16 | 16 | import sys
|
| 17 | +from venv import logger |
17 | 18 |
|
18 | 19 | from mongoengine import NotUniqueError, DoesNotExist
|
19 | 20 | from ponderosa import ArgParser, arggroup
|
@@ -691,7 +692,7 @@ def user_new_system(args: Namespace):
|
691 | 692 | except DuplicateGlobalUser as e:
|
692 | 693 | console.print(f'[red]{e}')
|
693 | 694 | else:
|
694 |
| - console.print(f'Created user {args.username} on all sites.') |
| 695 | + console.print(f'Created user {args.username}, use `cheeto db user add site` to add to sites and create home storages.') |
695 | 696 | if password is not None:
|
696 | 697 | console.print(f'Password: {password}')
|
697 | 698 | console.print('[red] Make sure to save this password in 1password!')
|
@@ -817,8 +818,23 @@ def user_remove_access(args: Namespace):
|
817 | 818 | @commands.register('database', 'user', 'add', 'site',
|
818 | 819 | help='Add user(s) to site')
|
819 | 820 | def user_add_site(args):
|
| 821 | + logger = logging.getLogger(__name__) |
820 | 822 | for user in args.user:
|
821 |
| - add_site_user(args.site, user) |
| 823 | + try: |
| 824 | + add_site_user(args.site, user) |
| 825 | + except DuplicateSiteUser: |
| 826 | + logger.info(f'User {user} already exists in site {args.site}.') |
| 827 | + if args.create_storage: |
| 828 | + logger.info(f'Creating home storage for {user} in site {args.site}.') |
| 829 | + try: |
| 830 | + create_home_storage(args.site, user) |
| 831 | + except (NotUniqueError, DuplicateKeyError): |
| 832 | + logger.info(f'Home storage for {user} in site {args.site} already exists.') |
| 833 | + |
| 834 | + |
| 835 | +@user_add_site.args() |
| 836 | +def _(parser: ArgParser): |
| 837 | + parser.add_argument('--create-storage', action='store_true', default=False) |
822 | 838 |
|
823 | 839 |
|
824 | 840 | @arggroup()
|
|
0 commit comments