Exemplo n.º 1
0
    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
Exemplo n.º 2
0
    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