9c3e66695d38751d98e29ea7549345bd91fcef23
[plcapi.git] / PLC / AuthorizeHelpers.py
1 #
2 # Thierry Parmentelat - INRIA
3 #
4 from PLC.Faults import *
5
6 class AuthorizeHelpers:
7
8     @staticmethod
9     def interface_belongs_to_person (api,interface, person):
10         try:
11             node=api.GetNodes(interface['node_id'])[0]
12             return node_belong_to_person (api, node, person)
13         except:
14             return False
15
16     @staticmethod
17     def node_belongs_to_person (api, node, person):
18         try:
19             site=api.GetSites(node['site_id'])[0]
20             return person_belongs_to_site (api, person, site)
21         except:
22             return False
23
24     @staticmethod
25     def person_belongs_to_site (api, person, site):
26         return site['site_id'] in person['site_ids']
27
28     @staticmethod
29     def person_access_tag_type (api, person, tag_type):
30         return len(set(person['roles']).intersection(set(tag_type['roles'])))!=0
31
32     @staticmethod
33     def person_access_person (api, caller_person, subject_person):
34         # keep it simple for now - could be a bit more advanced for PIs maybe
35         return caller_person['person_id'] == subject_person['person_id']
36
37
38