Ejemplo n.º 1
0
def listAllSubscriptionUsers(subscriptionId):
    try:
        AuthenticationHelper.ValidateSignitureAndAdmin(getToken())
        users = AgentUser.ListAllBySubscriptionId(subscriptionId)
        return jsonify(users), 200

    except Exception as e:
        return handleExceptions(e)
Ejemplo n.º 2
0
 def ListAllByUserObjectId(objectId):
     subscriptions = APISubscription.ListAll()
     result = []
     for subscription in subscriptions:
         users = AgentUser.ListAllBySubscriptionId(subscription.SubscriptionId)
         if any(user.ObjectId == objectId for user in users):
             result.append(subscription)
     return result
Ejemplo n.º 3
0
    def Get(subscriptionId, objectId="Admin"):
        """ the function will should only be called in local mode, otherwise, the keys might be out of date! """
        if objectId != "Admin":
            # validate the userId
            users = AgentUser.ListAllBySubscriptionId(subscriptionId)
            if not any(user.ObjectId == objectId for user in users):
                raise LunaUserException(HTTPStatus.FORBIDDEN, "The subscription {} doesn't exist or you don't have permission to access it.".format(subscriptionId))

        session = Session()
        subscription = session.query(APISubscription).filter_by(SubscriptionId = subscriptionId).first()
        session.close()
        if not subscription:
            return None
        subscription.PrimaryKey = key_vault_helper.get_secret(subscription.PrimaryKeySecretName)
        subscription.SecondaryKey = key_vault_helper.get_secret(subscription.SecondaryKeySecretName)
        if os.environ["AGENT_MODE"] == "LOCAL" and objectId == "Admin":
            subscription.Admins = AgentUser.ListAllAdmin()
            subscription.Users = AgentUser.ListAllBySubscriptionId(subscriptionId)
            subscription.AvailablePlans = ["Basic", "Premium"]
        return subscription
Ejemplo n.º 4
0
    def ValidateSignitureAndUser(token, subscriptionId=None):
        signiture = AuthenticationHelper.ValidateSigniture(token)
        objectId = signiture["oid"].lower()
        for user in AgentUser.ListAllAdmin():
            ## TODO: which property should we use here
            if objectId == user.ObjectId.lower():
                return "Admin"

        ## If the subscription id is specified, validate the user permission. Otherwise, return user name directly
        if subscriptionId:
            for user in AgentUser.ListAllBySubscriptionId(subscriptionId):
                if objectId == user.ObjectId.lower():
                    return objectId

            raise LunaUserException(HTTPStatus.FORBIDDEN, "The resource doesn't exist or you don't have permission to access it.")
        else:
            return objectId