Esempio n. 1
0
def login(request):
    if request.session.get('is_login'):     #不允许重复登陆
        return redirect("/index/")
    if request.method=="POST":   #提交表单后,满足请求为post就执行下面的内容
        message = '所有字段都必须填写'
        login_form=forms.UserForm(request.POST)    #获取每个input标签
        # username = request.POST.get('username')       #获取表单中输入的用户名和密码
        # password = request.POST.get('password')
        # print(username,password)
        # if username and password :    #用户名和密码都不为空
        #     username=username.strip()  #清除用户名前后的空格
        if login_form.is_valid():     #这个就是用于验证输入表单内容的合法性
            username=login_form.cleaned_data['username']      #cleaned_data会将input标签中的变量和值作为以字典的一个元素形式表现出来
            password=login_form.cleaned_data['password']
        # user = User(username, password)         #添加到User表中
        # user.save()                             #存储到数据库中
            #查询数据库中是否存在该用户名和密码
            t_username=User.objects.filter(name=username)
            print(t_username)
            t_password=User.objects.filter(password=password)
            if t_username and t_password:
                request.session['is_login']=True     #写入用户状态和数据
                # request.session['user_id']=t_username.id
                request.session['user_name']=username
                return redirect('/index/')
            elif not t_username:
                # return HttpResponse('用户名不存在')
                message='用户名不存在'
            elif not t_password:
                # return HttpResponse('密码不存在')
                message='密码不存在'
        return render(request,'login/login.html',{"message":message,"login_form":login_form})   #将message信息通过模板传递到网页
    login_form=forms.UserForm()         #保留输入的错误字段
    return render(request,'login/login.html',{"login_form":login_form})
Esempio n. 2
0
def newsite(req):
    import base.models as M, random, string 
    form                = None
    auth_user           = UR.getUserInfo(req)
    ensemble_form       = None
    user_form           = None
    if auth_user is not None: 
        return HttpResponseRedirect("/")
    if req.method == 'POST':
        user            = M.User(confkey="".join([choice(string.ascii_letters+string.digits) for i in xrange(0,32)]))
        ensemble        = M.Ensemble()
        user_form       = forms.UserForm(req.POST, instance=user)
        ensemble_form   = forms.EnsembleForm(req.POST, instance=ensemble)
        if user_form.is_valid() and ensemble_form.is_valid():             
            user_form.save()
            ensemble.invitekey =  "".join([ random.choice(string.ascii_letters+string.digits) for i in xrange(0,50)])      
            ensemble_form.save()
            m = M.Membership(user=user, ensemble=ensemble, admin=True)
            m.save()
            p = {"tutorial_url": settings.GUEST_TUTORIAL_URL, "conf_url": "http://%s?ckey=%s" %(settings.NB_SERVERNAME, user.confkey), "firstname": user.firstname, "email": user.email, "password": user.password }
            email = EmailMessage(
                "Welcome to NB, %s" % (user.firstname),
                render_to_string("email/confirm_newsite", p), 
                settings.EMAIL_FROM, 
                (user.email, ), 
                (settings.EMAIL_BCC, ))
            email.send()
            return HttpResponseRedirect('/newsite_thanks')       
    else: 
        user_form       = forms.UserForm()
        ensemble_form   = forms.EnsembleForm()
    return render_to_response("web/newsite.html", {"user_form": user_form, "ensemble_form": ensemble_form})
Esempio n. 3
0
def users(request, username=None) :
  wikidbase.core.security.barrier(request.user.username, "access administration pages")

  users = wikidbase.core.security.getUsers()

  if username :
    user = wikidbase.core.security.getUser(username)
  else :
    user = None

  if request.method == 'POST':
    userForm = forms.UserForm(request.POST)
    if userForm.is_valid():
      userForm.save()
      if user :
        wikidbase.core.session.setMessage(request, message="The user has been updated.")
        return django.http.HttpResponseRedirect("/controlpanel/users/%s" % username)
      else :
        wikidbase.core.session.setMessage(request, message="The new user has been added.")
        return django.http.HttpResponseRedirect("/controlpanel/users")
  else:
    userForm = forms.UserForm(user=user)

  context = {
    "users":users,
    "pageTabs":getPageTabs("Users"),
    "userForm":userForm,
  }
  return django.shortcuts.render_to_response("users.html", django.template.RequestContext(request, context))  
Esempio n. 4
0
def subscribe(req):
    key = req.GET.get("key", "")
    e = M.Ensemble.objects.get(invitekey=key)
    if not e.use_invitekey:
        return HttpResponseRedirect("/notallowed")
    auth_user = UR.getUserInfo(req)
    user = None
    P = {"ensemble": e, "key": key}
    if req.method == 'POST':
        if auth_user is None:
            user = M.User(confkey="".join([
                choice(string.ascii_letters + string.digits)
                for i in xrange(0, 32)
            ]))
            user_form = forms.UserForm(req.POST, instance=user)
            if user_form.is_valid():
                user_form.save()
                m = M.Membership(user=user, ensemble=e)
                m.save(
                )  #membership exists but user is still invalid until has confirmed their email
                p = {
                    "tutorial_url":
                    settings.GUEST_TUTORIAL_URL,
                    "conf_url":
                    "%s://%s/?ckey=%s" %
                    (settings.PROTOCOL, settings.NB_SERVERNAME, user.confkey),
                    "firstname":
                    user.firstname,
                    "email":
                    user.email
                }
                email = EmailMessage(
                    "Welcome to NB, %s" % (user.firstname, ),
                    render_to_string("email/confirm_subscribe",
                                     p), settings.EMAIL_FROM, (user.email, ),
                    (settings.EMAIL_BCC, ))
                email.send()
                return HttpResponseRedirect('/subscribe_thanks')
            else:
                P["form"] = forms.UserForm(req.POST, instance=user)
                return render_to_response("web/subscribe_newuser.html", P)
        else:
            user = auth_user
            m = M.Membership.objects.filter(user=user, ensemble=e)
            if m.count() == 0:
                m = M.Membership(user=user, ensemble=e)
                m.save()
            return HttpResponseRedirect('/')
        #user_form = forms.EnterYourNameUserForm(req.POST, instance=user)
    else:
        if auth_user is not None:
            P["user"] = auth_user
            P["form"] = forms.UserForm(instance=user)
            return render_to_response("web/subscribe_existinguser.html", P)
        else:
            P["form"] = forms.UserForm()
            return render_to_response("web/subscribe_newuser.html", P)
Esempio n. 5
0
def student_add(request):
    if request.POST.has_key('add'):
        form = forms.UserForm(request.POST)
        form.fields['grade'].choices = common_def.get_all_grades(
            request.session['school_type'], prompt=True)
        form.fields['myclass'].choices = cache.get_grade_classes(
            request.session['school'], int(request.POST['grade']))
        if form.is_valid():
            uname = form.cleaned_data['username']
            #utype = int(form.cleaned_data['type'])
            with transaction.commit_on_success():
                user = User.objects.create(
                    username=uname,
                    first_name=form.cleaned_data['name'],
                    email=form.cleaned_data['email'])
                user.set_password(form.cleaned_data['password'])
                user.save()
                profile = user.userprofile
                profile.usertype = common_def.USERTYPE_STUDENT
                profile.region_id = request.session['region']
                profile.school_id = request.session['school']
                profile.myclass_id = int(request.POST['myclass'])
                profile.gender = form.cleaned_data['gender']
                profile.birthday = form.cleaned_data['birthday']
                profile.telphone = form.cleaned_data['tel']
                profile.contact = json.dumps(
                    {
                        'tel': profile.telphone,
                        'email': user.email
                    },
                    ensure_ascii=False)
                profile.save()
                log.log_addition(request.user, user, u'添加用户')
            return HttpResponseRedirect('/student/list/')
    elif request.POST:
        # change grade
        grade = int(request.POST['grade'])
        cache.set_selected_grade(request.user, 'change_student', grade, 300)
        form = forms.UserForm(request.POST)
        form.fields['grade'].choices = common_def.get_all_grades(
            request.session['school_type'], prompt=True)
        form.fields['myclass'].choices = cache.get_grade_classes(
            request.session['school'], grade)
        form.errors.clear()
    else:
        grade = cache.get_selected_grade(request.user, 'change_student')
        form = forms.UserForm(initial={'grade': grade})
        form.fields['grade'].choices = common_def.get_all_grades(
            request.session['school_type'], prompt=True)
        form.fields['myclass'].choices = cache.get_grade_classes(
            request.session['school'], grade)
    ctx = RequestContext(request, {
        'form': form,
    })
    return render_to_response('change_user.html', ctx)
def user_new(request):
    if request.method == 'POST':
        form = forms.UserForm(request.POST)
        if form.is_valid():
            user = form.save()
            return HttpResponseRedirect(reverse('user_login'))
        else:
            return render(request, 'website/user_new.html', {'form': form})
    else:
        form = forms.UserForm()
    return render(request, 'website/user_new.html', {'form': form})
Esempio n. 7
0
def form():
    user_form = forms.UserForm(request.form)
    if request.method == 'POST' and user_form.validate():
        print('OK')
    else:
        print('ERROR')
    return render_template('form.html', form=user_form, title='Form')
Esempio n. 8
0
    def post(self):
        form = forms.UserForm(self)
        if form.validate():
            self.write('Hello %s' % form.planet.data)
        else:
            self.render('index.html', form=form)

        email = self.get_argument('email', '').strip()
        username = self.get_argument('username', '').strip()
        password1 = self.get_argument('password1', '').strip()
        password2 = self.get_argument('password2', '').strip()

        if password1 != password2:
            error_msg = tornado.escape.url_escape("Password is not match!")
            self.write(u'/user/register?error=' + error_msg)
            return

        if email == '':
            error_msg = tornado.escape.url_escape("Email is required!")
            self.redirect(u"/user/register?error=" + error_msg)
            return
        else:
            if email.find('@') == -1:
                error_msg = tornado.escape.url_escape("Email is invalid!")
                self.redirect(u"/user/register?error=" + error_msg)

        if not username:
            username = email.split('@')[0]

        exist, msg = yield self.exist(email=email, username=username)
        if exist:
            # exist user email or username
            error_msg = u'?error=' + tornado.escape.url_escape(
                'Login name already taken')
            self.redirect(u'/user/register?error=' + error_msg)
            return

        if password1:
            password = password1
        else:
            error_msg = u'?error=' + tornado.escape.url_escape(
                'Password not set')
            self.redirect(u'/user/register?error=' + error_msg)
            return

        user = {}
        user['email'] = email
        user['username'] = username
        user['password'] = password

        user = yield self.add_user(**user)
        if user:
            self.set_current_user(user)

        self.redirect('/admin/user')
        return
Esempio n. 9
0
def register():
    userform = forms.UserForm()
    if userform.validate_on_submit():
        new_user = User(username=userform.username.data,
                        email=userform.email.data)
        new_user.encode_password(userform.password.data)
        db.session.add(new_user)
        db.session.commit()
        return redirect(url_for("index", _external=True, _scheme='http'))
    return render_template('register.html', template_form=userform)
Esempio n. 10
0
def update_user(userid=None):
    form = forms.UserForm()
    user_id = int(userid)
    user = models.User.get(current_user.id)
    if form.validate_on_submit():
        user.username = form.username.data
        user.email = form.email.data
        user.password = form.password.data
        user.save()
        return redirect(url_for('user', username=user.username))
    return render_template('edit-user.html', form=form, userid=userid)
def add_user():
    request_data = request.get_json()
    form = forms.UserForm(request.form)
    if request.method == 'POST':
        name = request.form['name'] or request_data['name']
        surname = request.form['surname'] or request_data['surname']
        email = request.form['email'] or request_data['email']
    if form.validate():
        cursor_dict.execute(
            "INSERT INTO `SPbSU_log_analysis_system`.`User` (email, surname, name) VALUES "
            "('{0}', '{1}', '{2}')".format(email, surname, name))
    return render_template('add_user.html', form=form)
Esempio n. 12
0
 def get(self):
     users_total = User.select().count()
     users = User.select()
     form = forms.UserForm()
     print form
     print dir(form)
     kwargs = {
         'form': form,
         'users': users,
         'users_total': users_total,
     }
     self.render('admin/user_add.html', **kwargs)
Esempio n. 13
0
def update_user(username):
    form = forms.UserForm()
    user = models.User.select().where(models.User.username == username).get()
    if form.validate_on_submit():
        filename = images.save(request.files['profile_image'])
        url = images.url(filename)
        user.username = form.username.data
        user.email = form.email.data
        user.password = generate_password_hash(form.password.data)
        user.first_name = form.first_name.data
        user.save(only=user.dirty_fields)
        return redirect(url_for('user', userid=current_user.id))
    return render_template('edit_user.html', user=user, form=form)
Esempio n. 14
0
def add_user():
    form = forms.UserForm()

    if form.validate_on_submit():
        username = form.username.data
        email = form.email.data

        user = User(username=username, email=email)
        User.users_list.append(user)

        return flask.render_template("user_added.html", user=user)

    return flask.render_template("form.html", form=form)
Esempio n. 15
0
def login(request):
    if request.session.get('is_login', None):
        return redirect("/index/")
    if request.method == "POST":
        login_form = forms.UserForm(request.POST)
        message = "请检查填写的内容!"
        if login_form.is_valid():
            username = login_form.cleaned_data['username']
            password = login_form.cleaned_data['password']
            try:
                user = User.objects.get(name=username)
                if user.password == password:
                    request.session['is_login'] = True
                    request.session['user_id'] = user.id
                    request.session['user_name'] = user.name
                    return redirect('/index/')
                else:
                    message = "密码不正确!"
            except:
                message = "用户不存在!"
        return render(request, 'login/login.html', locals())
    login_form = forms.UserForm()
    return render(request, 'login/login.html', locals())
Esempio n. 16
0
def edit_profile(request):
    """Edit user profile view."""
    # Don't user request.user
    user = User.objects.get(pk=request.user.id)
    profile = user.get_profile()
    user_groups = stringify_groups(profile.groups.all().order_by('name'))
    user_skills = stringify_groups(profile.skills.all().order_by('name'))
    user_languages = stringify_groups(profile.languages.all().order_by('name'))

    user_form = forms.UserForm(request.POST or None, instance=user)
    new_profile = False
    form = forms.ProfileForm
    if not profile.is_complete:
        new_profile = True
        form = forms.RegisterForm

    profile_form = form(request.POST or None,
                        request.FILES or None,
                        instance=profile,
                        locale=request.locale,
                        initial=dict(groups=user_groups,
                                     skills=user_skills,
                                     languages=user_languages))

    if (user_form.is_valid() and profile_form.is_valid()):
        old_username = request.user.username
        user_form.save()
        profile_form.save()

        # Notify the user that their old profile URL won't work.
        if new_profile:
            _update_invites(request)
            messages.info(request, _(u'Your account has been created.'))
        elif user.username != old_username:
            messages.info(
                request,
                _(u'You changed your username; please note your '
                  'profile URL has also changed.'))
        return redirect(reverse('profile', args=[user.username]))

    data = dict(profile_form=profile_form,
                user_form=user_form,
                user_groups=user_groups,
                my_vouches=UserProfile.objects.filter(vouched_by=profile),
                profile=request.user.userprofile,
                apps=user.apiapp_set.filter(is_active=True))

    # If there are form errors, don't send a 200 OK.
    status = 400 if (profile_form.errors or user_form.errors) else 200
    return render(request, 'phonebook/edit_profile.html', data, status=status)
Esempio n. 17
0
def obtain_user_data(update):
    data = request.data.decode()
    if data:
        data_dict = ast.literal_eval(data)
        if update:
            user_form = form.UpdateUserForm.from_json(data_dict)
        else:
            user_form = form.UserForm.from_json(data_dict)
    else:
        data = request.form
        if update:
            user_form = form.UpdateUserForm(data)
        else:
            user_form = form.UserForm(data)

    return user_form
Esempio n. 18
0
def system_users(url_type=None):
    etcd_conn = Etcd()
    headers = [(_('Username'), 'username'), (_('Role'), 'role'), (_('Enabled'), 'enabled')]
    button_list = [{'name': _('New'), 'href': '/system_users/change'}, {'name': _('List'), 'href': '/system_users'}]
    if url_type == 'change':
        form = forms.UserForm()
        if form.validate_on_submit():
            status = False
            if form.enabled.data is True:
                status = True
            row = {"enabled": status, "locale": form.locale.data, "email": form.email.data,
                   "username": form.username.data, "role": form.role.data}
            if flask.request.args.get('key'):
                if form.password.data:
                    row['password'] = g.user.hash_password(form.password.data)
                else:
                    form_data = etcd_conn.get_list(flask.request.args.get('key'))
                    row['password'] = form_data.get('password')
            else:
                row['password'] = g.user.hash_password(form.password.data)
            etcd_conn.put('/appuser/' + form.username.data, json.dumps(row))
            flash(_('System User') + ' ' + _('Added') + ' / ' + _('Updated'), 'info')
            return flask.redirect(flask.url_for('system_users'))
        elif flask.request.args.get('key'):
            form_data = etcd_conn.get_list(flask.request.args.get('key'))
            form.enabled.data = False
            if form_data.get('enabled') is True:
                form.enabled.data = True
            form.username.render_kw = {'readonly': True}
            form.email.data = form_data.get('email')
            form.locale.data = form_data.get('locale')
            form.username.data = form_data.get('username')
            form.role.data = form_data.get('role')
        return flask.render_template('list.html', main_header=_('Users'), form=form, button_list=button_list)
    elif url_type == 'delete':
        etcd_conn.delete(flask.request.args.get('key'))
        flash(_('SQL User') + ' ' + _('Deleted'), 'error')
        return flask.redirect(flask.url_for('system_users'))
    group_list = etcd_conn.search('/appuser/')
    page = pagination(len(group_list))

    links = [{'name': _('Delete'), 'type': 'danger', 'link': '/system_users/delete'},
             {'name': _('Update'), 'type': 'info', 'link': '/system_users/change'}]
    return flask.render_template('list.html', main_header=_('SQL Users'),
                                 list=get_calculated_page(group_list, page), headers=headers,
                                 button_list=button_list, links=links, pagination=page)
Esempio n. 19
0
def user():
    form = forms.UserForm()

    if form.validate_on_submit():
        # g.user.enabled = form.enabled.data
        g.user.locale = form.locale.data
        g.user.email = form.email.data
        if form.password.data:
            g.user.password_hash = g.user.hash_password(form.password.data)
            # print(g.user.password_hash)
        g.user.set()
        flash(_('User Info') + ' ' + _('Updated'), 'success')
    else:
        form.enabled.data = g.user.enabled
        # form.username.data = g.user.username
        form.locale.data = g.user.locale
        form.email.data = g.user.email
        form.password.data = None
    form.username.data = g.user.username
    form.role.data = g.user.role
    form.username.render_kw = {'readonly': True}
    form.role.render_kw = {'readonly': True}
    form.enabled.render_kw = {'readonly': True}
    return flask.render_template('list.html', main_header=_('User Info'), form=form)
Esempio n. 20
0
def update_user(id):
    '''
    This function takes a POSTed form and updates the given
    user with values from the form.
    '''
    # Check to make sure the session user is the
    # owner of the user model they are trying to update
    if int(id) != g.user.id:
        flash('You can\'t update other user accounts')
        return redirect(url_for('view_library', id=g.user.id))

    # Check to make sure the user we are trying to
    # update actually exists

    # Start setting attributes on the user
    # For right now, we only have one attribute we care about
    form = forms.UserForm(request.form)

    should_save = False

    if form.location.data:
        g.user.location = form.location.data
        should_save = True

    if form.avatar_url.data:
        g.user.avatar_url = form.avatar_url.data
        should_save = True

    if should_save:
        model.session.add(g.user)
        model.session.commit()

    # Finally, tell the browser to redirect the user
    # to their library page
    flash('You updated your account successfully')
    return redirect(url_for('view_library', id=g.user.id))
Esempio n. 21
0
            username = login_form.cleaned_data['username']
            password = login_form.cleaned_data['password']
            try:
                user = models.User.objects.get(name=username)
                if user.password == password:
                    request.session['is_login'] = True
                    request.session['user_id'] = user.user_id
                    request.session['user_name'] = user.name
                    return redirect('/index/')
                else:
                    message = "您输入的密码不正确"
            except Exception, e:
                message = "此用户不存在"
        return render(request, 'login/login.html', locals())

    login_form = forms.UserForm()
    return render(request, 'login/login.html', locals())


def register(request):
    if request.session.get('is_login', None):
        # 登录状态不允许注册。你可以修改这条原则!
        return redirect("/index/")
    if request.method == "POST":
        register_form = forms.RegisterForm(request.POST)
        message = "请检查填写的内容!"
        if register_form.is_valid():  # 获取数据
            username = register_form.cleaned_data['username']
            password1 = register_form.cleaned_data['password1']
            password2 = register_form.cleaned_data['password2']
            email = register_form.cleaned_data['email']
Esempio n. 22
0
def student_edit(request):
    if request.POST.has_key('edit'):
        form = forms.UserForm(request.POST)
        form.fields['password'].required = False
        form.fields['password1'].required = False
        form.fields['grade'].choices = common_def.get_all_grades(
            request.session['school_type'], prompt=True)
        form.fields['myclass'].choices = cache.get_grade_classes(
            request.session['school'], int(request.POST['grade']))
        uid = request.POST['uid']
        user = User.objects.get(pk=uid)
        if form.is_valid():
            password = form.cleaned_data['password']
            if password:
                user.set_password(password)
            #utype = int(form.cleaned_data['type'])
            user.username = form.cleaned_data['username']
            user.first_name = form.cleaned_data['name']
            user.email = form.cleaned_data['email']
            profile = user.userprofile
            #profile.usertype = utype
            profile.gender = form.cleaned_data['gender']
            profile.myclass_id = form.cleaned_data[
                'myclass']  #int(request.POST['myclass'])
            profile.birthday = form.cleaned_data['birthday']
            profile.telphone = form.cleaned_data['tel']
            profile.contact = json.dumps(
                {
                    'tel': profile.telphone,
                    'email': user.email
                },
                ensure_ascii=False)
            with transaction.commit_on_success():
                user.save()
                profile.save()
                log.log_change(request.user, user, u'修改用户')
            return HttpResponseRedirect('/student/list/')
    elif request.POST.has_key('delete'):
        uid = request.POST['uid']
        user = User.objects.get(pk=uid)
        user.delete()
        log.log_deletion(request.user, user, u'删除用户')
        return HttpResponseRedirect('/student/list/')
    elif request.POST:
        # change grade
        uid = request.POST['uid']
        grade = int(request.POST['grade'])
        cache.set_selected_grade(request.user, 'change_student', grade, 300)
        form = forms.UserForm(request.POST)
        form.fields['grade'].choices = common_def.get_all_grades(
            request.session['school_type'], prompt=True)
        form.fields['myclass'].choices = cache.get_grade_classes(
            request.session['school'], grade)
        form.errors.clear()
    else:
        uid = request.GET['uid']
        profile = models.UserProfile.objects.select_related(
            'user', 'myclass').get(user__id=uid)
        grade = profile.myclass.get_grade()
        data = {
            'username': profile.user.username,
            'name': profile.user.first_name,
            #'en_name': user.last_name,
            'gender': profile.gender,
            'grade': grade,
            'myclass': profile.myclass_id,
            'birthday': profile.birthday,
            #'type': profile.usertype,
        }
        form = forms.UserForm(initial=data)
        form.fields['password'].required = False
        form.fields['password1'].required = False
        form.fields['grade'].choices = common_def.get_all_grades(
            request.session['school_type'], prompt=True)
        form.fields['myclass'].choices = cache.get_grade_classes(
            request.session['school'], grade)
    ctx = RequestContext(request, {
        'form': form,
        'uid': uid,
    })
    return render_to_response('change_user.html', ctx)