Exemple #1
0
def load_user(user_id):
    """ Checks if user is logged in (?) """
    # @Grey is this docstring correct?
    if query_user(user_id) is not None:
        curr_user = User()
        curr_user.id = user_id
        return curr_user
Exemple #2
0
    def user_transaction_factory(self, user_cursor):
        """Creates transaction object from mongo cursor"""
        u = User()
        u.id = str(user_cursor.get("_id"))
        u.download_list = user_cursor.get("downloadList")
        cuttoff_value = timedelta(
            days=self.config.get('data_download_history'))
        cuttoff_date = datetime.now() - cuttoff_value
        counter = 0
        try:
            transaction = {}
            #e.g {'503a0123b2d700ed1400007b-2013-08-18': ['50a2bca4d789a700ddc7fec1', '50a2bca4d789a700ddc7fec0']}
            # create a list of downloaded ids
            for doc in u.download_list:
                doc_id = str(doc.get('doc_id'))

                if doc_id:
                    transaction_timestamp = datetime.utcfromtimestamp(
                        int(doc['timestamp'] / 1000 / 86400) * 86400)
                    # check if data is after cutoff date
                    if cuttoff_date > transaction_timestamp:
                        counter += 1
                        transaction_id = "{0}-{1}".format(
                            u.id, transaction_timestamp.strftime('%Y-%m-%d'))
                        # print('Ignoring ..{0}'.format(transaction_timestamp))
                        if transaction_id in transaction:
                            transaction[transaction_id].append(doc_id)
                        else:
                            doc_list = [doc_id]
                            transaction = {transaction_id: doc_list}
            return transaction

        except TypeError as err:
            pass
Exemple #3
0
def login():
    """ Login page """
    form = LoginForm()
    if form.validate_on_submit():
        user = query_user(form.username.data)
        if user is not None and form.password.data == user['password']:
            curr_user = User()
            curr_user.id = form.username.data
            login_user(curr_user, remember=form.remember_me.data)
            return redirect(url_for('main'))
        flash('Invalid username or password')
        return redirect(url_for('login'))
    return render_template('log.html', form=form)
Exemple #4
0
def load_user(user_id):
    """ Checks if user is logged in """
    if query_user(user_id) is not None:
        curr_user = User()
        curr_user.id = user_id
        return curr_user
Exemple #5
0
    def user_factory(self, user_cursor):
        """Creates user object from mongo cursor"""
        u = User()
        u.id = str(user_cursor.get("_id"))
        u.download_list = user_cursor.get("downloadList")
        u.realms = user_cursor.get("realms")
        u.school_classes = user_cursor.get("schoolclasses")
        u.subjects_list = user_cursor.get("subjects")
        u.city = user_cursor.get("city")
        u.country = user_cursor.get("country")
        u.area_code = user_cursor.get("areaCode")
        u.gender = user_cursor.get("gender")
        u.schools = user_cursor.get("schools")
        u.school_type_list = []
        u.downloads = []
        u.download_history = []

        # create a clean list of school types
        for school in u.schools:
            try:
                u.school_type_list.append(school["type"].encode('utf-8'))
            except (KeyError, TypeError, AttributeError) as err:
                pass

        try:
            u.school_type = "|".join(u.school_type_list)
        except (TypeError, AttributeError) as err:
            u.school_type = ""

        try:
            # create a list of downloaded ids
            for doc in u.download_list:
                u.downloads.append(str(doc["doc_id"]))
                history = {
                    "doc_id":
                    str(doc["doc_id"]),
                    "download_time":
                    datetime.utcfromtimestamp(
                        int(doc['timestamp'] / 1000 / 86400) * 86400)
                }
                u.download_history.append(history)

        except TypeError as err:
            pass

        try:
            temp_sub = []
            for subject in u.subjects_list:
                temp_sub.append(subject.encode('utf-8'))

            u.subjects = "|".join(temp_sub)

            tmp_realm = []
            for r in u.realms:
                tmp_realm.append(r)

            u.realm = " | ".join(tmp_realm)

            try:
                tmp_classes = []
                for c in u.school_classes:
                    tmp_classes.append(c)

                u.classes = " | ".join(tmp_classes)
            except (TypeError) as err:
                u.classes = ''

        except (TypeError, AttributeError) as err:
            pass

        return u