예제 #1
0
def upload_file():
    if request.method == 'POST':
        # <input type="file" name="json">
        file = request.files['json']
        # On lit le contenu du fichier et le stock dans une var
        data = json.loads(file.read().decode('utf-8'))
        # la première case du tableau contient le document de la session exportée
        session_document = data[0]
        del session_document['_id']
        imported_tweets = data[1]  # Un tableau de documents tweets
        exporter_user = getUserByObjectId(
            ObjectId(session_document['user_id']['$oid']))
        user_logged = getUser()
        # On remplace l'user id par celui de l'utilisateur courant
        session_document['user_id'] = user_logged['_id']
        # On ajoute le nom et prenom de l'utilisateur qui a exporté la session
        session_document['exporter_user'] = exporter_user[
            'first_name'] + exporter_user['last_name']
        mongo.db.sessions.insert_one(session_document)
        session['last_session'] = str(session_document['_id'])
        for tweet in imported_tweets:
            # Lier les tweets importés à notre nouvelle session
            tweet['session_id'] = session['last_session']
            del tweet['_id']
        mongo.db.tweets.insert_many(imported_tweets)
        return redirect(
            url_for('display_session', session_id=session['last_session']))
예제 #2
0
 def get(self):
     try:
         user = getUser(current_user.email)
         retJson = {
             "user": {
                 "firstName": user["firstName"],
                 "lastName": user["lastName"],
                 "email": user["email"],
                 "gender": user["gender"],
                 "phone": user["phone"],
                 "birthDate": user["birthDate"],
                 "country": user["country"],
                 "city": user["city"],
                 "education": user["education"],
                 "type": user["type"],
                 "registeredAt": user["registeredAt"],
                 "preferences": {
                     "jobRadius": user["preferences"]["jobRadius"],
                     "jobType": user["preferences"]["jobType"],
                     "country": user["preferences"]["country"],
                     "city": user["preferences"]["city"],
                     "excludedSkills": user["preferences"]["excludedSkills"],
                     "sameAddress": user["preferences"]["sameAddress"],
                     "emailNotifications": user["preferences"]["emailNotifications"]
                 }
             }
         }
         return jsonify(retJson)
     except Exception as err:
         print("Error: ", err)
         retJson = {
             "status": 500,
             "message": "err"
         }
         return jsonify(retJson)
예제 #3
0
파일: fault.py 프로젝트: m3z/ToMaTo
def _send_notifications(error):
	import config, auth #here to break import cycle
	title = "new %s" % error.type
	message = "A new %(type)s has occurred in ToMaTo:\n\nTitle: %(title)s\nType: %(type)s\nDate: %(date_first)s\n\n%(message)s" % error.toDict()
	for name in config.ERROR_NOTIFY:
		user = auth.getUser(name)
		if not user:
			continue
		user.sendMessage(title, message)
예제 #4
0
def getUser():
    id = request.form.get('id')
    result = auth.getUser(id)

    if result == None:
        response = jsonify(message=False, code=200, data="User does not exist")
    else:
        data = {
            "name": result.name,
            "ca1": result.ca1,
            "ca2": result.ca2,
            "ca3": result.ca3
        }
        response = jsonify(message=True, code=200, data=data)
    return response
예제 #5
0
	def permissionsRemove(self, user_name):
		self.renew()
		user = auth.getUser(user_name)
		fault.check(user, "Unknown user: %s", user_name)
		self.permission_set.filter(user=user).delete() # pylint: disable-msg=E1101
		self.save()
예제 #6
0
	def permissionsAdd(self, user_name, role):
		self.renew()
		user = auth.getUser(user_name)
		fault.check(user, "Unknown user: %s", user_name)
		self.permission_set.add(Permission(user=user, role=role)) # pylint: disable-msg=E1101
		self.save()
예제 #7
0
def addSession(mode=None):
    if request.method == 'GET':  # Affichage de la page HTML
        return render_template('session_create_form.html', mode=mode)
    elif request.method == 'POST':  # Envoi de formulaire
        if isLogged():  # Vérificaiton qu'un user est connecté
            session_collection = mongo.db.sessions
            user_logged = getUser()
            dateOfDay = datetime.datetime.now(
            )  # Récupère la date d'aujourd'hui
            src_img = None
            if request.form['keywords']:
                src_img = getLinkImgFromKeyWords(request.form['keywords'])
                if src_img == -1:
                    src_img = getLinkImgFromKeyWords(
                        request.form['session_name'])
            else:
                src_img = getLinkImgFromKeyWords(request.form['session_name'])
            documentInserted = session_collection.insert({
                'user_id':
                user_logged['_id'],
                'session_name':
                request.form['session_name'],
                'start_date':
                dateOfDay.strftime("%d-%m-%y %H:%M:%S"),
                'last_modification_date':
                dateOfDay.strftime("%d-%m-%y %H:%M:%S"),
                'mode':
                request.form['mode'],
                'src_img':
                src_img,
                'tweets_batch':
                request.form['tweets_batch']
                if request.form['mode'] == "dated_tweets" else None,
                'params': {
                    'keywords':
                    request.form['keywords'],
                    'geocode':
                    request.form['geocode'],
                    'start_date':
                    request.form['start_date']
                    if request.form['mode'] == "dated_tweets" else None,
                    'stop_date':
                    request.form['stop_date']
                    if request.form['mode'] == "dated_tweets" else None,
                    'start_time':
                    request.form['start_time']
                    if request.form['mode'] == "dated_tweets" else None,
                    'stop_time':
                    request.form['stop_time']
                    if request.form['mode'] == "dated_tweets" else None,
                    'twitter_user':
                    request.form['twitter_user'],
                    'language':
                    request.form['language']
                }
            })  # Insertion du document session dans la collection session

            # Recuperation de l'id de la dernière session créée
            session['last_session'] = str(
                getSessionByObjectId(documentInserted)['_id'])
            return redirect(
                url_for('display_session', session_id=documentInserted))
예제 #8
0
파일: misc.py 프로젝트: Aaron-jp/ToMaTo
def mailUser(user, subject, text):
	from_ = currentUser()
	to = getUser(user)
	fault.check(to, "User not found")
	to.sendMail("Message from %s: %s" % (from_.name, subject), "The user %s has sent a message to you.\n\nSubject:%s\n%s" % (from_.name, subject, text))