Skip to content

Commit 7290eb5

Browse files
Ramkishor ChaladiRamkishor Chaladi
authored andcommitted
added new feature with enabled/disabled
1 parent fe65dc3 commit 7290eb5

3 files changed

Lines changed: 94 additions & 0 deletions

File tree

SoftLayer/CLI/routes.py

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -403,6 +403,8 @@
403403
('user:device-access', 'SoftLayer.CLI.user.device_access:cli'),
404404
('user:vpn-manual', 'SoftLayer.CLI.user.vpn_manual:cli'),
405405
('user:vpn-subnet', 'SoftLayer.CLI.user.vpn_subnet:cli'),
406+
('user:vpn-enable', 'SoftLayer.CLI.user.vpn_enable_or_disable:vpn_enable'),
407+
('user:vpn-disable', 'SoftLayer.CLI.user.vpn_enable_or_disable:vpn_disable'),
406408
('user:remove-access', 'SoftLayer.CLI.user.remove_access:cli'),
407409
('user:grant-access', 'SoftLayer.CLI.user.grant_access:cli'),
408410
('user:vpn-password', 'SoftLayer.CLI.user.vpn_password:cli'),
Lines changed: 67 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,67 @@
1+
"""Enable or Disable vpn for a user."""
2+
# :license: MIT, see LICENSE for more details.
3+
4+
5+
import click
6+
7+
import SoftLayer
8+
from SoftLayer.CLI import environment
9+
from SoftLayer.CLI import helpers
10+
from SoftLayer.CLI import exceptions
11+
from SoftLayer.CLI import formatting
12+
13+
14+
@click.command(cls=SoftLayer.CLI.command.SLCommand, )
15+
@click.argument('user')
16+
@environment.pass_env
17+
def vpn_enable(env, user):
18+
"""Enable vpn for a user.
19+
20+
Example::
21+
slcli user vpn-enable 1234567
22+
"""
23+
24+
mgr = SoftLayer.UserManager(env.client)
25+
user_id = helpers.resolve_id(mgr.resolve_ids, user, 'username')
26+
27+
if not (env.skip_confirmations or
28+
formatting.confirm(f'This will enable vpn with the id {user_id}. '
29+
'Continue?')):
30+
raise exceptions.CLIAbort('Aborted.')
31+
32+
result = mgr.vpn_enable_or_disable(user_id, True)
33+
message = f"{user} vpn is successfully enabled"
34+
35+
if result:
36+
click.secho(message, fg='green')
37+
else:
38+
click.secho(f"{user} vpn enable is not successful", fg='red')
39+
40+
41+
42+
43+
@click.command(cls=SoftLayer.CLI.command.SLCommand, )
44+
@click.argument('user')
45+
@environment.pass_env
46+
def vpn_disable(env, user):
47+
"""Disable vpn for a user.
48+
49+
Example::
50+
slcli user vpn-disable 1234567
51+
"""
52+
53+
mgr = SoftLayer.UserManager(env.client)
54+
user_id = helpers.resolve_id(mgr.resolve_ids, user, 'username')
55+
56+
if not (env.skip_confirmations or
57+
formatting.confirm(f'This will disable vpn with the id {user_id}. '
58+
'Continue?')):
59+
raise exceptions.CLIAbort('Aborted.')
60+
61+
result = mgr.vpn_enable_or_disable(user_id, False)
62+
message = f"{user} vpn is successfully disabled"
63+
64+
if result:
65+
click.secho(message, fg='green')
66+
else:
67+
click.secho(f"{user} vpn disable is not successfully", fg='red')

SoftLayer/managers/user.py

Lines changed: 25 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -75,6 +75,17 @@ def get_current_user(self, objectmask=None):
7575
objectmask = "mask[userStatus[name], parent[id, username]]"
7676
return self.account_service.getCurrentUser(mask=objectmask)
7777

78+
# def hide_values(self, list_of_dicts, values_to_hide):
79+
# hide_list = []
80+
# for item in list_of_dicts:
81+
# hide_item = {
82+
# key: '' if value in values_to_hide
83+
# else value
84+
# for key, value in item.items()
85+
# }
86+
# hide_list.append(hide_item)
87+
# return hide_list
88+
7889
def get_all_permissions(self):
7990
"""Calls SoftLayer_User_CustomerPermissions_Permission::getAllObjects
8091
@@ -84,6 +95,9 @@ def get_all_permissions(self):
8495
if self.all_permissions is None:
8596
permissions = self.client.call('User_Permission_Action', 'getAllObjects')
8697
self.all_permissions = sorted(permissions, key=itemgetter('keyName'))
98+
# values_to_hide = ['ACCOUNT_SUMMARY_VIEW']
99+
# self.all_permissions = self.hide_values(self.all_permissions, values_to_hide)
100+
# print("ZZZZZ: ",type(itemgetter('keyName')))
87101
return self.all_permissions
88102

89103
def get_all_notifications(self):
@@ -361,6 +375,17 @@ def vpn_manual(self, user_id, value):
361375
user_object = {'vpnManualConfig': value}
362376
return self.edit_user(user_id, user_object)
363377

378+
def vpn_enable_or_disable(self, user_id, value):
379+
"""Enable or Disable vs power on/off for a user.
380+
381+
:param int user_id: User to edit.
382+
:param bool value: Value for vs power enable flag.
383+
or
384+
:param bool value: Value for vs power disable flag.
385+
"""
386+
user_object = {'sslVpnAllowedFlag': value}
387+
return self.edit_user(user_id, user_object)
388+
364389
def vpn_subnet_add(self, user_id, subnet_ids):
365390
"""Add subnets for a user.
366391

0 commit comments

Comments
 (0)