Esempio n. 1
0
def registration(request):
    """
    注册帐号
    """
    username = request.POST.get("username")
    realname = request.POST.get("realname")
    password = request.POST.get("password")
    password2 = request.POST.get("password2")
    email = request.POST.get("email")
    email_verify_code = request.POST.get("email_verify_code")

    if not username or not password:
        return render_to_response("admin/registration.html",{"appname":'a'},RequestContext(request))

    elif not realname:
        return HttpResponse(u"真实姓名必填")

    elif not email:
        return HttpResponse(u"email必填")

    # elif not email_verify_code:
    #     return HttpResponse(u"Email确认码必填")

    # elif not verify_email_code (email, email_verify_code.strip()):
    #     return HttpResponse(u"Email确认码不对")

    elif not password or password != password2:
        return HttpResponse(u"密码为空, 或两次密码不同")

    else:
        moderator = Moderator.get(username)
        if moderator:
            return HttpResponse("该用户名已经存在,可以员工编号做为后缀")
        else:
            #测试开发期间,暂时允许同一个Email, 可以建多个 login name
            #不进一步处理

            moderator = Moderator.get_instance(username)
            moderator.username = username
            moderator.realname = realname
            moderator.email = email
            moderator.is_staff = 0
            moderator.set_password(hashlib.md5(password).hexdigest())
            moderator.in_review = True
            moderator.put()
            msg = "username: "******"谢谢注册, 请耐心等待我们管理员的人工审核.")
Esempio n. 2
0
def registration(request):
    """
    注册帐号
    """
    username = request.POST.get("username")
    realname = request.POST.get("realname")
    password = request.POST.get("password")
    password2 = request.POST.get("password2")
    email = request.POST.get("email")
    email_verify_code = request.POST.get("email_verify_code")

    if not username or not password:
        return render_to_response("admin/registration.html", {"appname": 'a'},
                                  RequestContext(request))

    elif not realname:
        return HttpResponse(u"真实姓名必填")

    elif not email:
        return HttpResponse(u"email必填")

    # elif not email_verify_code:
    #     return HttpResponse(u"Email确认码必填")

    # elif not verify_email_code (email, email_verify_code.strip()):
    #     return HttpResponse(u"Email确认码不对")

    elif not password or password != password2:
        return HttpResponse(u"密码为空, 或两次密码不同")

    else:
        moderator = Moderator.get(username)
        if moderator:
            return HttpResponse("该用户名已经存在,可以员工编号做为后缀")
        else:
            #测试开发期间,暂时允许同一个Email, 可以建多个 login name
            #不进一步处理

            moderator = Moderator.get_instance(username)
            moderator.username = username
            moderator.realname = realname
            moderator.email = email
            moderator.is_staff = 0
            moderator.set_password(hashlib.md5(password).hexdigest())
            moderator.in_review = True
            moderator.put()
            msg = "username: "******"谢谢注册, 请耐心等待我们管理员的人工审核.")
Esempio n. 3
0
    def wrapped_view_func(request, *args, **kwargs):
        path = request.path
        moderator = apps.admin.auth.get_moderator_by_request(request)

        # 管理员信息失效
        if moderator is None:
            return HttpResponseRedirect("/admin/login/")

        if not admin_configuration.view_perm_mappings.is_view_allow(
                path, moderator):
            return HttpResponseRedirect("/admin/login/")
        else:
            index_list = admin_configuration.view_perm_mappings.get_allow_index_paths(
                moderator)
            # request.index_list = index_list
            return_inf = view_func(request, *args, **kwargs)
            if isinstance(return_inf, tuple):
                template, data = return_inf
                data["appname"] = settings.APP_NAME
                data["index_list"] = index_list

                # 新账号提醒
                if moderator.permissions == 'super':
                    in_review_list = Moderator.find({'in_review': True})
                    if in_review_list:
                        data["message"] = True
                return render_to_response(template, data,
                                          RequestContext(request))
            else:
                return return_inf
Esempio n. 4
0
    def wrapped_view_func(request, *args, **kwargs):
        path = request.path
        moderator = apps.admin.auth.get_moderator_by_request(request)

        # 管理员信息失效
        if moderator is None:
            return HttpResponseRedirect("/admin/login/")

        if not admin_configuration.view_perm_mappings.is_view_allow(path, moderator):
            return HttpResponseRedirect("/admin/login/")
        else:
            index_list = admin_configuration.view_perm_mappings.get_allow_index_paths(moderator)
            # request.index_list = index_list
            return_inf = view_func(request, *args, **kwargs)
            if isinstance(return_inf, tuple):
                template, data = return_inf
                data["appname"] = settings.APP_NAME
                data["index_list"] = index_list

                # 新账号提醒
                if moderator.permissions == "super":
                    in_review_list = Moderator.find({"in_review": True})
                    if in_review_list:
                        data["message"] = True
                return render_to_response(template, data, RequestContext(request))
            else:
                return return_inf
Esempio n. 5
0
def get_mid_by_username(username):
    "获取管理员"
    from apps.admin.models import Moderator
    moderator = Moderator.get(username)
    if moderator:
        return moderator.mid
    else:
        return None
Esempio n. 6
0
def agree_inreview(request):
    """
    带审核的帐号列表列表
    """
    # 取数据库
    from apps.admin.models import Moderator
    mod_list = Moderator.find({'in_review':True})
    return "admin/moderator_list.html", {"moderator_list":mod_list}
Esempio n. 7
0
def get_mid_by_username(username):
    "获取管理员"
    from apps.admin.models import Moderator
    moderator = Moderator.get(username)
    if moderator:
        return moderator.mid
    else:
        return None
Esempio n. 8
0
def agree_inreview(request):
    """
    带审核的帐号列表列表
    """
    # 取数据库
    from apps.admin.models import Moderator
    mod_list = Moderator.find({'in_review': True})
    return "admin/moderator_list.html", {"moderator_list": mod_list}
Esempio n. 9
0
def moderator_list(request):
    """
    管理员列表
    """
    # 取数据库
    from apps.admin.models import Moderator
    mod_list = Moderator.find({'is_staff':1})
    mod_list.sort(key=lambda mod: mod.last_login, reverse=True)   #sort according to data
    return "admin/moderator_list.html", {"moderator_list":mod_list}
Esempio n. 10
0
def get_moderator(mid):
    """
    获取管理员
    """
    from apps.admin.models import Moderator
    moderator_list = Moderator.find({'mid':int(mid)})
    if moderator_list:
        return moderator_list[0]
    else:
        return None
Esempio n. 11
0
def get_moderator(mid):
    """
    获取管理员
    """
    from apps.admin.models import Moderator
    moderator_list = Moderator.find({'mid': int(mid)})
    if moderator_list:
        return moderator_list[0]
    else:
        return None
Esempio n. 12
0
def moderator_list(request):
    """
    管理员列表
    """
    # 取数据库
    from apps.admin.models import Moderator
    mod_list = Moderator.find({'is_staff': 1})
    mod_list.sort(key=lambda mod: mod.last_login,
                  reverse=True)  #sort according to data
    return "admin/moderator_list.html", {"moderator_list": mod_list}
Esempio n. 13
0
def view_all_permissions(request):
    from apps.admin.models import Moderator
    mod_list = list( Moderator.find({'is_staff':1}) )
    mod_list.sort(key=lambda mod: mod.mid)   #sort according to 'mid'

#   return render_to_response("admin/moderator_list.html",{"moderator_list":mod_list},RequestContext(request))

    for mod in mod_list:
        mod.perms = []
        for perm in mod.get_permissions():
            mod.perms.append(admin_configuration.all_permissions[perm])

    return "admin/moderator_all_perm.html", {"moderator_list":mod_list}
Esempio n. 14
0
def view_all_permissions(request):
    from apps.admin.models import Moderator
    mod_list = list(Moderator.find({'is_staff': 1}))
    mod_list.sort(key=lambda mod: mod.mid)  #sort according to 'mid'

    #   return render_to_response("admin/moderator_list.html",{"moderator_list":mod_list},RequestContext(request))

    for mod in mod_list:
        mod.perms = []
        for perm in mod.get_permissions():
            mod.perms.append(admin_configuration.all_permissions[perm])

    return "admin/moderator_all_perm.html", {"moderator_list": mod_list}
Esempio n. 15
0
def forgot_password(request):
    """
    忘记密码. 若作公开上线,开放注册的网站,须要让用户可以找回忘记的密码
    """
    username = request.POST.get("username")
    password = request.POST.get("password")
    password2 = request.POST.get("password2")
    email = request.POST.get("email")
    email_verify_code = request.POST.get("email_verify_code")

    data = {}

    captcha_word = request.POST.get("captcha_word", '')
    captcha_img_id = request.POST.get("captcha_img_id", '')
    if not captcha_img_id:
        captcha_img_id = get_captcha_image_id()
    data['captcha_img_id'] = captcha_img_id

    if not username or not password or not email or not email_verify_code:
        #请用户填表格
        return render_to_response("admin/forgot_password.html", data,
                                  RequestContext(request))

    #开始检查用户的输入
    if not captcha_check(img_id=captcha_img_id, word=captcha_word):
        return HttpResponse(u"图片验证码不对, 或已过期, 或已用它查过一次(不论对或错). 请返回, 刷新, 重试.")

    elif not email_verify_code:
        return HttpResponse(u"Email确认码必填")

    elif not verify_email_code(email, email_verify_code.strip()):
        return HttpResponse(u"Email确认码不对")

    elif password != password2:
        return HttpResponse(u"两次密码不同")

    else:
        moderator = Moderator.get(username)
        if not moderator:
            return HttpResponse("不存在该用户名.")

        if moderator.email != email:
            return HttpResponse("用户 " + username + " 的Email 不是: " + email)

        moderator.set_password(hashlib.md5(password).hexdigest())
        moderator.put()

        return HttpResponse(u"您的密码已更新, 请重新登录.")
Esempio n. 16
0
def forgot_password(request):
    """
    忘记密码. 若作公开上线,开放注册的网站,须要让用户可以找回忘记的密码
    """
    username = request.POST.get("username")
    password = request.POST.get("password")
    password2 = request.POST.get("password2")
    email = request.POST.get("email")
    email_verify_code = request.POST.get("email_verify_code")

    data = {}

    captcha_word = request.POST.get("captcha_word", '')
    captcha_img_id = request.POST.get("captcha_img_id", '')
    if not captcha_img_id:
        captcha_img_id = get_captcha_image_id()
    data['captcha_img_id'] = captcha_img_id

    if not username or not password or not email or not email_verify_code:
        #请用户填表格
        return render_to_response("admin/forgot_password.html", 
                data, RequestContext(request))

    #开始检查用户的输入
    if not captcha_check(img_id=captcha_img_id, word=captcha_word):
        return HttpResponse(u"图片验证码不对, 或已过期, 或已用它查过一次(不论对或错). 请返回, 刷新, 重试.")

    elif not email_verify_code:
        return HttpResponse(u"Email确认码必填")

    elif not verify_email_code (email, email_verify_code.strip()):
        return HttpResponse(u"Email确认码不对")

    elif password != password2:
        return HttpResponse(u"两次密码不同")

    else:
        moderator = Moderator.get(username)
        if not moderator:
            return HttpResponse("不存在该用户名.")

        if moderator.email != email:
            return HttpResponse("用户 " + username + " 的Email 不是: " + email)

        moderator.set_password(hashlib.md5(password).hexdigest())
        moderator.put()

        return HttpResponse(u"您的密码已更新, 请重新登录.")
Esempio n. 17
0
def add_moderator(request):
    """
     新建管理员
    """
    if request.method == "POST":
        from apps.admin.models import Moderator
        form = ModeratorCreationForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data["username"]
            password = form.cleaned_data["password1"]
            permissions = form.cleaned_data["permissions"]
            moderator = Moderator.get_instance(username)
            moderator.username = username
            moderator.is_staff = 1
            moderator.email = form.cleaned_data["email"]
            moderator.last_login = datetime.datetime.now()
            moderator.set_password(hashlib.md5(password).hexdigest())
            moderator.set_permissions(permissions)
            moderator.put()
            return HttpResponseRedirect('/admin/moderator/add_moderator_done/')
    else:
        form = ModeratorCreationForm()
    return "admin/add_moderator.html", {'form':form}
Esempio n. 18
0
def add_moderator(request):
    """
     新建管理员
    """
    if request.method == "POST":
        from apps.admin.models import Moderator
        form = ModeratorCreationForm(request.POST)
        if form.is_valid():
            username = form.cleaned_data["username"]
            password = form.cleaned_data["password1"]
            permissions = form.cleaned_data["permissions"]
            moderator = Moderator.get_instance(username)
            moderator.username = username
            moderator.is_staff = 1
            moderator.email = form.cleaned_data["email"]
            moderator.last_login = datetime.datetime.now()
            moderator.set_password(hashlib.md5(password).hexdigest())
            moderator.set_permissions(permissions)
            moderator.put()
            return HttpResponseRedirect('/admin/moderator/add_moderator_done/')
    else:
        form = ModeratorCreationForm()
    return "admin/add_moderator.html", {'form': form}