Example #1
0
def register_view(request):
    if request.method == 'GET':
        form = UserCreationForm()
        return render(request, 'register.html', {'form':form})
    elif request.method == 'POST':
        form = UserCreationForm(data=request.POST)
        if form.is_valid():
            user = User(username=form.cleaned_data['username'])
            user = User(
                username=form.cleaned_data['username'],
                email=form.cleaned_data['email'],
                is_active=False     #user не активный до подтверждения email
            )
            user.set_password(form.cleaned_data['password'])
            user.save()
            Profile.objects.create(user=user)
            #токен для активации, его сложнее угадать, чем pk user
            token = Token.objects.create(user=user)
            activation_url=HOST_NAME + reverse('accounts:user_activate') + \
                            '?token={}'.format(token)
            #отправка письма на email пользователя
            user.email_user('Registration on the site localhost',
                            'To activate, follow the link: {}'.format(activation_url))
            return redirect('webapp:index')
        else:
            return render(request, 'register.html', {'form':form})
Example #2
0
def __add_user_to_db(post, active, host):
    user = User()
    user.username = post['email_username']
    user.email = post['email_username']
    user.set_password(post['password'])
    user.first_name = post['realname']
    user.is_active = active
    user.save()

    #为user创建mail统计记录
    mail_statistic = MailStatistic()
    mail_statistic.user = user
    mail_statistic.save()

    profile = Profile()
    profile.user = user
    if active == 0:
        from Captcha.Base import randomIdentifier
        profile.activate_code = randomIdentifier()[:20]
    profile.save()

    if active == 0:
        url = profile.activate_code + str(profile.id)
        mail_content = '''
        请通过访问此链接http://%s/login/activate/%s/ 激活您的ClubHome账户。
        ''' % (host, url)
        try:
            user.email_user('ClubHome账户激活', mail_content)
        except Exception, e:
            profile.delete()
            mail_statistic.delete()
            user.delete()
            return False
Example #3
0
def send_email_confirmation(user: User, request: HttpRequest, temporary_access: bool = False, send_to: str = None):
    subject = 'Activation de votre compte Nantral Platform'
    current_site = get_current_site(request)
    # load a template like get_template()
    # and calls its render() method immediately.
    template = 'account/mail/activation_request.html'
    if temporary_access:
        template = 'account/mail/activation_temporary_request.html'
    message = render_to_string(template, {
        'user': user,
        'domain': current_site.domain,
        'uid': urlsafe_base64_encode(force_bytes(user.pk)),
        # method will generate a hash value with user related data
        'token': account_activation_token.make_token(user),
    })
    if send_to is not None:
        send_mail(subject, message, None,
                  html_message=message, recipient_list=[send_to])
    else:
        user.email_user(
            subject, message, html_message=message)
    if temporary_access:
        messages.success(
            request, 'Un mail vous a été envoyé pour confirmer votre adresse mail personnelle.')
    else:
        messages.success(
            request, 'Un mail vous a été envoyé pour confirmer votre adresse mail Centrale Nantes.\n\
                Vous pouvez accéder à votre boîte mail école <a href="https://webmail.ec-nantes.fr">ici</a>.')
Example #4
0
def register_view(request):
    if request.method == 'GET':
        form = UserCreationForm()
        return render(request, 'register.html', {'form': form})
    elif request.method == 'POST':
        form = UserCreationForm(data=request.POST)
        if form.is_valid():
            user = User(
                username=form.cleaned_data['username'],
                email=form.cleaned_data['email'],
                is_active=False  # user не активный до подтверждения email
            )
            user.set_password(form.cleaned_data['password'])
            user.save()

            # токен для активации, его сложнее угадать, чем pk user-а.
            token = Token.objects.create(user=user)
            activation_url = HOST_NAME + reverse('accounts:user_activate') + \
                             '?token={}'.format(token)

            # отправка письма на email пользователя
            user.email_user(
                'Регистрация на сайте localhost',
                'Для активации перейдите по ссылке: {}'.format(activation_url))
            print(activation_url)
            return redirect("webapp:todo_index")
        else:
            return render(request, 'register.html', {'form': form})
Example #5
0
def register_view(request):
    if request.method == 'GET':
        form = UserCreationForm()
        return render(request, 'user_create.html', {'form': form})
    elif request.method == 'POST':
        form = UserCreationForm(data=request.POST)
        if form.is_valid():
            user = User(username=form.cleaned_data['username'],
                        email=form.cleaned_data['email'],
                        first_name=form.cleaned_data['first_name'],
                        last_name=form.cleaned_data['last_name'],
                        is_active=False)
            user.set_password(form.cleaned_data['password'])
            user.save()
            Profile.objects.create(user=user)

            token = Token.objects.create(user=user)
            activation_url = HOST_NAME + reverse(
                'accounts:user_activate') + '?token={}'.format(token)

            user.email_user(
                'Регистрация на сайте localhost',
                'Для активации перейдите по ссылке: {}'.format(activation_url))

            return redirect("webapp:index")
        else:
            return render(request, 'user_create.html', {'form': form})
Example #6
0
def register_view(request):
    if request.method == 'GET':
        form = SignUpForm()
        return render(request, 'register.html', context={'form': form})
    elif request.method == 'POST':
        form = SignUpForm(data=request.POST)
        if form.is_valid():
            user = User(
                 username=form.cleaned_data.get('username'),
                 first_name=form.cleaned_data.get('first_name'),
                 last_name=form.cleaned_data.get('last_name'),
                 email=form.cleaned_data.get('email'),
                 is_active=False
            )
            user.set_password(form.cleaned_data.get('password'))
            user.save()
            Profile.objects.create(user=user)
            token = Token.objects.create(user=user)

            activation_url = HOST_NAME + reverse('accounts:user_activate', kwargs={'token': token})
            print(activation_url)
            try:
                user.email_user(
                    'Вы зарегистрировались на сайте localhost:8000.',
                    'Для активации перейдите по ссылке: ' + activation_url
                )
            except ConnectionRefusedError:
                print('Could not send email. Server error.')

            return redirect('webapp:index')
        else:
            return render(request, 'register.html', context={'form': form})
Example #7
0
def thank_you(request):
    cart = request.session.get('cart', {})

    cartDictionary = printCart(cart)
    product = cartDictionary["product"]
    numberOfItems = cartDictionary["numberOfItems"]
    orderTotal = cartDictionary["orderTotal"]

    response = HttpResponseRedirect('thank_you')

    usernamed = str(request.user)
    cookie_name = "cart-" + usernamed

    if request.method == 'POST':
        #email for checkout confirmation
        try:
            u = User.objects.get(username=usernamed)

            subject = 'Order Confirmation'

            message = 'Dear ' + usernamed + ',\n \n'
            message += 'Your order is complete and items are going to be dispatched soon. \n \n'
            message += 'Please see your order details below: \n'

            for p in product:
                message += str(p[1]) + ', ' + str(p[3]) + ' (' + str(
                    p[2]) + '$)' + '\n'

            message += ' Total amount paid: ' + str(orderTotal) + '$ \n \n'

            message += 'Kind regards, \n Free Trade Fruit And Veg Team'
            from_email = '*****@*****.**'

            User.email_user(u, subject, message, from_email)

        except User.DoesNotExist:
            print("USER DOES NOT EXIST")

        #empting the cart
        cart = {}
        request.session['cart'] = cart

        if (request.COOKIES.get(cookie_name) is not None):
            #delete cookie
            response.delete_cookie(cookie_name)
            return response
        else:
            print("THERES NO COOKIE")

        return render(
            request, 'sitepages/thankyou.html', {
                "product": product,
                "numberOfItems": numberOfItems,
                "orderTotal": orderTotal,
                "message": "Please Find your recipt at your email."
            })
    else:
        return render(
            request, 'sitepages/thankyou.html',
            {"message_reload": "Please Find your recipt at your email."})
Example #8
0
    def create_user(self, name, email, password, site='', send_email=True, openid=None):
        """
        Create a new User, activate it, send email about password

        You can disable email_sending in settings: DISABLE_REGISTRATION_EMAIL=True
        """
        send_email = send_email and not getattr(settings, 'DISABLE_REGISTRATION_EMAIL', False)

        # Create the user.
        if openid:
            username = openid[7:37]
        else:
            username = email.replace('@', '-')
        try:
            while True:
                User.objects.get(username=username)
                username = username[:-2] + str(random.randrange(10, 100))
        except User.DoesNotExist:
            pass
        new_user = User(username=username, email=email, first_name=name)
        new_user.set_password(password)
        new_user.is_active = True
        new_user.site = site
        new_user.save()

        if send_email:
            current_domain = Site.objects.get_current().domain
            subject = "Your new account at %s has been created" % current_domain
            message_template = loader.get_template('accounts/created_email.txt')
            message_context = Context({'site_url': '%s://%s' % (settings.SITE_PROTOCOL, current_domain),
                                        'password': password,
                                        'user': new_user})
            message = message_template.render(message_context)
            new_user.email_user(subject, message, settings.DEFAULT_FROM_EMAIL)
        return new_user
Example #9
0
    def create_inactive_user(self,
                             name,
                             email,
                             password,
                             site='',
                             send_email=True):
        """
        Creates a new User and a new ActionRecord for that
        User, generates an activation key, and mails it.

        Pass ``send_email=False`` to disable sending the email.

        You can disable email_sending in settings: DISABLE_REGISTRATION_EMAIL=True

        """
        send_email = not getattr(settings, 'DISABLE_REGISTRATION_EMAIL', False)

        # Create the user.
        new_user = User(username=email.replace('@', '-'),
                        email=email,
                        first_name=name)
        new_user.set_password(password)
        new_user.is_active = False
        new_user.save()

        from accounts.models import UserProfile
        UserProfile(user=new_user, site=site).save()

        # Generate a salted SHA1 hash to use as a key.
        salt = sha.new(str(random.random())).hexdigest()[:5]
        action_key = sha.new(salt + slugify(new_user.email)).hexdigest()

        # And finally create the record.
        new_record = self.create(user=new_user,
                                 action_key=action_key,
                                 type='A')
        if send_email:
            current_domain = Site.objects.get_current().domain
            subject = "Activate your new account at %s" % current_domain
            message_template = loader.get_template(
                'accounts/activation_email.txt')
            message_context = Context({
                'site_url':
                '%s://%s' % (settings.SITE_PROTOCOL, current_domain),
                'action_key':
                action_key,
                'expiration_days':
                settings.ACTION_RECORD_DAYS,
                'password':
                password,
                'user':
                new_user
            })
            message = message_template.render(message_context)
            new_user.email_user(subject, message, settings.DEFAULT_FROM_EMAIL)
        return new_user
Example #10
0
def send_confirmation_email(user: User):
    t = get_template("confirm.html")
    user.email_user(
        subject="Fandogh Email-address confirmation",
        message="",
        from_email=getattr(settings, "EMAIL_FROM"),
        html_message=t.render({
            "activation_link": _get_activation_link(user),
        }),
    )
Example #11
0
def send_recovery_token(user: User):
    t = get_template("recovery.html")
    user.email_user(
        subject="Fandogh account recovery",
        message="",
        from_email=getattr(settings, "EMAIL_FROM"),
        html_message=t.render({
            "account_recovery":
            _get_account_recovery_link(user),
        }),
    )
Example #12
0
def register(request):
	context = {}

	# Just display the registration form if this is a GET request
	if request.method == 'GET':
		context['form'] = RegistrationForm()
		return render(request, 'registration/register.html', context)

	new_user = User()
	form = RegistrationForm(request.POST, instance=new_user)

	# Checks the validity of the form data
	if not form.is_valid():
		context['form'] = form
		return render(request, 'registration/register.html', context)

	# Hack to hash password
	password = new_user.password
	new_user.set_password(password)

	if not settings.EMAIL_CONFIRM:
		form.save()
		new_user = authenticate(username=new_user.username, password=password)
		login(request, new_user)
		return redirect('home')

	new_user.is_active = False
	form.save()

	# generate secret token
	secret_token = SecretToken(
		user=new_user,
		token=getrandbits(63))
	secret_token.save()

	# send an email with the confirmation link
	link = request.build_absolute_uri(
		reverse('confirm email', args=(new_user.username, secret_token.token))
	)
	subject = 'Degree Planner: email confirmation link'
	message = (
		'Welcome ' + new_user.username + ' on Degree Planner.\n'
		'Please click on the following link to confirm your email address:\n\n'
		+ link
	)

	new_user.email_user(subject, message)
	context['email'] = new_user.email

	return render(request, 'registration/confirmation_sent.html', context)
Example #13
0
    def create_user(self,
                    name,
                    email,
                    password,
                    site='',
                    send_email=True,
                    openid=None):
        """
        Create a new User, activate it, send email about password

        You can disable email_sending in settings: DISABLE_REGISTRATION_EMAIL=True
        """
        send_email = send_email and not getattr(
            settings, 'DISABLE_REGISTRATION_EMAIL', False)

        # Create the user.
        if openid:
            username = openid[7:37]
        else:
            username = email.replace('@', '-')
        try:
            while True:
                User.objects.get(username=username)
                username = username[:-2] + str(random.randrange(10, 100))
        except User.DoesNotExist:
            pass
        new_user = User(username=username, email=email, first_name=name)
        new_user.set_password(password)
        new_user.is_active = True
        new_user.site = site
        new_user.save()

        if send_email:
            current_domain = Site.objects.get_current().domain
            subject = "Your new account at %s has been created" % current_domain
            message_template = loader.get_template(
                'accounts/created_email.txt')
            message_context = Context({
                'site_url':
                '%s://%s' % (settings.SITE_PROTOCOL, current_domain),
                'password':
                password,
                'user':
                new_user
            })
            message = message_template.render(message_context)
            new_user.email_user(subject, message, settings.DEFAULT_FROM_EMAIL)
        return new_user
Example #14
0
    def create_inactive_user(self, name, email, password, site='', send_email=True):
        """
        Creates a new User and a new ActionRecord for that
        User, generates an activation key, and mails it.

        Pass ``send_email=False`` to disable sending the email.

        You can disable email_sending in settings: DISABLE_REGISTRATION_EMAIL=True

        """
        from django.contrib.auth.models import User
        send_email = not getattr(settings, 'DISABLE_REGISTRATION_EMAIL', False)

        # Create the user.
        new_user = User(username=email.replace('@', '-'), email=email, first_name=name)
        new_user.set_password(password)
        new_user.is_active = False
        new_user.site = site
        new_user.save()

        # Generate a salted SHA1 hash to use as a key.
        salt = sha.new(str(random.random())).hexdigest()[:5]
        activation_key = sha.new(salt+slugify(new_user.email)).hexdigest()

        # And finally create the record.
        new_record = self.create(user=new_user,
                                 activation_key=activation_key,
                                 type='A')
        if send_email:
            if Site._meta.installed:
                current_site = Site.objects.get_current()
            else:
                current_site = RequestSite(request) #TODO import Site/RequestSite ?
            current_domain = current_site.domain
            subject = "Activate your new account at %s" % current_domain
            message_template = loader.get_template('accounts/activation_email.txt')
            message_context = Context({ 'site_url': '%s://%s' % (settings.SITE_PROTOCOL, current_domain),
                                        'activation_key': activation_key,
                                        'expiration_days': settings.ACTION_RECORD_DAYS,
                                        'password': password,
                                        'user': new_user})
            message = message_template.render(message_context)
            new_user.email_user(subject, message, settings.DEFAULT_FROM_EMAIL)
        return new_user
Example #15
0
def register(request):

    if request.method == 'POST':

        data = request.POST

        password = data['password']
        repeated_password = data['repeatedPassword']
        # Проверяем тождество паролей, после чего либо работа продолжается,
        # либо пользователь пойдёт отождествлять пароли.
        if password != repeated_password:
            return HttpResponse('Пароли не совпадают')
        username = data['username']
        email = data['email']

        # Проверка на существуещего пользователя
        if User.objects.filter(username=username).exists():
            # Если есть пользователь с таким именем,
            # возвращается уведомление об этом.
            return HttpResponse(
                'Пользователь с таким именем пользователя уже существует')
        elif User.objects.filter(email=email).exists():
            return HttpResponse('Пользователь с таким email-ом уже существует')
        else:
            # Регистрируется один пользователь
            user = User(username=username, email=email)
            user.set_password(password)
            user.save()

            # Создаются аккаунты  для двух игр

            MinecraftUser(user=user).save()

            server = 'Minecraft'
            subject = 'Успешная регистрация'
            message = 'Вы зарегистрировались под логином — %s, на %s сервере нашего проекта.' \
                      'Удачной охоты!' % (username, server)
            user.email_user(subject, message)
            # Возвращается ответ об успешной регистрации.
            return HttpResponse('Вы успешно прошли регистрацию')
            # Посылается сообщение об успехе на почту
        return HttpResponse('Что-то пошло не так...')
Example #16
0
 def test_email_user(self):
     # valid send_mail parameters
     kwargs = {
         "fail_silently": False,
         "auth_user": None,
         "auth_password": None,
         "connection": None,
         "html_message": None,
     }
     user = User(email='*****@*****.**')
     user.email_user(subject="Subject here",
                     message="This is a message",
                     from_email="*****@*****.**",
                     **kwargs)
     self.assertEqual(len(mail.outbox), 1)
     message = mail.outbox[0]
     self.assertEqual(message.subject, "Subject here")
     self.assertEqual(message.body, "This is a message")
     self.assertEqual(message.from_email, "*****@*****.**")
     self.assertEqual(message.to, [user.email])
Example #17
0
def signup(request):
    if request.method == 'POST':
        form = SignUpForm(request.POST)
        if form.is_valid():
            user = form.save(commit=False)
            user.is_active = False
            user.save()
            current_site = get_current_site(request)
            subject = 'Activate Your MySite Account'
            message = render_to_string(
                'app/account_activation_email.html', {
                    'user': user,
                    'domain': current_site.domain,
                    'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                    'token': account_activation_token.make_token(user),
                })
            user.email_user(subject, message)
            User.email_user(user, subject, message)
            return redirect('account_activation_sent')
    else:
        form = SignUpForm()
    return render(request, 'app/signup.html', {'form': form})
Example #18
0
def register_view(request):
    if request.method == 'GET':
        form = UserCreationForm()
        return render(request, 'register.html', {'form': form})
    elif request.method == 'POST':
        form = UserCreationForm(data=request.POST)
        if form.is_valid():
            user = User(username=form.cleaned_data['username'],
                        email=form.cleaned_data['email'],
                        is_active=False)
            user.set_password(form.cleaned_data['password'])
            user.save()
            token = Token.objects.create(user=user)
            activation_url = HOST_NAME + reverse(
                'accounts:user_activate') + '?token={}'.format(token)
            user.email_user(
                'Register on localhost',
                'To activate, follow the link: {}'.format(activation_url))

            return redirect("webapp:index")
        else:
            return render(request, 'register.html', {'form': form})
Example #19
0
def update_user_profile(sender, instance, created, **kwargs):
    if created:
        current_site = 'http://127.0.0.1:8000'
        subject = "Account Activation"
        user = User(username=instance.username,
                    email=instance.email,
                    is_active=False)
        user.set_password(str(instance.password))
        user.profile = instance
        user.save()
        subject = 'Activate Your {} Account'.format(current_site)
        message_txt = render_to_string(
            'registration/account_activation_email.txt', {
                'user': user,
                'Subject': subject,
                'password': instance.password,
                'email': instance.email,
                'domain': current_site,
                'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                'token': account_activation_token.make_token(user),
            })
        message_html = render_to_string(
            'registration/account_activation_email.html', {
                'user': user,
                'Subject': subject,
                'password': instance.password,
                'email': instance.email,
                'domain': current_site,
                'uid': urlsafe_base64_encode(force_bytes(user.pk)),
                'token': account_activation_token.make_token(user),
            })
        user.email_user(subject,
                        message_txt,
                        '*****@*****.**',
                        html_message=message_html)
        instance.user = user
        instance.save()
    instance.user.save()
Example #20
0
def register_view(request):
    if request.method == 'POST':
        form = UserCreationForm(data=request.POST)
        if form.is_valid():
            user_1 = User(
                email=form.cleaned_data['email'],
                is_active=False)
            user = form.save()
            token = Token.objects.create(user=user)
            user.save()
            Profile.objects.create(user=user)
            activation_url = HOST_NAME + reverse('user_activate') + '?token={}'.format(token)

            user_1.email_user('Регистрация на сайте localhost',
                              'Для активаций перейдите по ссылке:{}'.format(activation_url))
            login(request, user)
            user.save()
            Profile.objects.create(user=user)
            Profile.objects.all.create(user=user)
            return redirect('index')
    else:
        form = UserCreationForm()
    return render(request, 'register.html', context={'form': form})
Example #21
0
def create_accounts(request):

    if request.method == 'GET':
        csv_form = GetCSVForm()

        return render(request, 'registration/create_accounts.html',{
            'form':csv_form
        })
    
    try:
        my_csv = request.FILES["csv_file"]
        # Ensures a CSV file
        if not my_csv.name.endswith('.csv'):
            messages.add_message(request, messages.ERROR, "You must upload a .csv file")
            return HttpResponseRedirect(reverse('elections:create_accounts'))
        # Ensures file is not too big
        if my_csv.multiple_chunks():
            messages.add_message(request, messages.ERROR, "Your file size is too big")
            return HttpResponseRedirect(reverse('elections:create_accounts'))

        # Turns CSV into useable data
        file_data = my_csv.read().decode("utf-8")
        lines = file_data.split("\r\n")
        pprint(lines)
        pprint(lines[1:-1])
        if 'teachers_button' in request.POST:
            for line in lines[1:-1]:
                fields = line.split(",")

                new_user = User()
                new_user.username = fields[3].split("@")[0]
                new_user.first_name = fields[1]
                new_user.last_name = fields[0]
                new_user.email = fields[3]
                password_string = get_random_string(15)
                new_user.set_password(password_string)
                new_user.is_active = False
                new_user.save()
                new_user.refresh_from_db()
                if fields[2] == "Male":
                    new_user.profile.Gender = "M"
                elif fields[2] == "Female":
                    new_user.profile.Gender = "F"
                new_user.profile.UserTypeID = UserType.objects.get(UserType="Teacher")
                new_user.profile.EmailConfirmed = False
                new_user.save()

                current_site = get_current_site(request)
                subject = "Activate your DC-Elects account"
                message = render_to_string('registration/account_activation_email.html', {
                    'user': new_user,
                    'password': password_string,
                    'domain': current_site.domain,
                    'uid': urlsafe_base64_encode(force_bytes(new_user.id)),
                    'token': account_activation_token.make_token(new_user),
                })
                new_user.email_user(subject, message)

        elif 'students_button' in request.POST:
            for line in lines[1:-1]:
                fields = line.split(",")

                if fields[3][0:2] in ['12','13'] and len(fields[3]) == 3:
                    new_user = User()
                    new_user.username = fields[4].split("@")[0]
                    new_user.first_name = fields[1]
                    new_user.last_name = fields[0]
                    new_user.email = fields[4]
                    password_string = get_random_string(15)
                    new_user.set_password(password_string)
                    new_user.is_active = False
                    new_user.save()
                    new_user.refresh_from_db()
                    new_user.profile.Gender = fields[2]
                    if fields[3][0:2] == '12':
                        new_user.profile.UserTypeID = UserType.objects.get(UserType="Year12")
                    elif fields[3][0:2] == '13':
                        new_user.profile.UserTypeID = UserType.objects.get(UserType="Year13")
                    new_user.profile.EmailConfirmed = False
                    new_user.save()
                
                    current_site = get_current_site(request)
                    subject = "Activate your Elect-DC account"
                    message = render_to_string('registration/account_activation_email.html', {
                        'user': new_user,
                        'password': password_string,
                        'domain': current_site.domain,
                        'uid': urlsafe_base64_encode(force_bytes(new_user.id)),
                        'token': account_activation_token.make_token(new_user),
                    })
                    new_user.email_user(subject, message)
        
        messages.add_message(request, messages.SUCCESS, "Accounts created successfully")

    except Exception as e:
        messages.add_message(request, messages.ERROR, "An error occured: "+repr(e))
    
    
    return HttpResponseRedirect(reverse('elections:create_accounts'))
Example #22
0
def import_user_submit(request):
    # http://www.cnblogs.com/yijun-boxing/archive/2011/04/18/2020155.html
    
    CONTRACT_CVS_COL_CONTRACT_ID=0
    CONTRACT_CVS_COL_DISTRICT_ID=1
    CONTRACT_CVS_COL_EMAIL=2
    CONTRACT_CVS_COL_USERNAME=3
    CONTRACT_CVS_COUNT_COL=4
    
    message={}
    n=0
    if request.method == 'POST':
        f=request.FILES['file']
        dialect = csv.Sniffer().sniff(f.read(1024), delimiters=";,")
        f.seek(0)
        r=csv.reader(f,dialect)
        try:
            for i,line in enumerate(r):
                n=n+1

                contract_id=line[CONTRACT_CVS_COL_CONTRACT_ID]
                district_id=line[CONTRACT_CVS_COL_DISTRICT_ID]
                email=line[CONTRACT_CVS_COL_EMAIL]
                username=line[CONTRACT_CVS_COL_USERNAME]

                for value in line:
                    if len(value.strip())==0:
                        raise Exception("Catch csv line with empty fields line")
                

                if len(line) != CONTRACT_CVS_COUNT_COL:
                    raise Exception("Catch csv line of wrong fields count")

                user = User(username=username, email=email, is_active=True)
                user.set_password(username)
                registration = Registration()

                try:
                    user.save()
                except IntegrityError:
                    if len(User.objects.filter(username=username)) > 0:
                        raise Exception("An account with the Public Username '{username}' already exists.".format(username=username))
                       
                    if len(User.objects.filter(email=email)) > 0:
                        raise Exception("An account with the Email '{email}' already exists.".format(email=email))

                registration.register(user)
    
                profile=UserProfile(user=user)
                profile.contract_id=contract_id
                profile.district_id=district_id
                profile.email=email
                profile.username=username
                profile.save()

                reg = Registration.objects.get(user=user)
                d = {'name': profile.name, 'key': reg.activation_key}

                subject = render_to_string('emails/activation_email_subject.txt', d)
                subject = ''.join(subject.splitlines())
                message = render_to_string('emails/activation_email.txt', d)


                try:
                    _res = user.email_user(subject, message, settings.DEFAULT_FROM_EMAIL)
                except:
                    log.warning('Unable to send reactivation email', exc_info=True)
                    return HttpResponse(json.dumps({'success': False, 'error': _('Unable to send reactivation email')}))                
                
                
            message={'success': True, "message":"Success! %s users imported." % (n)}
        except Exception as e:
            transaction.rollback()
            message={'success': False,'message':'Import error: %s, At cvs line: %s' % (e,n)}
            
        # title = forms.CharField(max_length=50)
        # file = forms.FileField()
        
    return HttpResponse(json.dumps(message))
Example #23
0
def inscription(request):
    message = ""
    if request.method == 'POST':
        first_name = request.POST.get('firstname')
        last_name = request.POST.get('lastname')
        username = request.POST.get('name')
        email = request.POST.get('email')
        genre = request.POST.get('genre')
        passe = request.POST.get('pass')
        repass = request.POST.get('repass')

        if passe != repass:
            message = "mot de passe incorrect "
            print("mot de passe incorrect")
        else:
            message = "correct"
            print("success")
            try:
                print("3")
                validate_email(email)
                isemail = True
                if isemail and not email.isspace(
                ) and first_name is not None and not first_name.isspace(
                ) and last_name is not None and passe is not None and repass is not None:
                    try:
                        print("2")
                        try:
                            exist_user = User.objects.get(username=username)
                        except:
                            exist_user = User.objects.get(email=email)

                        message = "un utilisateur avec le même username ..."
                    except Exception as e:
                        print("1", e)
                        user = User(first_name=first_name,
                                    last_name=last_name,
                                    username=username,
                                    email=email,
                                    is_active=False)
                        user.save()
                        user.password = passe
                        user.set_password(user.password)
                        user.save()
                        current_site = get_current_site(request)
                        subject = 'Activate Your MySite Account'
                        message = render_to_string(
                            'account_activation_email.html', {
                                'user':
                                user,
                                'domain':
                                current_site.domain,
                                'uid':
                                urlsafe_base64_encode(force_bytes(user.pk)),
                                'token':
                                token_.account_activation_token.make_token(
                                    user),
                            })
                        user.email_user(subject, message)
                        message = " merci de vérifier votre email pour la confirmation de votre compte"
                        try:
                            us = authenticate(username=username,
                                              password=passe)
                            if us.is_active:
                                login(request, us)
                                return redirect('index')
                        except Exception as e:
                            print("4", e)

            except Exception as e:
                print("5", e)
                message = "l'inscription a échoué"
                print("inscription echoué")

    datas = {
        "message": message,
    }
    return render(request, "inscription.html", datas)