forked from ISPsystem/isp-maintenance
		
	Add: dci6 auth cli commands
This commit is contained in:
		
							parent
							
								
									dc6e61dcbe
								
							
						
					
					
						commit
						d4de07c340
					
				| @ -0,0 +1,10 @@ | ||||
| # █▀▄▀█ █▀▀ ▀█▀ ▄▀█ ▀ | ||||
| # █░▀░█ ██▄ ░█░ █▀█ ▄ | ||||
| # -- -- -- -- -- -- - | ||||
| __author__ = "MOIS3Y" | ||||
| __credits__ = ["Stepan Zhukovsky"] | ||||
| __license__ = "MIT" | ||||
| __version__ = "0.1.0" | ||||
| __maintainer__ = "Stepan Zhukovsky" | ||||
| __email__ = "stepan@zhukovsky.me" | ||||
| __status__ = "Development" | ||||
| @ -1,12 +1,99 @@ | ||||
| import click | ||||
| 
 | ||||
| 
 | ||||
| @click.group(help='access command for lazy example') | ||||
| @click.option('--debug/--no-debug', default=False) | ||||
| def cli(debug): | ||||
|     click.echo(f"Debug mode is {'on' if debug else 'off'}") | ||||
| from mgrctl.apps.dci6.auth import __version__ | ||||
| from mgrctl.api.dci6 import AuthAPI | ||||
| from mgrctl.utils.api_users import UserAPI | ||||
| 
 | ||||
| 
 | ||||
| @cli.command() | ||||
| def enable(): | ||||
|     click.echo('Access granted') | ||||
| user_cursor = UserAPI(callback_class=AuthAPI) | ||||
| 
 | ||||
| 
 | ||||
| @click.group(help='auth cmd for auth in DCImanager 6') | ||||
| @click.version_option( | ||||
|     version=__version__, | ||||
|     package_name='mgrctl.apps.dci6.auth', | ||||
|     message=__version__ | ||||
| ) | ||||
| def cli(): | ||||
|     pass | ||||
| 
 | ||||
| 
 | ||||
| @cli.group(help='Manage users') | ||||
| def user(): | ||||
|     pass | ||||
| 
 | ||||
| 
 | ||||
| @user.command(help='List users') | ||||
| @click.option( | ||||
|     '--all', | ||||
|     is_flag=True, | ||||
|     required=False, | ||||
|     help='Show all users' | ||||
| ) | ||||
| @click.option( | ||||
|     '--admins', | ||||
|     is_flag=True, | ||||
|     required=False, | ||||
|     help='Show all active admins', | ||||
| ) | ||||
| def ls(all, admins): | ||||
|     if all: | ||||
|         users = user_cursor.get_users(role='all') | ||||
|     elif admins: | ||||
|         users = user_cursor.get_users(role='admin') | ||||
|     else: | ||||
|         users = user_cursor.get_users(role='all') | ||||
|     # print users: | ||||
|     user_cursor.echo_users(users) | ||||
| 
 | ||||
| 
 | ||||
| @user.command( | ||||
|     help='Generate an access key and return auth link(s)', | ||||
|     no_args_is_help=True | ||||
| ) | ||||
| @click.option( | ||||
|     '--id', | ||||
|     '_id', | ||||
|     required=False, | ||||
|     type=int, | ||||
|     help='User id' | ||||
| ) | ||||
| @click.option( | ||||
|     '--count', | ||||
|     required=False, | ||||
|     type=int, | ||||
|     help='Number of access keys generated', | ||||
| ) | ||||
| @click.option( | ||||
|     '--random', | ||||
|     is_flag=True, | ||||
|     required=False, | ||||
|     help='Generate access key for the first available admin' | ||||
| ) | ||||
| @click.option( | ||||
|     '--interactive', | ||||
|     is_flag=True, | ||||
|     required=False, | ||||
|     help='Interactive mode, ignores other keys' | ||||
| ) | ||||
| def access(_id, count, interactive, random): | ||||
|     if _id and not count: | ||||
|         keys = user_cursor.get_access_keys(user=_id, count=1) | ||||
|     elif _id and count: | ||||
|         keys = user_cursor.get_access_keys(user=_id, count=count) | ||||
|     elif random: | ||||
|         admin = user_cursor.get_first_random_admin() | ||||
|         keys = user_cursor.get_access_keys(user=admin.get('id', 3)) | ||||
|     elif interactive: | ||||
|         user_cursor.gen_access_links_interactive() | ||||
|         return  # exit from func | ||||
|     else: | ||||
|         pass | ||||
|     links = user_cursor.gen_access_links(keys) | ||||
|     user_cursor.echo_access_links(links) | ||||
| 
 | ||||
| 
 | ||||
| @user.command(help='Generate API token for mgrctl user') | ||||
| def token(): | ||||
|     token = user_cursor.gen_api_token() | ||||
|     user_cursor.echo_api_token(token) | ||||
|  | ||||
| @ -7,7 +7,7 @@ from mgrctl.settings.general import INSTALLED_APPS | ||||
| @click.group( | ||||
|     cls=LazyGroup, | ||||
|     lazy_subcommands=INSTALLED_APPS['dci6'], | ||||
|     help='dci6 command for lazy example', | ||||
|     help='dci6 command for DCI6manager management', | ||||
| ) | ||||
| def cli(): | ||||
|     pass | ||||
|  | ||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user