Exemple #1
0
    def post(self, request):
        """
        User Class:
        Create a new user in the database
        Returns success 200 OK - NO BODY on creation
        """
        params = request.DATA
        user = request.user
        if user.username is not 'admin' or not user.is_superuser:
            return Response('Only admin and superusers can create accounts',
                            status=status.HTTP_401_UNAUTHORIZED)

        username = params['username']
        #STEP1 Create the account on the provider
        provider = Provider.objects.get(location='EUCALYPTUS')
        driver = AccountDriver(provider)
        user = driver.add_user(username)
        #STEP2 Retrieve the identity from the provider
        if user:
            user_keys = driver.get_key(username)
            driver.create_key(user_keys)
        #STEP3 Return the new users serialized profile
        serialized_data = ProfileSerializer(user.get_profile()).data
        response = Response(serialized_data)
        return response