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: "******"谢谢注册, 请耐心等待我们管理员的人工审核.")
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: "******"谢谢注册, 请耐心等待我们管理员的人工审核.")
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
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
def get_mid_by_username(username): "获取管理员" from apps.admin.models import Moderator moderator = Moderator.get(username) if moderator: return moderator.mid else: return None
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}
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}
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}
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
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
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}
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}
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}
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"您的密码已更新, 请重新登录.")
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"您的密码已更新, 请重新登录.")
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}
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}