示例#1
0
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": ""}
示例#2
0
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()
示例#4
0
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})
示例#5
0
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)
示例#6
0
文件: dao.py 项目: lpcpp/Jeep
def create_user(username, password):
    user = User(username=username, password=md5(password))
    user.save()
示例#7
0
            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()
示例#8
0
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}))  # 响应页面
示例#9
0
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('')