def is_admin(user_name=None, customer_name=None): if not user_name: return False try: user = Hierarchy.get_user(user_name) if not user: return False if not customer_name: customer_name = user.current_customer groups = actions.get_groups_of_user(user_name=user_name, customer_name=customer_name) admin_perm = False for group in groups: if Permission.Admin in group[GroupKey.Permissions]: admin_perm = True break if (user_name == AdminUser or admin_perm): return True except Exception as e: logger.error("Unable to verify `%s` as admin" % user_name) logger.exception(e) return False
def get_groups_of_user(user_name=None, customer_name=None): """Gets the groups of a user. Args: name: Name of the groups wanted. Returns: A list of Group instances if found, empty list otherwise. """ if (not customer_name and not user_name): return [] g = [] try: # if Hierarchy.is_admin(user_name): # # print 'getting all groups' # # groups = Hierarchy.get_groups_of_customer( # customer_name # ) # # g = groups # # else: groups = actions.get_groups_of_user(user_name=user_name, customer_name=customer_name) for group in groups: try: tmp = Group(group[GroupKey.GroupName], group[GroupKey.CustomerId], group[GroupKey.Permissions], group[GroupKey.Id]) g.append(tmp) except Exception as e: logger.error('Skipping group %s.' % group) logger.exception(e) except Exception as e: logger.error('Could not get groups of user `%s`.' % user_name) logger.exception(e) return g