def index(request): if request.method == "POST" and request.POST.has_key("user"): u = json.loads(request.POST["user"]) try: user = User.objects.filter(instagram_id=u["instagram_id"]).get() user.token = u["token"] user.access_token = u["access_token"] # instagram's one user.pic = u["pic"] user.full_name = u["full_name"] user.save() except User.DoesNotExist: user = User() user.token = u["token"] user.access_token = u["access_token"] user.name = u["name"] user.instagram_id = u["instagram_id"] user.full_name = u["full_name"] user.pic = u["pic"] user.photos = 0 user.vote_like = u["vote_like"] user.vote_dislike = u["vote_dislike"] try: user.last_subject_id = Subject.objects.get_current().id except AttributeError: logging.error("cannot find current subject!!!") user.last_subject_id = 0 user.last_subject_points = 0 user.save() return {"body": ""}
def admin_user_add(request): context = RequestContext(request) new_user = User() if request.method == 'POST': # Retrieve data. new_user.username = request.POST.get('username') new_user.first_name = request.POST.get('first-name') new_user.last_name = request.POST.get('last-name') new_user.email = request.POST.get('email') if request.POST.get('rol', ''): new_user.is_admin = True new_user.role = request.POST.get('role') # Check if username already exists. try: User.objects.get(username=request.POST.get('username')) except User.DoesNotExist: # Password verification password = request.POST.get('password') confirm_password = request.POST.get('confirm-password') if password == confirm_password: new_user.set_password(password) else: messages.error(request, u"Las contraseñas no coinciden.", context) return TemplateResponse(request, 'admin/admin_users_add.html', context) # Save user! new_user.save() messages.info( request, u"El usuario '%s' ha sido creado." % new_user.username) return HttpResponseRedirect( reverse('admin.views.admin_user_list', urlconf='admin.urls'), context) # If username exist notify user. if User.objects.get(username=request.POST.get('username')): context.update({'new_user': new_user}) messages.error( request, u"El nombre de usuario '%s' ya existe." % request.POST.get('username')) return TemplateResponse(request, 'admin/admin_users_add.html', context) return TemplateResponse(request, 'admin/admin_users_add.html', context)
def createUserProf(self,username,prof): password='******' user=User(type="Prof", active=True, username=username, password=password, firstname=prof.prenom, lastname=prof.nom,email=prof.email) UserProf(user=User.objects.get(id=user.save()),professeur=prof).save() subject, from_email, to = 'System descriptif cours ESIH', '*****@*****.**', prof.email link='<a href="http://ancient-ridge-9094.herokuapp.com/">http://ancient-ridge-9094.herokuapp.com/</a>' html_content ='Salut {} {}!<p> Votre compte est << {} >> et mot de passe << {} >>. Cliquer sur ce lien {} pour connecter au systeme descriptif cours de l\'ESIH.</p>'.format(prof.prenom,prof.nom,username,password,link) msg = EmailMultiAlternatives(subject, '', from_email, [to]) msg.attach_alternative(html_content, "text/html") print msg.send()
def insert_user(request): #if 'username' in request.COOKIES: # if request.session['username'] == request.COOKIES["username"]: if request.method == "POST": username = request.POST['username'] try: user = User.objects.get(pk = username) message = "Username already exist" return render(request, 'admin/user_insert.html', {'message': message}) except User.DoesNotExist: user = User(username = request.POST['username'], password = request.POST['password'], name = request.POST['name'], gender = request.POST['gender'], email = request.POST['email'], birthday = request.POST['birthday'], phone = request.POST['phone'], address = request.POST['address'], id_card = request.POST['id_card'], is_VIP = request.POST['is_VIP'], is_Black = request.POST['is_Black'], is_verified = request.POST['is_verified'], note = request.POST['note']) user.save() message = "Insert successfully" else: return render(request, 'admin/user_insert.html') return render(request, 'admin/user_insert.html', {'message': message})
def controlleruser(request): session = None try: session = request.session['userid'] except KeyError: pass if session==None: return redirect("/admin/") user = manage.searchById(request.session['userid']) manager = ManageUser() action = request.POST['action']; if action is not None: if str(action).__eq__(''): return '' else: if str(action).__eq__(Action.CREER): type = request.POST['type'] username = request.POST['username'] password = request.POST['password'] firstname = request.POST['firstname'] lastname = request.POST['lastname'] email = request.POST['email'] if type!=None and username!=None and password!=None and firstname!=None and lastname!=None and email!=None: user1 = User(type=type, active=True, username=username, password=password, firstname=firstname, lastname=lastname,email=email) try: user1.id=request.POST['id'] except: pass try: valid = True t = get_template('admin/user/form.html') dic = {'login':True,'type':Type(),'action':Action.CREER,'user':user} dic['type1'] = str(type) dic['username'] = str(username) dic['firstname'] = str(firstname) dic['lastname'] = str(lastname) dic['email'] = str(email) if 'id' in request.POST: if manager.iscreateuser(username): dic['error2'] = 'Already exist' valid = False if manager.isexistmail(email): dic['error6'] = 'Already exist' valid = False if not valid: html = t.render(Context(dic)) return HttpResponse(html) user1.save() if user1.type.__eq__(Type.PROF): prof=Professor() prof.nom=user1.lastname prof.prenom=user1.firstname prof.email=user1.email p=Professor.objects.get(id=prof.save()) userprof=UserProf() userprof.user=user1 userprof.professeur=p userprof.save() subject, from_email, to = 'System descriptif cours ESIH', '*****@*****.**', prof.email link='<a href="http://ancient-ridge-9094.herokuapp.com/">http://ancient-ridge-9094.herokuapp.com/</a>' html_content ='Salut {} {}!<p> Votre compte est << {} >> et mot de passe << {} >>. Cliquer sur ce lien {} pour connecter au systeme descriptif cours de l\'ESIH.</p>'.format(prof.prenom,prof.nom,username,password,link) msg = EmailMultiAlternatives(subject, '', from_email, [to]) msg.attach_alternative(html_content, "text/html") msg.send() message = "The account {} has created for {} <a href=\"/admin/user/list/\">Retour</a>".format(type,firstname) t = get_template('admin/user/repform.html') html = t.render(Context({'login':True,'message':message,'user':user})) return HttpResponse(html) except IntegrityError: message = "Error " t = get_template('admin/user/repform.html') html = t.render(Context({'login':True,'message':message,'user':user})) return HttpResponse(html) if str(request.POST['action']).__eq__(Action.SUCCES_DEL): #try: user2 = manage.searchById(request.POST['id']) if user2.type.__eq__(Type.PROF): userp=UserProf.objects.filter(user_id=user2.id)[0] p = Professor.objects.get(id=userp.professeur.id) for us in UserProf.objects.all(): if us.id==user2.id: us.delete() p.delete() user2.delete() title = 'Supression' message = "{} a ete suprimé avec succès.".format(user2) color='#999999' #except: # title = 'Avertissement!!!' # color ='red' # message = "Une erreur c'est produite! Le système n'arrive pas à supprimer l'utilisateur demandé." dic = {'login':True,'nom': '', 'user': user,'message':message,'color':color,'title':title} t = get_template('admin/user/succdel.html') html = t.render(Context(dic)) return HttpResponse(html)
def create_user(username, password): user = User(username=username, password=md5(password)) user.save()
tag.min_tag_id = int(data['pagination']['min_tag_id']) tag.save() except KeyError: pass if not data.has_key('data'): logging.warning('No data in fetched url: %s' % url) return logging.info('Downloaded %d photos for tag #%s' % (len(data['data']), tag_name)) for d in data['data']: Photo().add_or_update(d) u = User.objects.get_by_name(d['user']['username']) if u is None: u = User() u.instagram_id = d['user']['id'] u.name = d['user']['username'] u.pic = d['user']['profile_picture'] # u.full_name = d['user']['full_name'] u.points = 0 u.vote_like = 0 u.vote_dislike = 0 try: u.last_subject_id = Subject.objects.get_current().id except AttributeError: logging.error('cannot find current subject!!!') u.last_subject_id = 0 u.last_subject_points = 0 u.save()
def github_check(request): type = '1' request_code = request.GET.get("code") oauth_git = OAuthGithub(settings.GITHUB_CLIENT_ID, settings.GITHUB_CLIENT_SECRET, settings.GITHUB_CALLBACK_URL) try: oauth_git.get_access_token(request_code) # 获取access token time.sleep(0.1) # 此处需要休息一下,避免发送urlopen的10060错误 except Exception as e: # 获取token失败,反馈失败信息 print(e) return render(request, 'login.html', {"error": "获取token失败"}) infos = oauth_git.get_user_info() # 获取用户信息 print("用户信息: " + str(infos)) open_id = infos.get('id', '') nickname = infos.get('login', '') image_url = infos.get('avatar_url', '') email = infos.get('email', '') oauth_check = OAuth.objects.filter(openid=open_id).only('openid', 'user').first() if oauth_check: # 已存在该用户,直接登录 user = User.objects.get(id=oauth_check.user.id) if user.login_power == 1: request.session['user_name'] = user.user_name # (将用户信息存入session) request.session['user_id'] = user.id request.session['user_authority'] = user.user_authority return HttpResponseRedirect('/') # 回到主页 else: info = '该用户无登录权限,请联系管理员解封' return HttpResponseRedirect(reverse('oauth:github_response', kwargs={'info': info})) # 响应页面 else: if email != '': user = User.objects.filter(email=email).only('id', 'user_name', 'user_authority', 'login_power').first() if user: # 该邮箱对应的用户已经存在 oauth_user = OAuth(openid=open_id, user_id=user.id, type=type) oauth_user.save() if user.login_power == 1: request.session['user_name'] = user.user_name # (将用户信息存入session) request.session['user_id'] = user.id request.session['user_authority'] = user.user_authority return HttpResponseRedirect('/') # 回到主页 else: info = '该用户无登录权限,请联系管理员解封' return HttpResponseRedirect(reverse('oauth:github_response', kwargs={'info': info})) # 相应页面 else: # 邮箱对应的用户不存在,将github信息和用户信息写入数据库 if User.objects.filter(user_name=nickname): # 用户名重复 nickname = 'CM-' + nickname img_path = upload_user_img(image_url) if User.objects.count() == 0: user_o = User(user_img=img_path, user_name=nickname, password=make_password(nickname), email=email, user_authority=1, login_power=1, login_state=0) else: user_o = User(user_img=img_path, user_name=nickname, password=make_password(nickname), email=email, user_authority=0, login_power=1, login_state=0) user_o.save() oauth_user = OAuth(openid=open_id, user_id=user_o.id, type=type) oauth_user.save() request.session['user_name'] = user_o.user_name request.session['user_id'] = user_o.id request.session['user_authority'] = user_o.user_authority info = '授权登录成功,初始密码为用户名' return HttpResponseRedirect(reverse('oauth:github_response', kwargs={'info': info})) # 响应页面 else: info = '你的github账号尚未绑定邮箱' return HttpResponseRedirect(reverse('oauth:github_response', kwargs={'info': info})) # 响应页面
def APICallWorker(request): if request.method == 'GET': return HttpResponse('Method not supported') # --- Validation req = decode_request(request) if req is None: logging.warning('unauthorized query - ignoring') return HttpResponse('ignored') if request.POST.get('type') == None: logging.warning('added task without required params - ignoring') return HttpResponse('ignored') # --- Methods url = 'https://api.instagram.com/v1' method = 'GET' params = {} if request.POST.get('type') == 'like': method = 'POST' params = {'access_token': req['user'].access_token} url += '/media/%s/likes/' % request.POST.get('media_id') elif request.POST.get('type') == 'unlike': method = 'DELETE' url += '/media/%s/likes/' % request.POST.get('media_id') url += '?access_token=' + req['user'].access_token elif request.POST.get('type') == 'add_instadaily_tag': method = 'POST' params = 'access_token=%s&text=%s' % (req['user'].access_token, INSTADAILY_TAG_MSG) url += '/media/%s/comments' % request.POST.get('media_id') elif request.POST.get('type') == 'user' and request.POST.has_key('user_id'): url += '/users/%s' % request.POST.get('user_id') url += '?access_token=' + req['user'].access_token result = rest_request(url, params, method) if request.POST.get('type') == 'like': p = Photo.objects.get_by_instagram_id(request.POST.get('media_id')) p.likes += 1 p.save() req['user'].vote_like += 1 req['user'].save() elif request.POST.get('type') == 'user' and request.POST.get('user_id') is not None: try: data = json.loads(result)['data'] except json.JSONDecodeError: print 'failed to decode json %s' % result print url return HttpResponse('') except KeyError: logging.error('DATA not found in recent photos for user %s' % request.POST.get('user_id')) return HttpResponse('') try: user = User.objects.filter(instagram_id=data['id']).get() user.pic = data['profile_picture'] user.full_name = data['full_name'] user.save() except User.DoesNotExist: user = User() user.name = data['username'] user.instagram_id = data['id'] user.full_name = data['full_name'] user.pic = data['profile_picture'] user.photos = 0 user.vote_like = 0 user.vote_dislike = 0 try: user.last_subject_id = Subject.objects.get_current().id except AttributeError: logging.error('cannot find current subject!!!') user.last_subject_id = 0 user.last_subject_points = 0 user.save() else: try: j = json.loads(result) except json.JSONDecodeError: print 'failed to decode json %s' % result print url return HttpResponse('') # only disliking photos that wasn't previously liked if j.has_key('meta') and j['meta'].has_key('error_message') and j['meta'][ 'error_message'] == 'the user has not liked this media': p = Photo.objects.get_by_instagram_id(request.POST.get('media_id')) p.dislikes += 1 p.save() req['user'].vote_dislike += 1 req['user'].save() return HttpResponse('') # logging.warning('API call failed with %s' % result) return HttpResponse('')