Skip to content

Commit 23b35e3

Browse files
committed
added additional function to aid in retrieving grouprights and accessrights
1 parent d47e202 commit 23b35e3

File tree

1 file changed

+54
-4
lines changed

1 file changed

+54
-4
lines changed

netdot/Client.py

Lines changed: 54 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -454,7 +454,7 @@ def get_contact_by_username(self, user):
454454

455455
def get_grouprights_by_username(self, user):
456456
"""
457-
Returns accessrights for a given username
457+
Returns grouprights for a given username
458458
459459
Arguments:
460460
user -- Netdot Username
@@ -467,14 +467,64 @@ def get_grouprights_by_username(self, user):
467467

468468
for values in contacts['Contact'].values():
469469
try:
470-
groupright.update(self.get_grouprights_by_conlist_id(values['contactlist_xlink'].split('/')[1]))
470+
gr = self.get_grouprights_by_conlist_id(values['contactlist_xlink'].split('/')[1]).values()[0]
471+
groupright.update(gr)
471472
except requests.HTTPError:
472473
# there weren't any grouprights associated with that conlist. No big deal.
473474
pass
474475

475-
return groupright
476+
return {'GroupRight': groupright}
476477

477-
def get_access_right_by_id
478+
def get_accessright_by_id(self, id):
479+
"""
480+
Returns accessrights for a given id
481+
482+
Arguments:
483+
user -- Netdot Username
484+
485+
Usage:
486+
response = netdot.Client.get_accessrights_by_id("id")
487+
"""
488+
return self.get('/accessright/'+id)
489+
490+
def get_accessrights_by_username(self, user):
491+
"""
492+
Returns accessrights for a given user
493+
494+
Arguments:
495+
user -- Netdot Username
496+
497+
Usage:
498+
response = netdot.Client.get_accessrights_by_username("user")
499+
"""
500+
accessrights = {}
501+
grouprights = self.get_grouprights_by_username(user)
502+
for vals in grouprights['GroupRight'].values():
503+
# some values return in the grouprights don't have an accessright_xlink
504+
if vals.has_key('accessright_xlink'):
505+
# split the accessright_xlink value to get the ID
506+
ar = self.get_accessright_by_id(vals['accessright_xlink'].split('/')[1])
507+
accessrights.update({ar['id']: ar})
508+
else:
509+
pass
510+
return {'AccessRight': accessrights}
511+
512+
def get_device_accessrights_by_username(self, user):
513+
"""
514+
Returns devices rights for a given user
515+
516+
Arguments:
517+
user -- Netdot Username
518+
519+
Usage:
520+
response = netdot.Client.get_device_accessrights_by_username("user")
521+
"""
522+
devices = {}
523+
accessrights = self.get_accessrights_by_username(user)
524+
for ars in accessrights['AccessRight'].values():
525+
if ars['object_class'] == 'Device':
526+
devices.update(self.get_object_by_id('Device', ars['object_id'])['Device'])
527+
return {'Device': devices}
478528

479529
def get_grouprights_by_conlist_id(self, id):
480530
"""

0 commit comments

Comments
 (0)