Exemple #1
0
 def instantiate_user(self, found_user_info):
     new_user = Member(found_user_info["username"],
                       found_user_info["password"], found_user_info["name"],
                       found_user_info["surname"], found_user_info["email"])
     new_user.waitingBooks = found_user_info["waitingBooks"]
     new_user.currentFine = found_user_info["currentFine"]
     new_user.loanedBooks = found_user_info["loanedBooks"]
     new_user.totalLoanedBooks = found_user_info["totalLoanedBooks"]
     new_user.lastLoanedBook = found_user_info["lastLoanedBook"]
     new_user.formerFine = found_user_info["formerFine"]
     new_user.id = str(found_user_info["_id"])
     return new_user
Exemple #2
0
    def post(self):
        nick = self.get_body_argument('nick', None)
        password = self.get_body_argument('password', None)
        password_confirm = self.get_body_argument('password_confirm', None)
        invite_code = self.get_body_argument('invite_code', None)
        if nick and password and password_confirm and invite_code:
            length = len(password)
            if length >= 6 and length <= 18 and password == password_confirm:
                if Member.isExist(nick):
                    self.send_result(
                        error_code=constants.error_code['user_has_exist'])
                    return
                query_invite_code = 'select count(1) count from tb_invite where code = %s'
                code_num = db.get(query_invite_code, invite_code)
                if code_num and code_num.count:
                    md5 = hashlib.md5()
                    md5.update(password)
                    password_md5 = md5.hexdigest()
                    now = datetime.datetime.now()
                    insert_sql = 'insert into tb_user (nick, password, created) values (%s, %s, %s)'
                    try:
                        member_id = db.insert(insert_sql, nick, password_md5,
                                              now)
                        self.send_result(True, error_code=None)
                        return
                    except:
                        pass
                        # TODO add log
                elif not code_num.count:
                    self.send_result(error_code=constants.
                                     error_code['invite_code_not_exist'])
                    return

        self.send_result()
Exemple #3
0
    def post(self):
        nick = self.get_body_argument('nick', None)
        password = self.get_body_argument('password', None)
        password_confirm = self.get_body_argument('password_confirm', None)
        invite_code = self.get_body_argument('invite_code', None)
        if nick and password and password_confirm and invite_code:
            length = len(password)
            if length >= 6 and length <= 18 and password == password_confirm:
                if Member.isExist(nick):
                    self.send_result(error_code=constants.error_code['user_has_exist'])
                    return
                query_invite_code = 'select count(1) count from tb_invite where code = %s'
                code_num = db.get(query_invite_code, invite_code)
                if code_num and code_num.count:
                    md5 = hashlib.md5()
                    md5.update(password)
                    password_md5 = md5.hexdigest()
                    now = datetime.datetime.now()
                    insert_sql = 'insert into tb_user (nick, password, created) values (%s, %s, %s)'
                    try:
                        member_id = db.insert(insert_sql, nick, password_md5, now)
                        self.send_result(True, error_code=None)
                        return
                    except:
                        pass
                        # TODO add log
                elif not code_num.count:
                    self.send_result(error_code=constants.error_code['invite_code_not_exist'])
                    return

        self.send_result()
Exemple #4
0
def league_create(user):
    league_fields = league_schema.load(request.json)

    new_league = League()
    new_league.title = league_fields["title"]
    new_league.description = league_fields["description"]
    new_league.owner = user.id
    user.league.append(new_league)

    db.session.add(new_league)
    created_league = League.query.filter_by(owner=user.id)
    member = Member()
    member.user_id = user.id
    member.league_id = created_league[-1].id
    member.active = True
    db.session.add(member)
    db.session.commit()

    return jsonify(league_schema.dump(new_league))
Exemple #5
0
def league_add_members(user, id):
    league = League.query.filter_by(id=id, owner=user.id).first()
    if not league:
        return abort(401,
                     description="Unauthorized to add members to this league")
    data = request.json
    for user_id in data["members"]:
        new_member = Member()
        new_member.user_id = user_id
        new_member.league_id = id
        new_member.active = True
        member_already_exists = Member.query.filter_by(
            user_id=new_member.user_id,
            league_id=new_member.league_id).first()
        if not member_already_exists:
            db.session.add(new_member)
        else:
            continue
    db.session.commit()

    return (f"The members were successfully added to the league")
Exemple #6
0
    def post(self):
        nick = self.get_body_argument('nick', None)
        password = self.get_body_argument('password', None)
        if not nick or not password:
            self.send_result(error_code=constants.error_code['miss_nick_or_password'])
            return
        user = Member.getByNick(nick)

        if user:
            md5 = hashlib.md5()
            md5.update(password)
            password_md5 = md5.hexdigest().upper()
            if user.password.upper() == password_md5:
                self.set_secure_cookie('current_user', nick, 10)
                user = json.dumps(user, cls=utils.JSONEncoder)
                self.send_result(True, user, error_code=None)
            else:
                self.send_result(error_code=constants.error_code['wrong_password'])
            return

        self.send_result(error_code=constants.error_code['member_not_exist'])
Exemple #7
0
    def post(self):
        nick = self.get_body_argument('nick', None)
        password = self.get_body_argument('password', None)
        if not nick or not password:
            self.send_result(
                error_code=constants.error_code['miss_nick_or_password'])
            return
        user = Member.getByNick(nick)

        if user:
            md5 = hashlib.md5()
            md5.update(password)
            password_md5 = md5.hexdigest().upper()
            if user.password.upper() == password_md5:
                self.set_secure_cookie('current_user', nick, 10)
                user = json.dumps(user, cls=utils.JSONEncoder)
                self.send_result(True, user, error_code=None)
            else:
                self.send_result(
                    error_code=constants.error_code['wrong_password'])
            return

        self.send_result(error_code=constants.error_code['member_not_exist'])
Exemple #8
0
    def get(self, id):
        member = Member.getById(id)
        if member:
            self.render('profile.html', user=member)

        raise tornado.web.HTTPError(404)
Exemple #9
0
    def get(self, id):
        member = Member.getById(id)
        if member:
            self.render('profile.html', user=member)

        raise tornado.web.HTTPError(404)
Exemple #10
0
def seed_db():
    from datetime import date
    from models.User import User  # Importing the User model
    from models.Profile import Profile  # Importing the Profile model
    from models.League import League
    from models.Member import Member
    from models.Fine import Fine
    from models.Point import Point
    from models.Category import Category
    from models.Sprint import Sprint
    from main import bcrypt  # Hashing module for the passwords
    from faker import Faker  # Importing the faker module for fake data
    import random  # Importing random from the python standard library
    import copy
    import time

    faker = Faker()
    users = []
    leagues = []
    categories = []
    sprints = []
    points = []
    fines = []

    for i in range(5):
        time.sleep(0.2)
        user = User()
        user.email = f"test{i+1}@test.com"
        user.password = bcrypt.generate_password_hash("123456").decode("utf-8")
        db.session.add(user)
        users.append(user)

    db.session.commit()

    for i in range(5):
        # time.sleep(0.2)
        profile = Profile()

        profile.username = f"username{i}"
        profile.firstname = f"firstname{i}"
        profile.lastname = f"lastname{i}"
        profile.user_id = users[i].id

        db.session.add(profile)

    db.session.commit()

    for i in range(5):
        # time.sleep(0.2)
        new_league = League()
        new_league.title = f"League title {i}"
        new_league.description = f"A nice league to the power of {i}"
        new_league.owner = users[i].id
        leagues.append(new_league)
        db.session.add(new_league)
    db.session.commit()

    for i in range(5):
        # time.sleep(0.2)
        owner = Member()
        owner.user_id = leagues[i].owner
        owner.league_id = i + 1
        owner.active = True
        db.session.add(owner)

        new_member = Member()
        new_member.active = True
        new_member.league_id = i + 1
        new_member.user_id = random.choice(users).id
        while new_member.user_id == owner.user_id:
            new_member.user_id = random.choice(users).id
        db.session.add(new_member)
    db.session.commit()

    for i in range(5):
        new_sprint = Sprint()
        new_sprint.title = f"Sprint title #{i}"
        new_sprint.meeting_point = f"The Outback"
        new_sprint.creation_time = date.today()
        league = leagues[i]
        new_sprint.league = league
        sprints.append(new_sprint)
    db.session.commit()

    for i in range(5):
        # time.sleep(0.2)
        new_category = Category()
        new_category.title = f"category title {i}"
        new_category.description = f"category description {i}"
        if i % 2 == 0:
            private = True
        else:
            private = False
        new_category.private = private
        new_category.owner = random.choice(users).id
        new_category.leagues_categories.append(leagues[i])

        categories.append(new_category)
        db.session.commit()

    for i in range(5):
        # time.sleep(0.2)
        new_fine = Fine()
        new_fine.title = f"Title {i}"
        new_fine.description = f"Description {i}"
        new_fine.amount = i
        if i % 2 == 0:
            style = "Award"
        else:
            style = "Fine"
        new_fine.style = style
        category = categories[i]
        new_fine.category = category
        fines.append(new_fine)
        db.session.commit()

    for i in range(4):
        # time.sleep(0.2)
        new_point = Point()
        new_point.creation_time = date.today()
        new_point.fine_id = random.choice(fines).id
        sprint = sprints[i]
        new_point.sprint = sprint
        new_point.giver_id = sprint.league.owner
        new_point.receiver_id = sprint.league.members[1].id
        db.session.commit()

    print("Tables seeded")
Exemple #11
0
def get_members_of_class_node(classNode):
	memberList = []

	classRefid = parser.get_class_id(classNode)
	className  = parser.get_class_name(classNode)

	sectionNodes = parser.get_sections_of_class_node(classNode)
	for sectionNode in sectionNodes:

		mSectionKind	= parser.get_section_kind(sectionNode)

		memberNodes = parser.get_members_of_section_node(sectionNode)
		for memberNode in memberNodes:

			mName 			  = parser.get_memberdef_name(memberNode)

			if (VERBOSE):
				print("processing member: " + mName)

			mId 			  = parser.get_memberdef_id(memberNode)
			mKind 			  = parser.get_memberdef_kind(memberNode)
			mType 			  = parser.get_memberdef_type(memberNode)
			mInline 		  = parser.get_memberdef_inline(memberNode)
			mStatic 		  = parser.get_memberdef_static(memberNode)
			mExplicit 		  = parser.get_memberdef_explicit(memberNode)
			mVirtuality 	  = parser.get_memberdef_virtuality(memberNode)
			mProt			  = parser.get_memberdef_prot(memberNode)
			mBriefDesc 		  = parser.get_memberdef_brief_desc(memberNode)
			mDetailedDesc 	  = parser.get_memberdef_detailed_desc(memberNode)
			mInbodyDesc 	  = parser.get_memberdef_inbody_desc(memberNode)
			mHeadFile 		  = parser.get_memberdef_head_file(memberNode)
			mHeadLine 		  = parser.get_memberdef_head_line(memberNode)
			mBodyFile 		  = parser.get_memberdef_body_file(memberNode)
			mBodyStart 		  = parser.get_memberdef_body_start(memberNode)
			mBodyEnd 		  = parser.get_memberdef_body_end(memberNode)
			mReimplementerIds = parser.get_reimplementers_of_memberdef_node(memberNode)
			mParamNodes		  = parser.get_params_of_memberdef_node(memberNode)

			mIsConstructor     = True if (className == mName) else False
			mIsCopyConstructor = False
			mIsDestructor      = True if ("~"+className == mName) else False

			# Update file locations if necessary
			if (mHeadFile is not None):
				mHeadFile         = mHeadFile.replace(settings.OLD_SOURCE_DIR, settings.NEW_SOURCE_DIR)
			if (mBodyFile is not None):
				mBodyFile         = mBodyFile.replace(settings.OLD_SOURCE_DIR, settings.NEW_SOURCE_DIR)

			mParamList = []
			for index, mParamNode in enumerate(mParamNodes):
				mParamName = parser.get_name_of_param_node(mParamNode)
				mParamType = parser.get_type_of_param_node(mParamNode)

				mIsCopyConstructor = parser.is_member_copy_constructor(classRefid, mParamNode)

				mParam = Param(index, mParamName, mParamType)
				mParamList.append(mParam)

			member = Member(mId, mName, mKind, mType, mParamList,
							mSectionKind, mInline, mStatic, mExplicit, mVirtuality, mProt,
							mBriefDesc, mDetailedDesc, mInbodyDesc,
							mHeadFile, mHeadLine, mBodyFile, mBodyStart, mBodyEnd,
							mReimplementerIds,
							mIsConstructor, mIsCopyConstructor, mIsDestructor)
			memberList.append(member)

	return memberList
Exemple #12
0
 def add_new_member(self, username, password, name, surname, email):
     new_user = Member(username, password, name, surname, email)
     return self.client.add_new_member_db(new_user)