Ejemplo n.º 1
0
 def delete_member(self, id):
     m = Member(id)
     for t in m.transactions:
         trec = Transaction(t['id'])
         trec.delete()
     m.delete()
     print("deleted row", id)
Ejemplo n.º 2
0
 def Start(self):
     while True:
         try:
             self.pods = self.kube.GetPods()
             exists = self.CheckForPrimaryMongo()
             if exists == True:
                 print(
                     'Watcher.CheckForPrimaryMongo: PRIMARY ALREADY IN REPLICASET'
                 )
                 self.primary = False
             elif exists == False:
                 member = Member(_id=None, IP='127.0.0.1', priority=None)
                 alive = member.CheckIfAlive()
                 if alive == True:
                     primary = member.CheckIfPodIsPrimary()
                     if primary == True:
                         self.primary = True
                         print(
                             'Watcher.CheckForPrimaryMongo: POD IS PRIMARY')
                     elif primary == False:
                         print(
                             'Watcher.CheckForPrimaryMongo: NO PRIMARY IN REPLICASET'
                         )
                         self.mongo.HoldElection(self)
             if self.primary == True:
                 self.CheckCurrentMongoPods()
             time.sleep(5)
         except Exception as error:
             print('Watcher.Start: ERROR - {}'.format(error))
             time.sleep(5)
Ejemplo n.º 3
0
async def handleRoomCreation(ws, initObj, setRoom):
    if "name" in initObj and initObj["name"].strip() != "":
        gm = GameManager(initObj["packs"], initObj["questions"],
                         initObj["answers"])

        while gm.joinCode in games:
            gm.regenJoinCode()

        m = Member(ws, initObj["name"])
        gm.addMember(m)
        games[gm.joinCode] = gm
        setRoom(gm.joinCode)
        await send_object(
            ws, {
                "action": "roomMade",
                "joinCode": gm.joinCode,
                "setName": initObj["name"]
            })
        nextObj = await recv_object(ws)

        if "action" in nextObj:
            if nextObj["action"] == "startGame":
                await asyncio.wait(
                    [games[gm.joinCode].startGame(),
                     m.runGameLoop()],
                    return_when=asyncio.FIRST_COMPLETED)
    else:
        await send_object(ws, {
            "action": "error",
            "content": "Please make sure to set a name."
        })
Ejemplo n.º 4
0
def get_member(id):
    """Display the form in R/O mode for a member"""
    member = Member(id)
    qr_file = "images/XCJ_{}.png".format(id)
    if member['status'] == "OK":
        try:
            last_modif_time = stat(qr_file).st_mtime
            make_qr_code = datetime.fromtimestamp(
                last_modif_time) < datetime.now().replace(
                    minute=0, hour=0, second=0, microsecond=0)
        except (FileNotFoundError, AttributeError) as err:
            make_qr_code = True
        if make_qr_code:
            qrcode_text = member.encode_qrcode()
            img = make_qrcode(qrcode_text)
            img.save(qr_file)
        member.qrcode_is_valid = True
    else:
        member.qrcode_is_valid = False
        copy2("images/emoji-not-happy.jpg",
              qr_file)  # overwrite any previous QR code .png
    return template("member",
                    member=member,
                    read_only=True,
                    session=session_manager.get_session())
Ejemplo n.º 5
0
 def __init__(self,
              position=Vec(0, 0, 0), rotation=Vec(0, 0, 0),
              offset=Vec(0, 0, 0), alignment=Vec(0, 0, 0),
              geometry=Surface()):
     self.geometry = geometry
     Member.__init__(self, position, rotation, offset, alignment)
     self.footprint = defaultdict(list)
Ejemplo n.º 6
0
 def test_upd_member_profile(self, keep_member=False):
     """Positive test: Update a new Member"""
     # create a member
     new_id = self.test_add_new_member(keep_member=True)
     member = Member(id=new_id)
     current_avatarUrl = member["avatar_url"]
     current_username = member["username"]
     # call update API
     url = "{}/member/openid/{}".format(self.base_url, member["openid"])
     print("Path:", url)
     patch = {
         "op": "update",
         "data": {
             "avatarUrl": "https://new/link/to_avatar.html",
             'nickName': "new_nickName",
             'tags': 5
         }
     }
     response = requests.patch(url, json=patch)
     self.assertEqual(200, response.status_code)
     result = response.json()
     self.print_JSON(result, title="test_upd_member_profile:")
     # fetch record again
     member = Member(id=new_id)
     upd_avatarUrl = member["avatar_url"]
     upd_username = member["username"]
     self.assertNotEqual(current_avatarUrl, upd_avatarUrl)
     self.assertNotEqual(current_username, upd_username)
     self.assertEqual("new_nickName", upd_username)
     if not keep_member: self.delete_member(new_id)
Ejemplo n.º 7
0
def do_login():
    """
    Fetch the login/password from the form and check this couple against the tb_user table
    """
    username = request.forms.get('username').lower()
    password = request.forms.get('password')

    if not username or not password:
        return template('login.tpl',
                        error='Please specify username and password',
                        session=session_manager.get_session())

    session = session_manager.get_session()
    new_user = Member()
    new_user_id = new_user.select('users',
                                  columns='id',
                                  username=username,
                                  passwd=password)
    if new_user_id:
        new_user.get_from_db(id=new_user_id['id'])
        session['valid'] = True
        session['user'] = new_user
        session_manager.save(session)
    else:
        session['valid'] = False
        session['user'] = {}
        session_manager.save(session)
        return template('login.tpl',
                        error='Username or password is invalid',
                        session=session_manager.get_session())
    # redirect(request.get_cookie('validuserloginredirect', '/member/{}'.format(new_user['id'])))
    redirect('/member/{}'.format(new_user['id']))
Ejemplo n.º 8
0
def get_daypass():
    """Present a calendar to choose the daypass pariod (from/to) - default is today"""
    session = session_manager.get_session()
    if request.method == "POST":
        from_date = request.forms['from_date']
        until_date = request.forms.get(
            'until_date', from_date)  # one day pass only --> no until_date
        _from_date = datetime.strptime(from_date, "%Y-%m-%d")
        _until_date = datetime.strptime(until_date, "%Y-%m-%d")
        if (_until_date - _from_date).days <= 7:
            admin = Member(id=1)
            qr_code = admin.encode_qrcode(version=3,
                                          from_date=_from_date,
                                          until_date=_until_date)
            img_qrcode = make_qrcode(qr_code)
            qr_code_file = "images/XCJ_{}.png".format(from_date)
            img_qrcode.save(qr_code_file)
            # print("QR code:", qr_code_file)
            if request.forms.get('email'):
                admin.email_qrcode(
                    qr_code_file,
                    "from {} until {}".format(from_date, until_date),
                    request.forms['email'])
        else:
            qr_code_file = "images/emoji-not-happy.jpg"
    else:  # GET
        qr_code_file = None
        from_date, until_date = date.today(), date.today()
    # only admin can set 'until date'
    period = (from_date, until_date if session['user'].is_admin else "")
    return template("daypass",
                    qr_code=qr_code_file,
                    period=period,
                    session=session)
Ejemplo n.º 9
0
def admin_member_create():
    """
    メンバー新規登録処理
    """
    # 投稿されたデータを取得
    name = request.form.get('name')
    email = request.form.get('email')
    # create_at = datetime.now()
    # create_at = create_at.strftime("%Y/%m/%d %H:%M:%S")

    # FlaskはマイクロフレームワークなのでForm Validationとかもない
    # とりあえず単純にリダイレクトするだけ
    if not name or not email:
        print("name or email parameter error")
        return redirect(url_for('admin_member_add'))

    loose_email_match = re.match(r"^[^@:]+@[^:]+\..+$", str(email), re.IGNORECASE)
    if not loose_email_match:
        print("email is not email pattern")
        return redirect(url_for('admin_member_add'))

    member = Member(redis_client)
    if member.unique(email):
        print("email is not unique")
        return redirect(url_for('admin_member_add'))

    member.add(email, name)

    # save_data(name, comment, create_at)
    # print('name: ' + name + ', email: ' + email)

    # 保存後はトップにリダイレクト
    return redirect(url_for('admin_index'))
Ejemplo n.º 10
0
 def load_members(names):
     """
     Load the game owners as members in database.
     :param names: the list of the game owner names
     :return:
     """
     for name in names:
         # Ignore empty names
         if not name.strip():
             continue
         member = MemberRepo.get_member_by_name(name)
         if member is None:
             # Get the number of the last registered member
             last_num = 0
             last_member = MemberRepo.get_last_member()
             if last_member is not None:
                 last_num = last_member.number
             num = str(int(last_num) + 1)
             now = datetime.datetime.today().strftime('%Y-%m-%d')
             member = Member(num, name, now)
             # Insert new member
             logging.debug('Insert member ' + member.to_string())
             MemberRepo.insert_member(member)
         else:
             logging.debug('Update member ' + member.to_string())
             MemberRepo.update_member(member)
Ejemplo n.º 11
0
def admin_lecture_end():
    """
    講義終了画面
    POST : 終了
    GET : 設定画面表示
    """
    if request.method == 'POST':
        # 講義終了
        redis_client.set("lecture_start", 0)
        return redirect(url_for('admin_index'))
    else:
        member = Member(redis_client)
        member_list = member.get_all_data()

        # 現在の講師のmidを取得
        lecturer_data = redis_client.hgetall("lecturer")
        # print(lecturer_data)
        if not lecturer_data:
            # print("empty")
            return render_template('admin/lecture_end.html', lecturer=None)

        ret = ""
        for member in member_list:
            if int(lecturer_data["lid"]) == int(member["id"]):
                ret = member["name"]
                break

        return render_template('admin/lecture_end.html', lecturer=ret)
Ejemplo n.º 12
0
def ticket():
    # Validate inputs
    required = ['first-name', 'sure-name', 'email', 'promise']

    if not request.form:
        return redirect("http://*****:*****@]+@[^@]+\.[^@]+", request.form['email']):
        return redirect("http://localhost:1313/podlesi-fest/#tickets&err",
                        code=302)

    #Insert data and send message
    member = Member(request.form['first-name'], request.form['sure-name'],
                    request.form['email'], request.form['promise'],
                    request.form['tel'])

    if member.sendMail()[0]:
        return redirect("http://localhost:1313/podlesi-fest/#tickets&ok",
                        code=302)
    else:
        return redirect("http://localhost:1313/podlesi-fest/#tickets&err",
                        code=302)
Ejemplo n.º 13
0
 def test_d_has_many_activities_returns_true_with_more_than_one_activity(
         self):
     member = Member('id', 'first_name', 'last_name', 'birth_date')
     member.add_activity('activity1', 'location1', 'start_date1', 'cost1')
     member.add_activity('activity2', 'location2', 'start_date2', 'cost2')
     returned = member.has_many_activities()
     assert returned == True
Ejemplo n.º 14
0
def admin_get_score(l_id):
    """
    指定された講師(l_id)のスコアを返す
    """
    member = Member(redis_client)
    member_data = member.get_data(l_id)

    # 講義のスコアデータのキーはscore:講師のメンバーID:ワイルドカード(*)で取得
    score_key_list = redis_client.keys("score:" + l_id + "*")
    result = []
    total = 0
    count = 0
    average = 0
    # メンバーが設定したスコアデータを取得
    # for enum, score_key in enumerate(score_key_list):
    for score_key in score_key_list:
        data = {}
        # data["lid"] = redis_client.hget(score_key, "lid")
        data["mid"] = redis_client.hget(score_key, "mid")
        data["name"] = redis_client.hget(score_key, "name")
        data["score"] = redis_client.hget(score_key, "score")
        data["times"] = redis_client.hget(score_key, "times")
        data["create_at"] = redis_client.hget(score_key, "create_at")
        total += float(data["score"])
        count += 1
        result.append(data)

    if count > 0:
        average = round(total / count, 2)
    return render_template('admin/score.html', score=result, lecturer=member_data["name"], average=average)
Ejemplo n.º 15
0
def admin_member_del():
    """
    メンバー削除画面
    """
    member = Member(redis_client)
    member_list = member.get_all_data()
    return render_template('admin/member_del.html', member_list=member_list)
Ejemplo n.º 16
0
def admin_behind():
    attrs = [int(time.strftime("%m")), int(time.strftime("%Y")),
             int(time.strftime("%m")) - 1, int(time.strftime("%Y")),
             int(time.strftime("%m")) - 2, int(time.strftime("%Y")),
             int(time.strftime("%m")) - 3, int(time.strftime("%Y"))]
    #handle months being last year
    # ugh, should really have this as a function...
    if attrs[2] <= 0:
        attrs[2] = 12 + attrs[2]
        attrs[3] = attrs[3] - 1
    if attrs[4] <= 0:
        attrs[4] = 12 + attrs[4]
        attrs[5] = attrs[5] - 1
    if attrs[6] <= 0:
        attrs[6] = 12 + attrs[6]
        attrs[7] = attrs[7] - 1
    attrs = tuple(attrs)
    db = get_db()
    cur = db.cursor()
    cur.execute("SELECT username FROM member WHERE username NOT IN (SELECT username FROM payment WHERE (month == ? AND year == ?) OR (month == ? AND year == ?) OR (month == ? AND year == ?) OR (month == ? AND year == ?)) AND username NOT IN (SELECT user FROM dismembered)", attrs)
    users = cur.fetchall()
    behind = []
    errors = ""
    for user in users:
        m = Member(user[0])
        try:
            last_payment = m.get_payments()[0]
            year, month = last_payment[0], last_payment[1] 
        except Exception as e:
            year, month = None, None
            errors += str(e) + "\n"
        behind.append((m.username, m.profile["realname"], m.profile["email"], year, month))
    return render_template('admin_behind.html', behind=behind, errors=errors)
Ejemplo n.º 17
0
 def test_add_payment(self, keep_member=False):
     """Positive test: add a payment to a new Member"""
     # create a member
     new_id = self.test_add_new_member(keep_member=True)
     member = Member(id=new_id, db_access="../../Private/db_access.data")
     # call update API
     url = "{}/member/openid/{}".format(self.base_url, member["openid"])
     print("Path:", url)
     patch = {
         "op": "add",
         "data": {
             'paidTime':
             datetime.now().strftime('%Y%m%d%H%M'),  # '201803121929',
             'payIndex': 'this_is_craaaazy_____',
             'CNYAmount': 123.45,
             'payType': 'DONATION'
         }
     }
     response = requests.patch(url, json=patch)
     self.assertEqual(200, response.status_code)
     result = response.json()
     self.print_JSON(result, title="test_add_payment:")
     # fetch record again
     member = Member(id=new_id, db_access="../../Private/db_access.data")
     print(member.transactions)
     if not keep_member: self.delete_member(new_id)
Ejemplo n.º 18
0
    def copy_group(self, ac, old_key, new_email):
        page_token = True
        all_members = []
        while page_token:
            data = ac.service.members().list({'pageToken': page_token},
                                               groupKey=old_key).execute()
            all_members.extend(data.get('members'))
            page_token = data.get('nextPageToken')

        new_group = self.create(ac, new_email)
        for member in all_members:
            Member.members_insert(ac, member['email'], new_email)
        return new_group

# {
#   "kind": "admin#directory#group",
#   "id": string,
#   "etag": etag,
#   "email": string,
#   "name": string,
#   "directMembersCount": long,
#   "description": string,
#   "adminCreated": boolean,
#   "aliases": [
#     string
#   ],
#   "nonEditableAliases": [
#     string
#   ]
# }
Ejemplo n.º 19
0
def member_list():
    """
    メンバー一覧取得
    """
    member = Member(redis_client)
    member_list = member.get_all_data()

    return modify_response_http_header(jsonify({"members": member_list}))
Ejemplo n.º 20
0
def hub_home():
    m = Member(session['username'])
    return render_template('home.html',
                           profile=m.get_profile(),
                           status=Status().status,
                           paid=m.is_paid(),
                           username=session['username'],
                           payment_history=m.payment_history())
Ejemplo n.º 21
0
def profile_emails():
    m = Member(session['username'])
    uprefs = m.get_email_prefs()
    db = get_db()
    cur = db.cursor()
    cur.execute("SELECT code, description FROM email_events")
    events = cur.fetchall()
    return render_template("email_prefs.html", uprefs=uprefs, events=events)
Ejemplo n.º 22
0
 def __init__(self, domain):
     Member.__init__(self)
     finders = get_finders(domain)
     if not finders:
         log_err(self, 'failed to initialize')
         raise Exception(log_get(self, 'failed to initialize'))
     self.set_members(finders)
     self._cache = FinderCache(domain)
Ejemplo n.º 23
0
def profile_emails():
    m = Member(session['username'])
    uprefs = m.get_email_prefs()
    db = get_db()
    cur = db.cursor()
    cur.execute("SELECT code, description FROM email_events")
    events = cur.fetchall()
    return render_template("email_prefs.html", uprefs=uprefs, events=events)
Ejemplo n.º 24
0
    def build_volunteers(self) -> Dict:
        """
        This parses the input file and builds the members and their roles.
        :return: List of users
        """
        volunteers = {'leaders': list(), 'members': list()}
        with open(self.config.input_file, 'r') as csv_file:
            reader = csv.DictReader(csv_file, delimiter=',')
            uid = 1
            for row in reader:
                roles = set()
                rids = 0
                frameworks = set()
                languages = set()
                portfolios = list()
                experience = 0
                if row["In general, I would consider myself capable of being a designer volunteer"] == "Yes":
                    if len(row["My portfolio's URL is"]) > 0:
                        portfolios.append(row["My portfolio's URL is"])
                    role = self.build_designer(uid, row)
                    experience += role.experience
                    frameworks.update(role.skills)
                    roles.add(role)
                    rids += role.rid

                if row["In general, I would consider myself capable of being a volunteer developer"] == "Yes":
                    if len(row["Github URL"]) > 0:
                        portfolios.append(row["Github URL"])
                    role = self.build_developer(row)
                    frameworks.update(role.frameworks)
                    languages.update(role.languages)
                    experience += role.experience
                    roles.add(role)
                    rids += role.rid

                if row["I would like to be considered for a team lead role"] == "Yes":
                    role = Leader(
                        Volunteers.parse_experience(row[
                            "How long have you been managing people/product(s)"]
                                                    ))
                    roles.add(role)
                    rids += role.rid

                member = Member(uid,
                                row['Username'],
                                portfolios,
                                roles,
                                Member.build_ranking(self.config.taxonomy,
                                                     frameworks=frameworks,
                                                     languages=languages,
                                                     rids=rids),
                                experience=experience)
                if rids & RoleEnums.LEADER:
                    volunteers['leaders'].append(member)
                else:
                    volunteers['members'].append(member)
                uid += 1
        return volunteers
Ejemplo n.º 25
0
 def func(*args, **kwargs):
     if 'username' in session:
         user = Member(session["username"])
         if user.is_admin():
             return f(*args, **kwargs)
         else:
             return abort(403)
     else:
         return redirect("/hub/login")
Ejemplo n.º 26
0
	def add_new_member( self ):
		new_member 				= Member()
		x,y 					= Helper.nonintersecting_coordinates( new_member.radius, self.get_positions() )
		new_member.x  			= x
		new_member.y 			= y
		new_member.generation 	= self.generations
		self.member_count		+= 1
		new_member.member_num	= self.member_count
		return new_member
Ejemplo n.º 27
0
def create_full_member(data):
    member = Member()
    columns = data.shape[1]
    vectors = []
    for column_index in range(0, columns):
        member.features.append(column_index)
        vectors.append(data[:, column_index])
    member.map = np.column_stack(vectors)
    return member
    def test_choose_member(self):
        m1 = Member("foo")
        m2 = Member("Bar")
        m3 = Member("Baz")

        members = [m1, m2, m3]
        member = choose_member_from(members)
        assert_that([member.display_name
                     for member in members]).contains(member.display_name)
Ejemplo n.º 29
0
def cross_breed(father, mother, data):
    member = Member()
    features = list(set(mother.features + father.features))
    vectors = []
    for column_index in range(0, len(features)):
        if np.random.randint(0, 2) > 0:
            member.features.append(column_index)
            vectors.append(data[:, column_index])
    member.map = np.column_stack(vectors)
    return member
Ejemplo n.º 30
0
    def __init__(self, username, password, name, age, address,
                 library_card_number):  #create an empty user object
        Member.__init__(self, name, age, address,
                        library_card_number)  #user inherited member class
        self.check_password(
            password
        )  #every user object must check and confirm their password.

        self.username = username
        self.password = password
Ejemplo n.º 31
0
 def test_simple_table(self):
     table = [
         {'time': '9:00am', 'name': 'Intro to Python', 'instructor': 'Matt Morrison'},
         {'time': '10:30am', 'name': 'TDD for Dummies', 'instructor': 'Matt Morrison'},
         {'time': '12pm', 'name': 'Lunch', 'instructor': None},
         {'time': '1:30pm', 'name':"There's a 'D' in Jango", 'instructor': 'Matt Morrison'},
     ]
     member = Member(last_name="St.Clair", first_name="Wesley", nickname="Wes", company="The IMT Group",
                     job_title="IT Manager", twitter_handle="@wes_stclair", photo="me.jpg" )
     member.create_badge3(table)
Ejemplo n.º 32
0
def email_my_qrcode(id):
    """Email a member its QR code"""
    member = Member(id=id)
    if member['email']:
        try:
            member.email_qrcode()
        except ValueError as err:
            redirect('/member/{}?msg=Error: No Email sent {}"'.format(id, err))
        else:
            redirect('/member/{}?msg=Email sent"'.format(id))
    redirect('/member/{}?msg=Error: No Email address"'.format(id))
Ejemplo n.º 33
0
Archivo: bot.py Proyecto: Mikeyspud/bot
    def __init__(self, outfit_name: str, guild_id: int, member_role_id: int, *args, **kwargs):

        super().__init__(*args, **kwargs)
        self.guild_id = guild_id
        self.member_role_id = member_role_id
        self.outfit = Outfit(name=outfit_name)
        self.database = Database(tag=self.outfit.alias)()
        self.Member = Member(database=self.database.members)
        self.Ops = Ops
        self.ops_list = dict()
        self.add_commands()
Ejemplo n.º 34
0
 def update_member_status(self, member_id):
     """Update the status of a member to OK or NOT_OK accordingly to the mambership payment"""
     result = self.fetch(
         "select max(valid_until) as max_valid from transactions where member_id=%s and right(type,10)='MEMBERSHIP'",
         params=(member_id, ))
     try:
         new_status = 'OK' if result['max_valid'] >= date.today(
         ) else 'NOT_OK'
     except TypeError:
         new_status = 'NOT_OK'
     member = Member(member_id=member_id)
     member.update(id=member_id, status=new_status)
Ejemplo n.º 35
0
def admin_member_list():
    """
    メンバー一覧画面
    """
    member = Member(redis_client)
    member_list = member.get_all_data()

    # lambdaを使ってsort処理で実行させる式を作成
    # pythonではdefは文でlambdaは式なので、単一式として定義できるものに限る
    # lambda 引数1,引数2.., : 引数を使う式
    member_list = sorted(member_list, key=lambda member: int(member['id']))
    # print(member_list)
    return render_template('admin/member_list.html', member_list=member_list)
Ejemplo n.º 36
0
def show_record(cursor, query):
    try:
        cursor.execute(query)
        records = cursor.fetchall()
        if cursor.rowcount == 0:
            print("No Matching Records")
            return
        record = records[0]
        member = Member().create_from_record(record)
        member.print_full()
        return member
    except mysql.connector.Error as err:
        print(err)
Ejemplo n.º 37
0
def admin_profile():
    user = Member(session['username'])
    if request.method == 'GET':
        return render_template('admin_profile_edit.html', profile=Member(request.args['u']).get_profile())
    elif request.method == 'POST':
        updatable = ['realname', 'nickname', 'email', 'twitter', 'irc', 'github', 'address']
        update = {}
        for x in request.form:
            if x in updatable:
                update[x] = None if request.form[x] == 'None' else request.form[x]
        m = Member(request.form['username'])
        m.update_profile(update)
        return redirect('/hub/admin')
Ejemplo n.º 38
0
Archivo: admin.py Proyecto: irl/hackhub
def admin_balance():
    if 'username' in session:
        user = Member(session['username'])
        if not user.is_admin():
            abort(403)
        if request.method == 'GET':
            return render_template('admin_balance.html')
        elif request.method == 'POST':
            # update stuff

            pass
    else:
        return redirect('/hub/login')
Ejemplo n.º 39
0
def admin_score_link():
    """
    各講師の点数確認ページへのリンク
    """
    member = Member(redis_client)
    member_list = member.get_all_data()

    ret = []
    for member in member_list:
        data = {"name": member["name"], "url": "/admin/msdg/" + member["id"] + "/score"}
        ret.append(data)

    return render_template('admin/score_link.html', member_list=ret)
Ejemplo n.º 40
0
def admin_balance():
    if 'username' in session:
        user = Member(session['username'])
        if not user.is_admin():
            abort(403)
        if request.method == 'GET':
            return render_template('admin_balance.html')
        elif request.method == 'POST':
            # update stuff

            pass
    else:
        return redirect('/hub/login')
Ejemplo n.º 41
0
 def _getCurrentMembers(self):
     try:
         conf = self.db.admin.command('replSetGetConfig', 1)
         for member in conf["conf"]['members']:
             newMember = Member(
                 member['_id'],
                 member['host'].split(':')[0],  # Get Host IP
                 member['priority'])
             state = newMember.CheckIfAlive()
             if state == True:
                 self.members.append(newMember)
         print('Members._getCurrentMembers: {}'.format(self.members))
     except Exception as error:
         print('Members._getCurrentMembers: WARN {}'.format(error))
Ejemplo n.º 42
0
def signup():
    if request.method == 'POST':

        for id_info in mem_info:   
            if request.form['id'] == id_info.get_id():
                return render_template("signup.html", message = "id is aready existed")
            elif request.form['pass1'] != request.form['pass2']:
                return render_template("signup.html", message = "passwards is not same")
        else:
            mem = Member()
            mem.set(request.form['id'],request.form['pass1'])
            mem_info.append(mem)
            return render_template("login.html", message = "sign up completed!")
    return render_template("signup.html")
Ejemplo n.º 43
0
    def acceptConnection(self, sock):
        conn, addr = sock.accept()
        self.log("Client connected from " + str(addr))
        conn.setblocking(False)
        data = types.SimpleNamespace(addr=addr, inb=b"", outb=b"")
        events = selectors.EVENT_READ | selectors.EVENT_WRITE
        self.selector.register(conn, events, data=data)

        appendNum = self.memberJoinCounter
        self.memberJoinCounter += 1 
        name = "guest" + str(appendNum)
        member = Member(data, name)
        self.memberList.append(member)
        self.sendInfoToMember(member, "Username is", member.getUserName())
Ejemplo n.º 44
0
 def __init__(self, domain):
     Member.__init__(self)
     mappers = get_mappers(domain)
     if not mappers:
         log_err(self, 'failed to initialize')
         raise Exception(log_get(self, 'failed to initialize'))
     self.set_members(mappers)
     self._server = Member()
     servers = get_servers(domain)
     if not servers:
         log_err(self, 'failed to initialize')
         raise Exception(log_get(self, 'failed to initialize'))
     self._server.set_members(servers)
     self._cache = MapperCache(self._server, domain)
Ejemplo n.º 45
0
def mutate(source, data):
    member = Member()
    vectors = []
    random = create_new_member(data)
    for column_index in range(0, len(source.features)):
        if np.random.randint(0, 10) > 3:
            member.features.append(column_index)
            vectors.append(data[:, column_index])
    for column_index in range(0, len(random.features)):
        if np.random.randint(0, 10) > 6:
            member.features.append(column_index)
            vectors.append(data[:, column_index])
    member.map = np.column_stack(vectors)
    return member
Ejemplo n.º 46
0
def admin_member_remove():
    """
    メンバー削除処理
    """
    # 投稿されたデータを取得
    member_id = request.form.get('member')
    if not member_id:
        print("member parameter error")
        return redirect(url_for('admin_member_del'))

    member = Member(redis_client)
    member.delete(member_id)

    # 削除後はトップにリダイレクト
    return redirect(url_for('admin_index'))
Ejemplo n.º 47
0
def make_event_qrcode(id):
    """Generate the QR Code of an Event"""
    trans = Transaction(id)
    event_member = Member(id=trans["member_id"])
    if event_member["status"] == "OK" and event_member["gender"] == 5:
        # use the event_member to set all necessary information to generate a QR Code Version 3
        qrcode = event_member.encode_qrcode(version=3,
                                            from_date=trans["valid_from"],
                                            until_date=trans["valid_until"])
        img_qrcode = make_qrcode(qrcode)
        qr_file = "images/XCJevent_{}.png".format(id)
        img_qrcode.save(qr_file)
        return "<img src='/{}' />".format(qr_file)
    else:
        return "<h2>This event has not a valid status or gender.</h2>"
Ejemplo n.º 48
0
def cleanse_and_validate(web_form):
    cleansed_form = sanitize(web_form)
    for reqid in list(cleansed_form.keys()):
        tmp = copy.deepcopy(cleansed_form[reqid])
        missing_field = False
        for f in _allowed_fields:
            try:
                tmp.pop(f+'_'+reqid)
            except KeyError:
                if f not in _actions and f not in Member.optional_field_names():
                    missing_field = True
        if len(tmp) or missing_field:
            cleansed_form.pop(reqid)
        else:
            tmp = copy.deepcopy(cleansed_form[reqid])
            if 'del_'+reqid in tmp:
                if 'mod_'+reqid in tmp:
                    print("<strong>No action taken on request id {}: ".format(reqid)
                        +"Cannot both modify and cancel a request.</strong></br>")
                    cleansed_form.pop(reqid)
                if 'reg_'+reqid in tmp:
                    print("<strong>No action taken on request id {}: ".format(reqid)
                        +"Cannot both register and cancel a request.</strong></br>")
                    cleansed_form.pop(reqid)

    scrubbed = {}
    for reqid in cleansed_form:
        kv = cleansed_form[reqid]
        for k in kv:
            scrubbed[k] = kv[k]

    return scrubbed
Ejemplo n.º 49
0
 def createMember(self):
     name = input("\nIngrese Nombre: ")
     surname = input("Ingrese Apellido: ")
     age = int(input("Ingrese Edad: "))
     celular = int(input("Ingrese Celular: "))
     member = Member(name, surname, age, celular)
     return member
Ejemplo n.º 50
0
 def members(self):
     # TODO we should not just trust this information, a member can put any address in their
     # dispersy-identity message.  The database should contain a column with a 'verified' flag.
     # This flag is only set when a handshake was successfull.
     return [Member.get_instance(str(public_key))
             for public_key,
             in list(DispersyDatabase.get_instance().execute(u"SELECT public_key FROM user WHERE host = ? AND port = ? -- AND verified = 1", (unicode(self._address[0]), self._address[1])))]
Ejemplo n.º 51
0
    def login_menu(self):
        """ Display Login options for users to choose.

        :return: True
        """
        print("\n**** LOGIN MENU ****")
        print(
            "1. Login as BDO \n2. Login as GPM \n3. Login as Member\n4. Exit")
        choice = input("Choose: ")

        if choice == '1':
            BlockDevelopmentOfficer(self.conn).login_bdo()
        elif choice == '2':
            GramPanchayatMember(self.conn).login_gpm()
        elif choice == '3':
            Member(self.conn).login_member()
        elif choice == '4':
            print("\nExiting...")
            self.conn.close()
        else:
            print("\nWrong Input!  Try again.")

        if choice != '4':
            self.login_menu()

        return True
Ejemplo n.º 52
0
def admin_lecturer():
    """
    講師設定画面
    POST : 設定
    GET : 設定画面表示
    """
    if request.method == 'POST':
        # 講義中であれば講義終了画面にリダイレクト
        # 講義中での講師変更はできない
        start_flg = redis_client.get("lecture_start")
        # print(start_flg)
        if start_flg and int(start_flg) == 1:
            return redirect(url_for('admin_lecture_end'))

        lecturer_mid = request.form.get('member')
        times = request.form.get('times')
        data = {"lid": lecturer_mid, "times": times}
        redis_client.hmset("lecturer", data)

        # 講義も開始したことにする
        redis_client.set("lecture_start", 1)

        return redirect(url_for('admin_score_link'))
    else:
        member = Member(redis_client)
        member_list = member.get_all_data()

        # 現在の講師のmidを取得
        lecturer_data = redis_client.hgetall("lecturer")
        # print(lecturer_data)
        if not lecturer_data:
            # print("empty")
            return render_template('admin/lecturer.html', member_list=member_list)

        ret = []
        for member in member_list:
            # print(member)
            if int(lecturer_data["lid"]) == int(member["id"]):
                member["selected"] = True
            else:
                member["selected"] = False
            ret.append(member)

        member_list = ret
        # print(member_list)
        return render_template('admin/lecturer.html', member_list=member_list)
Ejemplo n.º 53
0
def join():
    if request.method == 'POST':
        new_account = Member()
        new_id = request.form['nid']
        new_pw = request.form['npw']
        re_pw = request.form['rpw']

        if new_pw == re_pw and new_id not in id_db:
            new_account.set(new_id, new_pw)
            id_db[new_account.get_id()] = new_account.get_pw()
            comment = "Congrats! You've made a new ID"
        elif new_pw != re_pw:
            comment = "Please, check your password!"
        elif new_id in id_db:
            comment = "Please, use another ID"

        return render_template('join.html', comment = comment)
    return render_template('join.html')
Ejemplo n.º 54
0
def admin_payment():
    member = Member(request.form['username'])
    if 'month' in request.form.keys():
        try:
            month = int(request.form['month'])
            if not(1 <= month <= 12):
                return render_template('message.html', title='Fail', message='That is an unacceptable month')
            year = int(request.form['year'])
            delta_yr = datetime.date.today().year - year
            if not(-1 <= delta_yr <= 1):
                return render_template('message.html', title='Fail', message='That is an unacceptable year')
            member.add_payment(month, year, session['username'])
            return redirect('/hub/admin')
        except Exception as e:
            return render_template('message.html', title='Fail', message=str(e))
    else:
        now = datetime.datetime.now()
        member.add_payment(now.month, now.year, session['username'])
        return redirect('/hub/admin')
Ejemplo n.º 55
0
def member_get_lecturer():
    """
    現在の講師の情報を返す
    設定されていない、またはメンバーにいない場合はFalse
    """
    # 現在の講師のmidを取得
    lecturer_data = redis_client.hgetall("lecturer")
    if not lecturer_data:
        return modify_response_http_header(jsonify({"lecturer": False}))
    else:
        # print(lecturer_mid)
        member = Member(redis_client)
        member_data = member.get_data(lecturer_data["lid"])
        if not member_data:
            return modify_response_http_header(jsonify({"lecturer": False}))

        lecturer_data["name"] = member_data["name"]
        # print(member_data)
        # return jsonify({"lecturer": lecturer_mid})
        return modify_response_http_header(jsonify({"lecturer": lecturer_data}))
Ejemplo n.º 56
0
 def __init__(self, server, domain):
     self._cache = {}
     self._server = server
     self._domain = domain
     self._finder = Member()
     finders = get_finders(domain)
     if not finders:
         log_err(self, 'failed to initialize')
         raise Exception(log_get(self, 'failed to initialize'))
     self._finder.set_members(finders)
     self._thread = Thread(target=self._update_finders)
     self._thread.start()
Ejemplo n.º 57
0
class MapperServer(Member):
    def __init__(self, domain):
        Member.__init__(self)
        mappers = get_mappers(domain)
        if not mappers:
            log_err(self, 'failed to initialize')
            raise Exception(log_get(self, 'failed to initialize'))
        self.set_members(mappers)
        self._server = Member()
        servers = get_servers(domain)
        if not servers:
            log_err(self, 'failed to initialize')
            raise Exception(log_get(self, 'failed to initialize'))
        self._server.set_members(servers)
        self._cache = MapperCache(self._server, domain)

    def set_servers(self, servers):
        return self._server.set_members(servers, sort=True)

    def add_servers(self, servers, pos):
        return self._server.add_members(servers, pos, sort=True)

    def check_servers(self, servers, pos):
        return self._server.check_members(servers, pos)

    def get_servers(self, pos):
        return self._server.get_members(pos)

    def get(self, key):
        return self._cache.get(key)
Ejemplo n.º 58
0
def profile_email_toggle(event):
    m = Member(session['username'])
    if m.get_email_prefs()[event]:
        m.set_email_pref(event, 0)
    else:
        m.set_email_pref(event, 1)
    return redirect('/hub/profile/emails')
Ejemplo n.º 59
0
    def joinPrincipal(self, principalId, approved=True,
                      _td = timedelta(milliseconds=1)):
        if principalId not in self:
            member = Member()
            event.notify(ObjectCreatedEvent(member))
            self[principalId] = member

            joined = parseDatetimetz(str(datetime.now()))
            while joined in self.joined:
                joined = joined + _td

            member.joined = joined
            self.joined[joined] = principalId

            if not approved:
                member.approved = False
                self.notapproved.insert(principalId)
            else:
                event.notify(MemberApprovedEvent(member))

            event.notify(ObjectModifiedEvent(self.__parent__))
            updatePermissions(self.__parent__)