def testUpdateUserLastName(self):
     User.add("user1", "passwd", '*****@*****.**', 'User1', 'One')
     u = User.getByUsername("user1")
     self.assertEqual(u.lastname, 'One')
     u.updateUserLastname('Two')
     u = User.getByUsername("user1")
     self.assertEqual(u.lastname, 'Two')
Exemple #2
0
 def basic(self, email="*****@*****.**", commit=False):
     username = email.split("@")[0]
     user = User(username=username, email=email)
     if commit:
         Profile.objects.create(user=user)
         user.save()
     return user
def PasswordRecoverView(request):
    if request.method == 'GET':
        # GET METHOD: Aca envio el formulario de recuperacion de contrasenia
        cookie = request.get_signed_cookie(key='lpwd_ok', default=None)
        if cookie is None:
            return render_to_response('passwd_recover.html',{},RequestContext(request))
        else:
            information = {}
            information['username'] = cookie.split('|')[0]
            information['email'] = cookie.split('|')[1]
            return render_to_response('passwd_recover_confirm.html',information,RequestContext(request))
    elif request.method == 'POST':
        information = {}
        information['username'] = request.POST.get('username', None)
        if not User.isValidUsername(information['username']):
            information['error'] = 'Por favor ingrese el nombre de usuario correctamente'
        else:
            user = User.getByUsername(information['username'])
            if user is None:
                information['error'] = 'El nombre de usuario especificado no existe'
            else:
                information['email'] = user.email;
                response = redirect('/passwd_recover') #Redirect to confirmation
                Crypt.set_secure_cookie(response,'lpwd_ok',information['username']+ '|' + information['email'] , expires=False,  time=7200)
                sendRecoveryEmail(user);
                return response
            
        return render_to_response('passwd_recover.html',information,RequestContext(request))
    else:
        raise PermissionDenied
 def testUsersCreation(self):
     u = User.add("user1", "passwd", '*****@*****.**')
     U = User.objects.filter(username="******").get()
     self.assertEqual(u, U)
     u2 = User.add("user2", 'passwd', '*****@*****.**')
     U = User.objects.filter(username="******").get()
     self.assertEqual(u2, U)
	def testUsersCreation(self):
		u = User.add("user1","passwd",'*****@*****.**')
		U = User.objects.filter(username = "******").get()
		self.assertEqual(u, U)
		u2 = User.add("user2", 'passwd','*****@*****.**')
		U = User.objects.filter(username = "******").get()
		self.assertEqual(u2, U)
	def testUpdateUserLastName(self):
		User.add("user1","passwd",'*****@*****.**','User1','One')
		u = User.getByUsername("user1")
		self.assertEqual(u.lastname, 'One')
		u.updateUserLastname('Two')
		u = User.getByUsername("user1")
		self.assertEqual(u.lastname, 'Two')
	def testUpdateUserEmail(self):
		User.add("user1","passwd",'*****@*****.**','User1','One')
		u = User.getByUsername("user1")
		self.assertEqual(u.email, '*****@*****.**')
		u.updateUserEmail('*****@*****.**')
		u = User.getByUsername("user1")
		self.assertEqual(u.email, '*****@*****.**')
 def testUpdateUserEmail(self):
     User.add("user1", "passwd", '*****@*****.**', 'User1', 'One')
     u = User.getByUsername("user1")
     self.assertEqual(u.email, '*****@*****.**')
     u.updateUserEmail('*****@*****.**')
     u = User.getByUsername("user1")
     self.assertEqual(u.email, '*****@*****.**')
Exemple #9
0
def send_xlm_vault_transaction(user, destination, amount):
    from stellar_base.transaction import Transaction
    wallet = VaultWallet.objects.get(username=user, name="xlm")
    User = Keypair.from_seed(wallet.private)
    horizon = horizon_testnet()
    asset = Asset.native()

    op = Payment({
        'destination': destination,
        'asset': asset,
        'amount': amount
    })
    msg = TextMemo('From test net !')

    sequence = horizon.account(User.address().decode('utf-8')).get('sequence')

    tx = Transaction(
        source=User.address().decode(),
        opts={
            'sequence': sequence,
            'memo': msg,
            'operations': [
                op,
            ],
        },
    )
    try:
        envelope = Te(tx=tx, opts={"network_id": "TESTNET"})
        envelope.sign(User)
        xdr = envelope.xdr()
        response = horizon.submit(xdr)
        return response['hash']
    except:
        return {"error": ""}
def SignUpView(request):
    if request.method == 'GET':
        # GET METHOD: Aca envio el formulario de creacion de usuario
        return render_to_response('signup.html',{},RequestContext(request))
    elif request.method == 'POST':
        # POST METHOD: Aca valido la informacion de creacion de usuario
        information = {}
        valid = True
        
        # Obtengo la informacon ingresada
        information['username'] = request.POST.get('username', '')
        password = request.POST.get('password', '')
        vpassword = request.POST.get('vpassword', '')
        information['email'] = request.POST.get('email', '')
        information['name'] = request.POST.get('name', '')
        information['lastname'] = request.POST.get('lastname', '')
        information['country'] = request.POST.get('country', '')
        leave_open = request.POST.get('remember',None)
        
        # Valido los datos.
        if not User.isValidUsername(information['username']):
            # Marco el error de username invaludo
            valid = False
            information['username_error'] = 'El nombre de usuario no es valido'
        elif not User.isValidPassword(password):
            # Marco el error de password invaludo
            valid = False
            information['password'] = ''
            information['password_error'] = 'La clave no es valida'
        elif password != vpassword:
            # Marco el error de passwords distintas
            valid = False
            information['vpassword'] = ''
            information['password_error'] = 'Las claves no coinciden'
        elif not User.isValidEmail(information['email']):
            # Marco el error de password invaludo
            valid = False
            information['email_error'] = 'El email ingresado no es valido'
        else:
            user = User.add(information['username'],password,information['email'],information['name'], information['lastname']);
            if  user == None:
                # Marco el error de usuario ya existente
                valid = False
                information['username_error'] = 'El usuario ya existe. Ingrese otro'
        
        
        if valid == False:
            # Hubo un error al crear el usuario. Vuelvo a enviar el formulario de creacion con los errores respectivos
            return render_to_response('signup.html',information ,RequestContext(request))
        else:
            # Se creo un usuario, redirijo pero seteo la cookie para identificar
            response = redirect('/')
            response.set_signed_cookie('user_id', information['username'])
            return response
    else:
        raise PermissionDenied
def SignUpAPI(request):
    if request.method == 'GET':
        # GET METHOD: Aca envio el formulario de creacion de usuario
        return render_to_response('signup.html',{},RequestContext(request)) 
    elif request.method == 'POST':
        # POST METHOD: Aca valido la informacion de creacion de usuario
        information = {}
        
        # Obtengo la informacon ingresada
        information['username'] = request.POST.get('username', '')
        password = request.POST.get('password', '')
        vpassword = request.POST.get('vpassword', '')
        information['email'] = request.POST.get('email', '')
        information['name'] = request.POST.get('name', '')
        information['lastname'] = request.POST.get('lastname', '')
        information['country'] = request.POST.get('country', '')
        information['error_code'] = 0 # NO ERROR!
        leave_open = request.POST.get('remember',None)
        
        # Valido los datos.
        if not User.isValidUsername(information['username']):
            information['error_code'] = 1 # ERROR NOMBRE DE USUARIO INVALIDO
            information['error_description'] = 'El nombre de usuario no es valido'
        elif not User.isValidPassword(password):
            # Marco el error de password invaludo
            information['error_code'] = 2 # ERROR CLAVE INVALIDA
            information['error_description'] = 'La clave no es valida'
        elif password != vpassword:
            # Marco el error de passwords distintas
            information['error_code'] = 3 # ERROR CLAVES NO SON IDENTICAS
            information['error_description'] = 'Las claves no coinciden'
        elif not User.isValidEmail(information['email']):
            # Marco el error de password invaludo
            information['error_code'] = 4 # ERROR EMAIL INVALIDO
            information['error_description'] = 'El email ingresado no es valido'
        else:
            user = User.add(information['username'],password,information['email'],information['name'], information['lastname']);
            if  user == None:
                # Marco el error de usuario ya existente
                information['error_code'] = 5 # ERROR USUARIO YA EXISTE
                information['error_description'] = 'El usuario ya existe. Ingrese otro'
        
        
        if information['error_code'] != 0:
            # Hubo un error al crear el usuario. Envio el diccionario en formato json
            return api.render_to_json(information);
        else:
            # Se creo un usuario, redirijo pero seteo la cookie para identificar
            response = redirect('/')
            response.set_signed_cookie('user_id', information['username'])
            return response
    else:
        raise PermissionDenied
def PasswordRecoverFormView(request, username):
    # GET METHOD: Aca envio el formulario para el cambio de la contrasenia
    if request.method == 'GET':
        cookie = request.get_signed_cookie(key='lpwd_ok', default=None)
        if cookie is None:
            return redirect('/')
        else:
            # Encontro una cookie valida. Renderiza el formulario de cambio de clave
            information = {}
            information['username'] = cookie.split('|')[0]
            information['email'] = cookie.split('|')[1]
            if username != information['username']:
                return redirect('/')
            else:
                return render_to_response('passwd_recover_form.html',information,RequestContext(request))
    elif request.method == 'POST':
        # POST METHOD: Realizo la validacion de los datos ingresados y cambio la contrasenia
        cookie = request.get_signed_cookie(key='lpwd_ok', default=None)
        if cookie is None:
            return redirect('/')
        else:
            information = {}
            information['username'] = cookie.split('|')[0]
            password = request.POST.get('password', '')
            vpassword = request.POST.get('vpassword', '')
            valid = True
            if not User.isValidPassword(password):
                # Marco el error de password invaludo
                valid = False
                information['error'] = 'La clave no es valida'
            elif password != vpassword:
                # Marco el error de passwords distintas
                valid = False
                information['error'] = 'Las claves no coinciden'
            
            user = User.getByUsername(information['username'])
            if user is None:
                # Marco el error de usuario inexistente
                valid = False
                information['error'] = 'El usuario no existe'
                
            if not valid:
                # Hubo errores
                return render_to_response('passwd_recover_form.html',information,RequestContext(request))
            else:
                # TODO OK!!
                user.updateUserPassword(password)
                response = redirect('/signup')
                response.delete_cookie('lpwd_ok')
                return response
                
    else:
        raise PermissionDenied
	def testUsernameValidation(self):
		self.assertTrue(User.isValidUsername('abcdef12345_ghijk678')) #Normal characters
		self.assertTrue(User.isValidUsername('abcdef12345-ghijk678')) #Normal characters
		self.assertTrue(User.isValidUsername('abcdef1_345_ghijk678')) #Two Undercords
		self.assertTrue(User.isValidUsername('abcdef1-345-ghijk678')) #Two cords
		self.assertTrue(User.isValidUsername('123')) #ThreeChars
		self.assertTrue(User.isValidUsername('12345678901234567890')) #TwentyChars
		
		self.assertFalse(User.isValidUsername('')) #Empty
		self.assertFalse(User.isValidUsername('12')) #TwoChars
		self.assertFalse(User.isValidUsername('123456789012345678901')) #TwentyOneChars
		self.assertFalse(User.isValidUsername('randomchars++=?')) #Rare Characters
Exemple #14
0
def test_update_leaderboard_game(status_mock):
    game = game_factory.basic()
    snakes = snake_factory.basic(n=8, commit=True)
    user_snakes = [UserSnake(snake=s, user=User()) for s in snakes]
    for s in user_snakes:
        s.save()
        UserSnakeLeaderboard.objects.get_or_create(user_snake=s)

    game.engine_id = str(uuid.uuid4())
    game.snakes = [{'id': snake.id, 'name': snake.name, 'url': snake.url} for snake in snakes]
    game.is_leaderboard_game = True
    game.create()
    game_snakes = GameSnake.objects.filter(game_id=game.id)

    snakes_dict = {snake.id: {'death': 'starvation', 'turn': random.randint(1, 100)} for snake in game_snakes}
    snakes_dict[game_snakes[0].id]['death'] = ''
    snakes_dict[game_snakes[0].id]['turn'] = 125
    snakes_dict[game_snakes[1].id]['turn'] = 125

    status_mock.return_value = {
        'status': Game.Status.COMPLETE,
        'turn': 125,
        'snakes': snakes_dict
    }

    GameStatusJob().run()

    lb = UserSnakeLeaderboard.objects.all()[0]
    assert lb.mu is not None
    assert lb.sigma is not None
	def testUserValidation(self):
		User.add("user1","passwd",'*****@*****.**')
		User.add("user2","passwd2",'*****@*****.**')		
		result = User.isValidLogin("user1","passwd")
		self.assertEqual(result, True)
		result = User.isValidLogin("user1","passwd2")
		self.assertEqual(result, False)
		result = User.isValidLogin("user2","passwd")
		self.assertEqual(result, False)
		result = User.isValidLogin("user2","passwd2")
		self.assertEqual(result, True)
		result = User.isValidLogin("user","passwd5")
		self.assertEqual(result, False)
 def testUserValidation(self):
     User.add("user1", "passwd", '*****@*****.**')
     User.add("user2", "passwd2", '*****@*****.**')
     result = User.isValidLogin("user1", "passwd")
     self.assertEqual(result, True)
     result = User.isValidLogin("user1", "passwd2")
     self.assertEqual(result, False)
     result = User.isValidLogin("user2", "passwd")
     self.assertEqual(result, False)
     result = User.isValidLogin("user2", "passwd2")
     self.assertEqual(result, True)
     result = User.isValidLogin("user", "passwd5")
     self.assertEqual(result, False)
    def testUsernameValidation(self):
        self.assertTrue(
            User.isValidUsername('abcdef12345_ghijk678'))  #Normal characters
        self.assertTrue(
            User.isValidUsername('abcdef12345-ghijk678'))  #Normal characters
        self.assertTrue(
            User.isValidUsername('abcdef1_345_ghijk678'))  #Two Undercords
        self.assertTrue(
            User.isValidUsername('abcdef1-345-ghijk678'))  #Two cords
        self.assertTrue(User.isValidUsername('123'))  #ThreeChars
        self.assertTrue(
            User.isValidUsername('12345678901234567890'))  #TwentyChars

        self.assertFalse(User.isValidUsername(''))  #Empty
        self.assertFalse(User.isValidUsername('12'))  #TwoChars
        self.assertFalse(
            User.isValidUsername('123456789012345678901'))  #TwentyOneChars
        self.assertFalse(
            User.isValidUsername('randomchars++=?'))  #Rare Characters
Exemple #18
0
def BaseView(request):
    if request.method == 'GET':
        information = {}
        information['login'] = True
        username = request.get_signed_cookie('user_id','')
        information['user']  = User.getByUsername(username)
        if information['user'] is None:
            information['login'] = False
        return render_to_response('index.html',information,RequestContext(request))
    else:
        pass # TODO POST METHOD
Exemple #19
0
    def create(self, validated_data):
        password2 = validated_data.pop('password2')
        user = User(**validated_data)
        user.set_password(validated_data['password'])
        user.save()

        return user
 def testUsersRawCreation(self):
     u = User(username="******", hashedID="123452", email="*****@*****.**")
     u2 = User(username="******",
               hashedID="123452",
               email="*****@*****.**")
     u.save()
     U = User.objects.filter(username="******").get()
     self.assertEqual(u.username, U.username)
     self.assertNotEqual(u2.username, U.username)
     U = User.objects.filter(username="******")
     self.assertEqual(0, U.count())
     u2.save()
     U = User.objects.filter(username="******")
     self.assertEqual(1, U.count())
	def testEmailValidation(self):
		self.assertTrue(User.isValidEmail('*****@*****.**')) #Normal mail
		
		self.assertFalse(User.isValidEmail('unstring@otrostring')) #Mail without.com
		self.assertFalse(User.isValidEmail('unstring@otrostring.')) #Mail without com
		self.assertFalse(User.isValidEmail('unstring.com')) #Mail without @
		self.assertFalse(User.isValidEmail('@otrostring.com')) #Mail without name
		self.assertFalse(User.isValidEmail('otrostring')) #Normal string
 def testCompleteFields(self):
     User.add("user1", "passwd", '*****@*****.**', 'User1', 'One')
     User.add("user2", "passwd2", '*****@*****.**', 'User2', 'Two')
     u = User.getByUsername("user1")
     self.assertEqual(u.firstname, 'User1')
     self.assertEqual(u.lastname, 'One')
     u2 = User.getByUsername("user2")
     self.assertEqual(u2.firstname, 'User2')
     self.assertEqual(u2.lastname, 'Two')
	def testCompleteFields(self):
		User.add("user1","passwd",'*****@*****.**','User1','One')
		User.add("user2","passwd2",'*****@*****.**','User2', 'Two')
		u = User.getByUsername("user1")
		self.assertEqual(u.firstname, 'User1')
		self.assertEqual(u.lastname, 'One')
		u2 = User.getByUsername("user2")
		self.assertEqual(u2.firstname, 'User2')
		self.assertEqual(u2.lastname, 'Two')
	def testUsersRawCreation(self):
		u = User(username = "******", hashedID = "123452", email = "*****@*****.**")
		u2 = User(username = "******", hashedID = "123452", email = "*****@*****.**")
		u.save()
		U = User.objects.filter(username = "******").get();
		self.assertEqual(u.username, U.username)
		self.assertNotEqual(u2.username, U.username)
		U = User.objects.filter(username = "******");
		self.assertEqual(0, U.count())
		u2.save()
		U = User.objects.filter(username = "******");
		self.assertEqual(1, U.count())
    def testEmailValidation(self):
        self.assertTrue(
            User.isValidEmail('*****@*****.**'))  #Normal mail

        self.assertFalse(
            User.isValidEmail('unstring@otrostring'))  #Mail without.com
        self.assertFalse(
            User.isValidEmail('unstring@otrostring.'))  #Mail without com
        self.assertFalse(User.isValidEmail('unstring.com'))  #Mail without @
        self.assertFalse(
            User.isValidEmail('@otrostring.com'))  #Mail without name
        self.assertFalse(User.isValidEmail('otrostring'))  #Normal string
Exemple #26
0
def test_update_leaderboard_game(run_mock, status_mock):

    run_mock.return_value = str(uuid.uuid4())

    snakes = snake_factory.basic(n=4, commit=True)
    user_snakes = [UserSnake(snake=s, user=User()) for s in snakes]
    for s in user_snakes:
        s.save()
        UserSnakeLeaderboard.objects.get_or_create(user_snake=s)

    MatchStarter().run()

    game_snakes = GameSnake.objects.all()

    snakes_dict = {
        snake.id: {
            'death': 'starvation',
            'turn': random.randint(1, 100)
        }
        for snake in game_snakes
    }
    snakes_dict[game_snakes[0].id]['death'] = ''
    snakes_dict[game_snakes[0].id]['turn'] = 125
    snakes_dict[game_snakes[1].id]['turn'] = 125

    status_mock.return_value = {
        'status': Game.Status.COMPLETE,
        'turn': 125,
        'snakes': snakes_dict
    }

    GameStatusJob().run()

    lb = UserSnakeLeaderboard.objects.all()[0]
    assert lb.mu is not None
    assert lb.sigma is not None

    result = LeaderboardResult.objects.get(snake=lb)
    assert result is not None
    assert result.mu_change is not None
    assert result.sigma_change is not None
Exemple #27
0
 def create(self, validated_data):
     try:
         user = User.objects.filter(email=validated_data.get('email')).get()
         if user.is_active:
             raise CustomException(ErrorCode.account_has_exist)
     except User.DoesNotExist:
         user = User(
             email=validated_data.get('email'),
             username=validated_data.get('username'),
             gender=validated_data.get('gender'),
             birthday=validated_data.get('birthday'),
             company=validated_data.get('company', None),
         )
         user.set_password(validated_data.get('password'))
         user.save()
     return user
def SignInAPI(request):
        if request.method == 'GET':
            # GET METHOD: Aca envio el formulario de logueo de usuario
            return render_to_response('signin.html',{},RequestContext(request))
        elif request.method == 'POST':
            # POST METHOD: Aca valido la informacion de inicio de sesion
            information = {}
            information['username'] = request.POST.get('username', '')
            password = request.POST.get('password', '')
            leave_open = request.POST.get('remember',None)
            
            valid = User.isValidLogin(information['username'], password)
            if not valid:
                information['error'] = "No existe el nombre de usuario especificado o la clave no es correcta"
                return render_to_response('signin.html',information,RequestContext(request))
            else:
                response = redirect('/')
                if leave_open is None:
                    Crypt.set_secure_cookie(response,'user_id',information['username'],expires=True) # Expira al cerrar el navegador
                else:
                    Crypt.set_secure_cookie(response,'user_id',information['username'],expires=False) # No expira la cookie
                return response
        else:
            raise PermissionDenied  
Exemple #29
0
    def create(self, validated_data: OrderedDict) -> User:
        """ Creates new User instance when calling serializer.save() method.

        Parameters:
        ----------
        validated_data:
            Serializer property created while user_serializer.is_valid() method
            calling.

        Returns:
        ----------
            User instance.
        """

        user_instance = User(
            name=validated_data["name"],
            username=validated_data["name"],
            email=validated_data["email"],
        )
        user_instance.set_password(validated_data["password"])
        user_instance.save()

        return user_instance
 def testUpdateUserPassword(self):
     u = User.add("user1", "passwd", '*****@*****.**')
     self.assertTrue(User.isValidLogin("user1", "passwd"))
     u.updateUserPassword("newpasswd")
     self.assertFalse(User.isValidLogin("user1", "passwd"))
     self.assertTrue(User.isValidLogin("user1", "newpasswd"))
Exemple #31
0
 def test_add_user_wrong_email(self):
     with self.assertRaises(Exception):
         user = User(username='******',
                     email='testuser_at_somemail.com',
                     password='******')
         user.full_clean()
Exemple #32
0
 def test_add_user_with_all_fields(self):
     user = User(username='******',
                 email='*****@*****.**',
                 password='******')
     user.full_clean()
     user.save()
Exemple #33
0
 def test_cant_create_duplicate(self):
     User.objects.create_user(username='******', password='******')
     with self.assertRaises(ValidationError):
         user = User(username='******', password='******')
         user.full_clean()
	def testUpdateUserPassword(self):
		u = User.add("user1","passwd",'*****@*****.**')
		self.assertTrue(User.isValidLogin("user1","passwd"))
		u.updateUserPassword("newpasswd")
		self.assertFalse(User.isValidLogin("user1","passwd"))
		self.assertTrue(User.isValidLogin("user1","newpasswd"))
Exemple #35
0
def register(request):
    log = logging.getLogger(__name__)

    if request.user.is_authenticated:
        messages.error(
            request, _("Registrering av ny konto krever at du er logget ut."))
        return HttpResponseRedirect("/")
    else:
        if request.method == "POST":
            form = RegisterForm(request.POST)
            if form.is_valid():
                cleaned = form.cleaned_data

                # Create user
                user = User(
                    username=cleaned["username"],
                    first_name=cleaned["first_name"].title(),
                    last_name=cleaned["last_name"].title(),
                )
                # Set remaining fields
                user.phone_number = cleaned["phone"]
                user.address = cleaned["address"].title()
                user.zip_code = cleaned["zip_code"]
                # Store password properly
                user.set_password(cleaned["password"])
                # Users need to be manually activated
                user.is_active = False
                user.save()

                # Set email address
                email = Email(user=user, email=cleaned["email"].lower())
                email.primary = True
                email.save()

                # Create the registration token
                token = uuid.uuid4().hex

                try:
                    rt = RegisterToken(user=user,
                                       email=email.email,
                                       token=token)
                    rt.save()
                    log.info("Successfully registered token for %s" %
                             request.user)
                except IntegrityError as ie:
                    log.error('Failed to register token for "%s" due to "%s"' %
                              (request.user, ie))

                email_context = {}
                verify_url = reverse("auth_verify", args=(token, ))
                email_context["verify_url"] = request.build_absolute_uri(
                    verify_url)

                message = render_to_string("auth/email/welcome_tpl.txt",
                                           email_context)

                try:
                    send_mail(
                        _("Verifiser din konto"),
                        message,
                        settings.DEFAULT_FROM_EMAIL,
                        [email.email],
                    )
                except SMTPException:
                    messages.error(
                        request,
                        "Det oppstod en kritisk feil, epostadressen er ugyldig!",
                    )
                    return redirect("home")

                messages.success(
                    request,
                    _("Registreringen var vellykket. Se tilsendt epost for verifiseringsinstrukser."
                      ),
                )

                return HttpResponseRedirect("/")
            else:
                form = RegisterForm(request.POST, auto_id=True)
        else:
            form = RegisterForm()

        return render(request, "auth/register.html", {"form": form})
 def testUserGetByUsername(self):
     self.assertEqual(User.getByUsername("user1"), None)
     u = User.add("user1", "passwd", '*****@*****.**')
     self.assertEqual(User.getByUsername("user1"), u)
     self.assertEqual(User.getByUsername("user2"), None)
	def testUserGetByUsername(self):
		self.assertEqual(User.getByUsername("user1"), None)
		u = User.add("user1","passwd",'*****@*****.**')
		self.assertEqual(User.getByUsername("user1"), u)
		self.assertEqual(User.getByUsername("user2"), None)
	def testTwoEqualUsersCreation(self):
		u = User.add("user1","passwd",'*****@*****.**')
		u2 = User.add("user1","passwd",'*****@*****.**')
		self.assertIsNone(u2)
		u2 = User.add("user1","passwd", "*****@*****.**")
		self.assertIsNone(u2)
 def testTwoEqualUsersCreation(self):
     u = User.add("user1", "passwd", '*****@*****.**')
     u2 = User.add("user1", "passwd", '*****@*****.**')
     self.assertIsNone(u2)
     u2 = User.add("user1", "passwd", "*****@*****.**")
     self.assertIsNone(u2)
Exemple #40
0
def register(request):
    log = logging.getLogger(__name__)

    if request.user.is_authenticated:
        messages.error(
            request, _('Registrering av ny konto krever at du er logget ut.'))
        return HttpResponseRedirect('/')
    else:
        if request.method == 'POST':
            form = RegisterForm(request.POST)
            if form.is_valid():
                cleaned = form.cleaned_data

                # Create user
                user = User(
                    username=cleaned['username'],
                    first_name=cleaned['first_name'].title(),
                    last_name=cleaned['last_name'].title(),
                )
                # Set remaining fields
                user.phone_number = cleaned['phone']
                user.address = cleaned['address'].title()
                user.zip_code = cleaned['zip_code']
                # Store password properly
                user.set_password(cleaned['password'])
                # Users need to be manually activated
                user.is_active = False
                user.save()

                # Set email address
                email = Email(
                    user=user,
                    email=cleaned['email'].lower(),
                )
                email.primary = True
                email.save()

                # Create the registration token
                token = uuid.uuid4().hex

                try:
                    rt = RegisterToken(user=user,
                                       email=email.email,
                                       token=token)
                    rt.save()
                    log.info('Successfully registered token for %s' %
                             request.user)
                except IntegrityError as ie:
                    log.error('Failed to register token for "%s" due to "%s"' %
                              (request.user, ie))

                email_context = {}
                verify_url = reverse('auth_verify', args=(token, ))
                email_context['verify_url'] = request.build_absolute_uri(
                    verify_url)

                message = render_to_string('auth/email/welcome_tpl.txt',
                                           email_context)

                try:
                    send_mail(_('Verifiser din konto'), message,
                              settings.DEFAULT_FROM_EMAIL, [
                                  email.email,
                              ])
                except SMTPException:
                    messages.error(
                        request,
                        'Det oppstod en kritisk feil, epostadressen er ugyldig!'
                    )
                    return redirect('home')

                messages.success(
                    request,
                    _('Registreringen var vellykket. Se tilsendt epost for verifiseringsinstrukser.'
                      ))

                return HttpResponseRedirect('/')
            else:
                form = RegisterForm(request.POST, auto_id=True)
        else:
            form = RegisterForm()

        return render(request, 'auth/register.html', {
            'form': form,
        })
Exemple #41
0
 def basic(self, email="*****@*****.**", commit=False):
     username = email.split("@")[0]
     user = User(username=username, email=email)
     if commit:
         user.save()
     return user