From: Thierry Parmentelat Date: Fri, 19 Nov 2010 11:25:28 +0000 (+0100) Subject: oops - missing file X-Git-Tag: plcapi-5.0-19~54 X-Git-Url: http://git.onelab.eu/?a=commitdiff_plain;h=e5ebd87bdca321476e0797c14891841bccdcc251;p=plcapi.git oops - missing file --- diff --git a/PLC/AuthorizeHelpers.py b/PLC/AuthorizeHelpers.py new file mode 100644 index 0000000..9c3e666 --- /dev/null +++ b/PLC/AuthorizeHelpers.py @@ -0,0 +1,38 @@ +# +# Thierry Parmentelat - INRIA +# +from PLC.Faults import * + +class AuthorizeHelpers: + + @staticmethod + def interface_belongs_to_person (api,interface, person): + try: + node=api.GetNodes(interface['node_id'])[0] + return node_belong_to_person (api, node, person) + except: + return False + + @staticmethod + def node_belongs_to_person (api, node, person): + try: + site=api.GetSites(node['site_id'])[0] + return person_belongs_to_site (api, person, site) + except: + return False + + @staticmethod + def person_belongs_to_site (api, person, site): + return site['site_id'] in person['site_ids'] + + @staticmethod + def person_access_tag_type (api, person, tag_type): + return len(set(person['roles']).intersection(set(tag_type['roles'])))!=0 + + @staticmethod + def person_access_person (api, caller_person, subject_person): + # keep it simple for now - could be a bit more advanced for PIs maybe + return caller_person['person_id'] == subject_person['person_id'] + + +