Beispiel #1
0
def register_handle(request):  # 注册
    # 接收用户输入
    post = request.POST
    uname = post.get("user_name")
    upwd = post.get("pwd")
    upwd2 = post.get("cpwd")
    utel = post.get("tel")
    email = post.get("email")
    print(email)
    # 密码加密
    s1 = sha1()
    s1.update(upwd.encode("utf-8"))  # 必须指定要加密的字符串的字符编码
    upwd3 = s1.hexdigest()  # 获得加密之后的结果
    # 创建对象,保存到数据库
    user = MyUser()
    user.name = uname
    user.upwd = upwd3
    user.phone = utel
    user.email = email
    user.save()
    print("存入成功")
    """发送邮件"""
    # 组织邮件信息
    subject = "心居客欢迎信息"
    message = ""
    sender = settings.EMAIL_FROM
    receiver = [email]
    html_message = "<h1>欢迎%s成为心居客注册会员,您的账号为:%s,密码为:%s" % (uname, uname, upwd)
    send_mail(subject, message, sender, receiver, html_message=html_message)
    # 注册成功,转到登录界面
    return render(request, "user/login.html", {"title": "用户注册"})
Beispiel #2
0
    def create(self, validated_data):
        if MyUser.objects.filter(display_name=validated_data['display_name']).count() > 0:
            raise ValidationError({"email": ["This user has already been registered"]})
        username = validated_data.get('display_name')
        display_name = validated_data.get('display_name')
        points = validated_data.get('points', 0)
        country = validated_data.get('country')

        user_obj = MyUser(
            username=username,
            display_name=display_name,
            points=points,
            country=country,
        )
        user_obj.save()
        return user_obj
Beispiel #3
0
def jwt_payload_handler(user):
    return {
        'user_id': user.pk,
        'username': user.username,
        'scope': MyUser.get_scope(user),
        'exp': timezone.now() + settings.JWT_AUTH['JWT_EXPIRATION_DELTA'],
    }
Beispiel #4
0
def jwt_response_payload_handler(token, user=None, request=None):
    url_name = request.resolver_match.url_name

    if url_name == 'login-worker':
        if MyUser.is_worker(user):
            return {
                'token': token,
                'worker': PublicWorkerDetailSerializer(user.worker).data,
                'scope': MyUser.get_scope(user),
            }
        raise ValidationError({"detail": "Must be a worker."})
    elif url_name == 'login-admin':
        if MyUser.is_director(user) or MyUser.is_technologist(user):
            return {
                'token': token,
                'user': UserProfileSerializer(user).data,
                'scope': MyUser.get_scope(user),
            }
        raise ValidationError({"detail": "Must be an admin."})
Beispiel #5
0
class Post(models.Model):
    post = models.AutoField(primary_key=True)
    user = models.ForeignKey(MyUser(id),
                             on_delete=models.CASCADE,
                             blank=True,
                             null=False)
    content = models.TextField(blank=True, null=True)
    photo = models.FileField(null=True)
    created_at = models.DateTimeField(auto_now_add=True)
    hashtag = models.CharField(max_length=1000)
    public = models.CharField(max_length=100)
    feeling = models.CharField(max_length=1000, blank=True, null=True)
Beispiel #6
0
class Comment(models.Model):
    comment = models.AutoField(primary_key=True)
    post = models.ForeignKey(Post,
                             on_delete=models.CASCADE,
                             blank=False,
                             null=False)
    user = models.ForeignKey(MyUser(id),
                             on_delete=models.CASCADE,
                             blank=False,
                             null=False)
    content = models.TextField(blank=True, null=True)
    created_at = models.DateTimeField(auto_now_add=True)
Beispiel #7
0
def register(request):
    if request.method == 'GET':
        # GET 访问http://127.0.0.1:8000/register/
        return render(request, 'register.html')

    if request.method == 'POST':
        # 1. 先获取注册的账号和密码和确认密码
        username = request.POST.get('username')
        password = request.POST.get('password')
        password2 = request.POST.get('password2')
        # 2. 判断用户名是否已经被注册过
        user = MyUser.objects.filter(username=username).first()
        if user:
            # 已经存在该账号
            err_name = '该账号已被注册,请换一个账号注册'
            # return HttpResponse(err_name)
            return render(request, 'register.html', {'err_name': err_name})
        # 3. 判断密码和确认密码是否相同
        if password and password2:
            if password != password2:
                err_pwd = '密码和确认密码不一致,请修改密码'
                data = {'err_pwd': err_pwd}
                return render(request, 'register.html', data)
        else:
            err_pwd = '密码不能为空'
            return render(request, 'register.html', {'err_pwd': err_pwd})

        # 4. 如果用户名不存在,且密码和确认密码相同,则实现注册,保存数据
        user = MyUser()
        user.username = username
        user.password = password
        user.save()
        # return render(request, 'login.html')
        # 实现跳转到登录页面
        return HttpResponseRedirect('/login/')
 def test_fields(self):
     item = MyUser()
     item.display_name = "disp_name1"
     item.username = "******"
     item.save()
     url = '/user/login'
     data = {
         'username': '******',
     }
     response = self.client.post(url, data, format='json')
     self.assertValidJSONResponse(response)
     token = response.data['token']
     url_submit = '/score/submit'
     data_submit = {
         'points': 4,
     }
     auth = 'JWT {0}'.format(token)
     resp = self.api_client.post(url_submit,data=data_submit, HTTP_AUTHORIZATION=auth, format='json')
     self.assertValidJSONResponse(resp)
     data_submit_2 = {
         'points': 5,
     }
     resp = self.api_client.post(url_submit, data=data_submit_2, HTTP_AUTHORIZATION=auth, format='json')
     self.assertValidJSONResponse(resp)
     record = MyUser.objects.get(display_name='disp_name1')
     self.assertEqual(9, record.points)
Beispiel #9
0
    def create(email, password):
        if User.objects.filter(username=email).exists():
            raise UserAlreadyExist

        with transaction.atomic():
            auth_user = User.objects.create_user(username=email,
                                                 password=password)

            my_user = MyUser()
            my_user.auth_user = auth_user
            my_user.email = email
            my_user.display_name = email
            my_user.api_key = generate_token(40)
            my_user.save()
            return my_user
Beispiel #10
0
 def test_fields(self):
     item = MyUser()
     item.display_name = "disp_name"
     item.username = "******"
     item.save()
     record = MyUser.objects.get(display_name='disp_name')
     self.assertEqual(item, record)
     url = '/user/login'
     data = {
         'username': '******',
     }
     response = self.client.post(url, data, format='json')
     self.assertValidJSONResponse(response)
     token = response.data['token']
     auth = 'JWT {0}'.format(token)
     resp = self.api_client.get('/user/profile',
                                HTTP_AUTHORIZATION=auth,
                                format='json')
     self.assertValidJSONResponse(resp)
Beispiel #11
0
 def post(self, request):
     data = json.loads(request.body.decode('utf-8'))
     email = data['email']
     if not MyUser.objects.filter(email=email).exists():
         new_user = MyUser()
         new_user.first_name = data['firstname']
         new_user.last_name = data['lastname']
         new_user.username = data['username']
         new_user.email = data['email']
         new_user.set_password(data['password1'])
         new_user.birthday = data['birthday']
         new_user.gender = data['gender']
         new_user.is_active = 0
         new_user.save()
         new_user = MyUser.objects.filter(username=data['username'])
         if new_user:
             mail_content = "Hello"
             mail_title = "Welcome to Shili!"
             one_time_pad = MaHoaOneTimePad()
             result = one_time_pad.ma_hoa(email)
             domain = request.scheme + '://' + request.META['HTTP_HOST']
             url = domain + '/xacthuc/' + result[0] + '/' + result[1]
             content = "Nhấp vào đây để Xác thực tài khoản của bạn"
             theme = ShiliEmail()
             msg_html = theme.form_mail(url, content, email)
             send_mail(mail_title, mail_content, "PLC", [email], html_message=msg_html, fail_silently=False)
             return HttpResponse(
                 'Đăng kí thành công tài khoản. Kiểm tra email để nhận liên kết kích hoạt tài khoản')
         else:
             return HttpResponse('Có lỗi xảy ra! Vui lòng thử lại')
Beispiel #12
0
 def setUp(self):
     user_a = MyUser()
Beispiel #13
0
import os
import django

os.environ.setdefault("DJANGO_SETTINGS_MODULE", "TikTok.settings")
django.setup()

from problems.models import Group
from user.models import MyUser
from django.utils import timezone
from django.contrib.auth.models import User

if __name__ == "__main__":
    x = Group(name=u"Główny zbiór zadań", shortname="MAIN", pub_date=timezone.now())
    x.save()

    admin = MyUser(user=User.objects.all()[0])
    admin.save()
Beispiel #14
0
 def has_permission(self, request, view):
     user = request.user
     return request.user and MyUser.is_worker(
         user) and user.worker.is_active
Beispiel #15
0
 def post(self, request):
     password1 = request.POST.get('password1')
     password2 = request.POST.get('password2')
     new_user = MyUser()
     new_user.first_name = request.POST.get('first_name')
     new_user.last_name = request.POST.get('last_name')
     new_user.username = request.POST.get('username')
     new_user.email = request.POST.get('email')
     new_user.email = request.POST.get('email')
     new_user.birthday = request.POST.get('birthday')
     new_user.gender = request.POST.get('gender')
     password = {
         'password1': password1,
         'password2': password2,
     }
     err = []
     x = True
     if MyUser.objects.filter(username=new_user.username):
         x = x and False
         err.append('Username này đã tồn tại trong hệ thống, xin thử lại')
     if MyUser.objects.filter(email=new_user.email):
         x = x and False
         err.append(
             'Địa chỉ email đã tồn tại trong hệ thống, Hãy check email khác'
         )
     if not x:
         return render(
             request, 'home/index.html', {
                 'newuser': new_user,
                 'password': password,
                 'themes': 'register',
                 'err': err
             })
     else:
         email = new_user.email
         new_user.set_password(password1)
         new_user.is_active = 0
         new_user.save()
         one_time_pad = MaHoaOneTimePad()
         result = one_time_pad.ma_hoa(email)
         domain = request.scheme + '://' + request.META['HTTP_HOST']
         url = domain + '/xacthuc/' + result[0] + '/' + result[1]
         content = "We're excited to have you get started. First, you need to confirm your account. Just press the button below."
         theme = ShiliEmail()
         msg_html = theme.form_mail(url, content, email)
         send_mail("Welcome to Shili!",
                   "Hello",
                   "PLC", [email],
                   html_message=msg_html,
                   fail_silently=False)
         err.append(
             'Đăng kí thành công tài khoản. Kiểm tra email để nhận liên kết kích hoạt tài khoản'
         )
         # return render(request, 'home/index.html', {'themes': 'register',  'err': err})
         return redirect('home:test')