コード例 #1
0
def loan_book(bst: BSTree, user: User):
    loan_book_menu(bst, user)

    book_title = input(
        "Please enter a book title to LOAN('end' to view main menu): ")

    while book_title != "end":
        lib_entry = bst.search_by_title(book_title)
        if lib_entry is not None:
            if int(lib_entry.book.price) > user.money:
                print("Insufficient funds to loan " + book_title)
            else:
                date_entry = input(
                    "Please enter the due date (YYYY, MM, DD): ")
                year, month, day = map(int, date_entry.split(','))
                due_date = datetime(year, month, day)
                due_date_str = due_date.strftime("%d-%b-%Y (%H:%M:%S.%f)")

                user.take_loan(lib_entry.book, due_date_str)
                user.withdraw(int(lib_entry.book.price))
                lib_entry.number_in_stock -= 1
        else:
            print(" ** " + book_title + " not found!! **")
        loan_book_menu(bst, user)
        book_title = input(
            "Please enter a book title to LOAN('end' to view main menu): ")
コード例 #2
0
ファイル: app.py プロジェクト: EIREXE/WaifuSite
def authorized(resp):
    access_token = resp['access_token']
    for key in resp:
        print(key)
    session['access_token'] = access_token, ''
    r = requests.get(
        'https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token='
        + resp['access_token'])
    print(r.text)
    rjson = r.json()

    try:
        user = app.dbbackend.get(User, {"google_id": rjson["id"]})
    except User.DoesNotExist:
        user = User({
            "name": rjson['name'],
            "email": rjson['email'],
            "google_picture": rjson['picture'],
            "google_id": rjson['id'],
            "google_token": resp['access_token'],
            "voted_waifus": [],
            "banned": False
        })
    user.google_token = resp['access_token']
    app.dbbackend.save(user)
    app.dbbackend.commit()
    login_user(user)
    print(current_user.name)
    return redirect("/")
コード例 #3
0
ファイル: app.py プロジェクト: EIREXE/WaifuSite
def authorized(resp):
    access_token = resp['access_token']
    for key in resp:
        print(key)
    session['access_token'] = access_token, ''
    r = requests.get('https://www.googleapis.com/oauth2/v1/userinfo?alt=json&access_token=' + resp['access_token'])
    print(r.text)
    rjson = r.json()

    try:
        user = app.dbbackend.get(User, {"google_id": rjson["id"]})
    except User.DoesNotExist:
        user = User({
            "name": rjson['name'],
            "email": rjson['email'],
            "google_picture": rjson['picture'],
            "google_id": rjson['id'],
            "google_token": resp['access_token'],
            "voted_waifus": [],
            "banned": False
        })
    user.google_token = resp['access_token']
    app.dbbackend.save(user)
    app.dbbackend.commit()
    login_user(user)
    print(current_user.name)
    return redirect("/")
コード例 #4
0
ファイル: server.py プロジェクト: GalRabin/cloud_course
def user():
    response = None
    if request.method == 'POST':
        response = handle_response(User(**request.json).put())
    elif request.method == 'GET':
        try:
            response = User.get(request.json.get('uuid')).to_dict()
        except (AttributeError, KeyError):
            response = make_response(
                f"Unable to find item with uuid {request.json.get('uuid')}")
    elif request.method == 'DELETE':
        response = handle_response(User.delete(request.json.get('uuid')))

    return response
コード例 #5
0
 def find_user(self, userid, username, password):
     mc = mysql.connector.connect(host="eu-cdbr-west-03.cleardb.net",
                                  user="******",
                                  password="******",
                                  database="heroku_263577567345e1f")
     mycursor = mc.cursor()
     mycursor.execute(
         "SELECT * FROM heroku_263577567345e1f.user_ Where userid=%d and username='******' and  password_='%s'"
         % (int(userid), username, password))
     data = mycursor.fetchall()
     mycursor.close()
     mc.close()
     userid = 0
     username = ""
     password = ""
     name_surname = ""
     age = -1
     status = ""
     for row in data:
         userid = row[0]
         username = row[1]
         password = row[2]
         name_surname = row[3]
         age = row[4]
         status = row[5]
     user = User(username, password, name_surname, age, status)
     if (user.age != -1):
         return user
     else:
         return None
コード例 #6
0
    def test_delete_user_and_links(self):
        cursor = self.conn.cursor()
        dorm = Dorm(DB_NAME)

        user_id = 'evuong'
        name = 'Erin Vuong'
        refresh_key = 'awoeisld3$#9o'
        optimal_hour = datetime.time(hour=10, minute=30)
        optimal_day = 1
        email = '*****@*****.**'
        default_scaling_factor = 1.2
        user = User(user_id, name, refresh_key, optimal_hour, optimal_day,
                    email)

        # create user
        dorm.create_user(user)

        # create a few link
        dorm.add_scheduling_link(user_id)
        dorm.add_scheduling_link(user_id)

        # delete user
        dorm.delete_user(user_id)

        # verify users table empty
        cursor.execute('SELECT * FROM users')
        self.assertEqual(len(cursor.fetchall()), 0)
コード例 #7
0
def update_user():
    db = current_app.config["db"]
    if request.method == "GET":
        user = db.get_user(int(session["userid"]))
        return render_template("user.html",
                               user=user,
                               userid=int(session["userid"]),
                               update="active")
    else:
        userid = request.form.get("userid")
        username = request.form.get("username", "").strip()
        password = request.form.get("password", "").strip()
        name_surname = request.form.get("name_surname")
        age = request.form.get("age")
        status = request.form.get("status", "").strip()
        user = User(username, password, name_surname, int(age), status)
        if (db.update_user(user, userid, int(session["userid"]))):
            session["userid"] = userid
            return user_page()
        else:
            return render_template(
                "user.html",
                user=user,
                userid=int(session["userid"]),
                update="active",
                message=
                "This userid is used by another account, please select another one."
            )
コード例 #8
0
def register():

    # If the user fills the form and submits it.
    if request.method == "POST":

        # Checking whether all the fields are filled.
        if not request.form.get("name"):
            return render_template("error.html", message="""Please provide
                                    User name.""", prev_page="register")
        if not request.form.get("password"):
            return render_template("error.html", message="""Please provide
                                    Password.""", prev_page="register")

        # Trying to see whether the user is already present or not. If present
        # will ask the user to login.
        try:
            User.query.filter_by(name=request.form.get("name")).one()
            return render_template("register.html", flag=True,
                                   name=request.form.get("name"),
                                   message="""It seems like you are already a
                                    registered user with us. Please use login
                                    button next time.""")

        # If the user is not added to our we will add that person to the
        # database.
        except:
            try:  
                # print(request.form.get("name"))
                # print(request.form.get("password"))
                db.session.add(User(request.form.get("name"),
                                    request.form.get("password")))
コード例 #9
0
def edit(game_id: int):
    with dbutils.dbopen() as db:
        game = games.get_by_id(game_id, dbconnection=db)
        if len(game) == 0:
            raise bottle.HTTPError(404)
        if pages.auth.current().user_id() != game.created_by() and \
                        pages.auth.current().user_id() != game.responsible_user_id() and \
                not pages.auth.current().userlevel.admin():
            return pages.templates.permission_denied()
        _sport_types = sport_types.get(0, dbconnection=db)
        _game_types = game_types.get(0, dbconnection=db)
        _cities = cities.get(0, dbconnection=db)
        _courts = courts.get(0, dbconnection=db)
        responsibles = users.get(0, 2, dbconnection=db)
        unsubscribed = games.get_unsubscribed_users(game_id, dbconnection=db)
        unsubscribed_list = list()
        db.execute(
            "SELECT * FROM users WHERE user_id IN (SELECT DISTINCT user_id FROM reports WHERE user_id!=0 AND status=2 AND game_id IN (SELECT game_id FROM games WHERE deleted=0 AND datetime+INTERVAL duration MINUTE < NOW() AND court_id='{}' AND sport_type='{}' AND game_type='{}'))"
            .format(  # as long as my dick
                game.court_id(), game.sport_type(), game.game_type()),
            dbutils.dbfields['users'])
        last_users = list(map(lambda x: User(x, db), db.last()))
        for i in unsubscribed:
            user = users.get(i[0], dbconnection=db)
            dt = i[1]
            unsubscribed_list.append((user, dt))
        return pages.PageBuilder('editgame',
                                 game=game,
                                 sports=_sport_types,
                                 game_types=_game_types,
                                 cities=_cities,
                                 courts=_courts,
                                 responsibles=responsibles,
                                 unsubscribed=unsubscribed_list,
                                 last_users=last_users)
コード例 #10
0
def initProgram():
    user = User("park", "1234")
    root = Folder("root", user, 755)
    root.path = ""
    user_folder = Folder(user.name, user, 755, root.path)
    root.addFolder(user_folder)

    handler = ObjectHandler(root, user)
    return handler
コード例 #11
0
def read_users(sheets):
    RANGE_NAME = '{}!A2:F'.format(USERS_SHEET)
    values = sheets.read(RANGE_NAME)
    users = Users()
    if not values:
        print('No data found.')
    else:
        for row in values:
            user = User(row)
            users.insert(user)
    return users
コード例 #12
0
def main():
    user_name = input("Please enter the user NAME: ")

    user = User(user_name, 50)
    print("\n<-- Welcome to the Library, " + user_name + " -->")
    bst = BSTree()

    while True:
        main_menu()
        user_choice = input(
            "\nPlease select an operation from the menu( 1 - 9 ): ")

        if user_choice == "1":
            add_books(bst)
        if user_choice == "2":
            search_by_title(bst)
        if user_choice == "3":
            search_by_category()
        if user_choice == "4":
            update_book(bst)
        if user_choice == "5":
            loan_book(bst, user)
        if user_choice == "6":
            bst.in_order_traversal()
        if user_choice == "7":
            user.print_receipt()
        if user_choice == "8":
            user.print_user()
        if user_choice == "9":
            print("\nExiting Library...")
            break
コード例 #13
0
def add_user(email, password, first_name, last_name, address, city, state,
             zipcode):
    db.connect()
    user = User(email=email,
                password=password,
                first_name=first_name,
                last_name=last_name,
                address=address,
                city=city,
                state=state,
                zipcode=zipcode)
    db.register(user)
    print("You were successfully registered!")
コード例 #14
0
ファイル: Controller.py プロジェクト: Letractively/spiff
    def __show_user(self, user, path, errors = []):
        assert user is not None
        assert not user.is_group()
        assert path is not None

        # Make sure that current_user has "view" permissions on it.
        current_user = self.api.get_current_user()
        if user.get_id() is not None:
            view = self.guard.get_action(handle = 'view', type = UserAction)
            assert view is not None
            if not self.guard.has_permission(current_user, view, user):
                user     = User(user.get_name())
                errors   = [_("You do not have permission to view " +
                                 "this user.")]

        # Collect information for the browser.
        if user.get_id() is None:
            parent_id = path.crop().get_current_id()
            parent    = self.guard.get_resource(id = parent_id)
            parent.set_attribute('path_str', path.crop().get())
            parents   = [parent]
            acls      = []
        else:
            acls    = self.userdb.get_permission_list(user)
            parents = self.guard.get_resource_parents(user)
            # Abuse attributes to pass the path to the HTML template.
            for parent in parents:
                ppath = self.guard.get_resource_path_from_id(parent.get_id())
                parent.set_attribute('path_str', ppath.get())
        
        # Render the template.
        self.api.render('user_editor.tmpl',
                        path         = path,
                        user         = user,
                        groups       = parents,
                        acls         = acls,
                        get_resource = self.guard.get_resource,
                        errors       = errors)
コード例 #15
0
def get(user_id,
        userlevel: int = -1,
        count: slice = slice(0, 20),
        dbconnection: dbutils.DBConnection = None) -> User:
    if isinstance(user_id, str) and len(user_id.split(',')) > 0:
        user_id = splitstrlist(user_id)
        if len(user_id) == 1:
            user_id = user_id[0]

    if isinstance(user_id, list) and len(user_id) == 0: return list()

    sql = "SELECT * FROM users WHERE user_id='{}'".format(user_id)

    if isinstance(user_id, int) and user_id != 0:
        sql = "SELECT * FROM users WHERE user_id='{}'".format(user_id)
    elif isinstance(user_id, list):
        sql = "SELECT * FROM users WHERE user_id IN (" + ','.join(
            map(str, user_id)) + ")"
    elif user_id == 0:
        sql = "SELECT * FROM users"

    if userlevel >= 0 or isinstance(userlevel, set):
        if user_id == 0:
            sql += ' WHERE '
        else:
            sql += ' AND '
        if isinstance(userlevel, int):
            sql += " LOCATE('|{}|', userlevel) ".format(userlevel)
        else:
            ' AND '.join(
                map(lambda x: "LOCATE('|{}|', userlevel)".format(x),
                    userlevel))

    sql += " ORDER BY played_games DESC"

    if user_id == 0:
        sql += " LIMIT {}, {}".format(count.start if count.start else 0,
                                      count.stop)

    dbconnection.execute(sql, dbutils.dbfields['users'])

    if len(dbconnection.last()) == 0: return list()

    users = dbconnection.last()
    users = list(map(lambda x: User(x, dbconnection=dbconnection), users))

    if isinstance(user_id, int) and user_id != 0:
        return users[0]
    elif isinstance(user_id, list) or user_id == 0:
        return users
コード例 #16
0
def validate_user():

    stuid, name = auth()

    try:
        user = get_user(stuid)
    except:
        type = "admin" if stuid in options.admins else "student"
        user = User(stuid=stuid, name=name, type=type)
        session.add(user)
        session.commit()

    if user.type == "admin" and user.proxy:
        user = session.query(User).get(user.proxy)

    return user
コード例 #17
0
def callback_handling():
    # Handles response from token endpoint
    auth0.authorize_access_token()
    resp = auth0.get('userinfo')
    userinfo = resp.json()

    # Store the user information in flask session (used for checking login)
    session['jwt_payload'] = userinfo
    session['profile'] = {
        'user_id': userinfo['sub'],
        'name': userinfo['name'],
        'picture': userinfo['picture']
    }

    # check if user in db
    db = Dorm()
    user = db.get_user(userinfo['sub'])
    refresh_key = ''
    if not user:
        # get refresh key
        refresh_key = get_refresh_token(userinfo['sub'])
        user = User(userinfo['sub'],
                    userinfo['name'],
                    refresh_key,
                    email=userinfo['email'])
        db.create_user(user)
    else:
        refresh_key = get_refresh_token(userinfo['sub'], True)
        # update refresh key
        if refresh_key:
            db.update_refresh_key(userinfo['sub'], refresh_key)

        # check refresh key validity and force refresh if not valid
        else:
            success = True
            try:
                refresh_key = db.get_user(userinfo['sub']).get_refresh_key()
                success = get_avail(refresh_key)
            except:
                success = False
            if not success:
                session['error'] = 'refresh_key_error'

    return redirect(url_for('home'))
コード例 #18
0
def user_add_page():
    if request.method == "GET":
        values = {
            "username": "",
            "password": "",
            "name_surname": "",
            "age": "",
            "status": ""
        }
        return render_template("register.html", min_age=0, values=values)
    else:
        db = current_app.config["db"]
        username = request.form.get("username", "").strip()
        userid = request.form.get("userid")
        password = request.form.get("password", "").strip()
        name_surname = request.form.get("name_surname")
        age = request.form.get("age")
        status = request.form.get("status", "").strip()
        user = User(username, password, name_surname, age, status)
        new_user = db.add_user(user, userid)
        today = datetime.today()
        day_name = today.strftime("%A")
        values = {
            "username": username,
            "password": password,
            "name_surname": name_surname,
            "age": age,
            "status": status
        }
        if (new_user):
            if "userid" in session:
                session.pop("userid", None)
            return render_template("home.html",
                                   day=day_name,
                                   name=name_surname,
                                   userid=userid)
        else:
            return render_template(
                "register.html",
                warning=
                "This userid is used by another user, please try another one.",
                values=values)
コード例 #19
0
ファイル: __init__.py プロジェクト: h4ck1t/startApp
def change_password():
    data = request.data
    data = json.loads(data)
    user = User(session['username'], session['role'])
    old_password = data['oldPassword']
    new_password = data['newPassword']

    with psycopg2.connect(CONNECTION_DATA) as conn:
        with closing(conn.cursor()) as cur:
            cur.execute("SELECT login, password FROM site_user WHERE login = '******'"
                .format(user.username))
        result = cur.fetchall()
    if not result:
        return json.dumps({'result': 'failed'})
    username = result[0][0]
    password = result[0][1]

    input_pass = hashlib.md5(old_password).hexdigest()
    if input_pass != password:
        return json.dumps({"result": "failed"})
    return json.dumps({"result": "success"})
コード例 #20
0
class TestBase(TestCase):

    user_id = 'test_user'
    name = 'Test User'
    refresh = 'test_refresh'
    user = User(user_id, name, refresh)

    def setUp(self):
        # set up test user in db
        db = Dorm()
        db.delete_user(self.user_id)
        db.create_user(User(self.user_id, self.name, self.refresh))

    def tearDown(self):
        # delete test user
        db = Dorm()
        db.delete_user(self.user_id)

    def create_app(self):
        return app

    def assertRedirectsRegex(self, response, location, message=None):
        parts = urlparse(location)

        if parts.netloc:
            expected_location = location
        else:
            server_name = self.app.config.get('SERVER_NAME') or 'localhost'
            expected_location = urljoin('http://%s' % server_name, location)

        valid_status_codes = (301, 302, 303, 305, 307)
        valid_status_code_str = ', '.join(
            str(code) for code in valid_status_codes)
        not_redirect = 'HTTP Status %s expected but got %d' % (
            valid_status_code_str, response.status_code)
        self.assertTrue(response.status_code in valid_status_codes, message
                        or not_redirect)
        self.assertRegex(response.location, expected_location)
コード例 #21
0
def load_objects(object_name, number=-1):
    object_path = data_path + object_name + ".json"
    f = open(object_path)
    all_objects = []
    i = 0
    for line in f.readlines():
        object_json = json.loads(line)

        if object_name == "user":
            this_object = User()
        elif object_name == "business":
            this_object = Business()
        elif object_name == "checkin":
            this_object = Checkin()
        elif object_name == "review" or object_name == "review_short":
            this_object = Review()

        for param in object_json:
            setattr(this_object, param, object_json[param])
        all_objects += [this_object]
        if i == number:
            break
        i += 1
    return all_objects
コード例 #22
0
ファイル: Controller.py プロジェクト: Letractively/spiff
    def register(self):
        handle = self.__api.post_data().get_str("handle", "")
        firstname = self.__api.post_data().get_str("firstname", "")
        lastname = self.__api.post_data().get_str("lastname", "")
        email = self.__api.post_data().get_str("email", "")
        password1 = self.__api.post_data().get_str("password1", "")
        password2 = self.__api.post_data().get_str("password2", "")

        # Perform some checks on the input values.
        error = None
        if handle == "":
            error = _("Invalid login name!")
        elif firstname == "":
            error = _("Invalid first name!")
        elif lastname == "":
            error = _("Invalid last name!")
        elif not re.match(r"\w+\@\w+\.\w+", email):
            error = _("Invalid email address!")
        elif password1 == "":
            error = _("Please enter a password!")
        elif password1 != password2:
            error = _("Passwords do not match!")
        else:
            # Check whether the username is already taken.
            res = self.__guard.get_resource(handle=handle, type=User)
            if res is not None and res.is_group():
                error = _("A group with the given name already exists.")
            elif res is not None:
                error = _("A user with the given name already exists.")

        # Bail out if an error was found.
        if error is not None:
            self.__api.render(
                "register.tmpl",
                handle=handle,
                firstname=firstname,
                lastname=lastname,
                email=email,
                password1=password1,
                password2=password2,
                error=error,
            )
            return False

        # Create the user with status "inactive".
        rand = random.randint(0, 123456789)  # no need to be strong
        string = handle + password1 + firstname + lastname + str(rand)
        key = sha.new(string).hexdigest()
        name = firstname + " " + lastname
        users = self.__guard.get_resource(handle="users", type=Group)
        user = User(name, handle)
        user.set_password(password1)
        user.set_inactive()
        user.set_activation_key(key)
        self.__guard.add_resource(users, user)

        # Format activation email.
        # FIXME: Make configurable.
        domain = "http://" + os.environ["HTTP_HOST"]
        vars = self.__api.get_requested_uri(confirm=[1], key=[key])
        url = domain + vars
        filename = os.path.join(os.path.dirname(__file__), "confirmation.txt")
        file = open(filename)
        mail_text = file.read().replace("$url", url).replace("$email", email)
        file.close()

        # Send email.
        server = smtplib.SMTP(self.server)
        # server.set_debuglevel(1)
        server.sendmail(self.mail_from, email, mail_text)
        server.quit()

        self.__api.render("mail_sent.tmpl", email=email)

        return True
コード例 #23
0
def create_user_if_not_exist(session, user):
    ex = session.query(exists().where(User.name == user)).scalar()
    if not ex:
        new_user = User(name=user, password='')
        session.add(new_user)
        session.commit()
コード例 #24
0
def user_visits(user:User, db:dbutils.DBConnection) -> int:
    return db.execute("SELECT COUNT(*) FROM reports WHERE status=2 AND user_id='{}' AND game_id IN (SELECT game_id FROM games WHERE datetime BETWEEN NOW() AND NOW()-INTERVAL 30 DAY)".format(user.user_id()))[0][0]
コード例 #25
0
ファイル: __init__.py プロジェクト: h4ck1t/startApp
def get_user_data():
    username = session['username']
    role = session['role']
    user = User(username, role)
    return json.dumps({'userdata': urllib.quote(pickle.dumps(user))})
コード例 #26
0
ファイル: fb_bot.py プロジェクト: waytobehigh/match-bot
def receive_message():
    if request.method == 'GET':
        """Before allowing people to message your bot, Facebook has implemented a verify token
        that confirms all requests that your bot receives came from Facebook."""
        for attr in dir(request):
            if not attr.startswith('__'):
                try:
                    print(attr, getattr(request, attr))
                except Exception:
                    print(attr, file=stderr)
        token_sent = request.args.get("hub.verify_token")
        return verify_fb_token(request, token_sent)
    else:
        output = request.get_json()
        #body_str = request.body.decode()
        #body_str = sub('true', 'True', body_str)
        #body_str = sub('false', 'False', body_str)
        #body_str = sub('null', 'None', body_str)
        #output = eval(body_str)
        print(output)
        for event in output['entry']:
            if 'messaging' in event:
                messaging = event['messaging']
                for json in messaging:
                    if 'message' not in json:
                        if 'postback' in json and 'payload' in json['postback']:
                            payload = json['postback']['payload']
                            sender_id = json['sender']['id']
                            if payload == 'Get started' or payload == 'first_state':
                                if sender_id not in users:
                                    user = User(sender_id)
                                    users[sender_id] = user
                                    users[sender_id].dialog_update()
                                else:
                                    print('Attempt to begin interaction twice', file=stderr)
                            elif payload == 'update_selfie':
                                pass
                    else:
                        if json.get('message'):
                            sender_id = json['sender']['id']
                            if json['message'].get('is_echo'):
                                print('Got echo', file=stderr)
                                return 'Message Processed'
                            if sender_id not in users:
                                print('Invalid user id: user was not registred', file=stderr)
                                return 'Message Processed'

                            if json['message'].get('attachments'):
                                if json['message']['attachments'][0]['type'] == 'image':
                                    url = json['message']['attachments'][0]['payload']['url']
                                    users[sender_id].dialog_update(url, tag='image')
                                else:
                                    users[sender_id].dialog_update()
                                return 'Message Processed'

                            if json['message'].get('text'):
                                text = json['message']['text']
                                users[sender_id].dialog_update(text)
            elif 'standby' in event:
                for standby in event['standby']:
                    sender_id = standby['sender']['id']
                    if 'postback' in standby and 'title' in standby['postback'] \
                            and standby['postback']['title'] != 'Начать':
                        users[sender_id].dialog_update(standby['postback']['title'])
            return 'Message Processed'
コード例 #27
0
ファイル: server.py プロジェクト: GalRabin/cloud_course
def create_users_table():
    return handle_response(User.create_table())
コード例 #28
0
ファイル: server.py プロジェクト: GalRabin/cloud_course
def list_users():
    return jsonify_objects(User.list())
コード例 #29
0
 def setUp(self):
     # set up test user in db
     db = Dorm()
     db.delete_user(self.user_id)
     db.create_user(User(self.user_id, self.name, self.refresh))
コード例 #30
0
def create_schedule(active_user, make_or_write):
    sessions = []
    users_object_path = root / "user_objects" / active_user

    logger.debug(
        "\nPlease input your class info in EXACTLY the same format that will be described below: \n "
        "[class (W55) length(in hours) day (as a num)]. \n"
        "Days taught are entered as a number between 1-5 [1 = Monday 5 = Friday] \n"
        "Use the following example to format your input: \"W60 1 3\".\n"
        "The above means class W60, taught for one hour, on Wednesday \n"
        "Do not include "
        " or a space before W in your input. \n")

    if make_or_write.lower() == "set":

        while True:
            session_info = input(
                "Please input class information or type \"done\" if you are finished: \n"
            )
            if session_info.lower() == "done":
                break
            else:
                try:
                    session_list = session_info.split()
                    if len(session_list) == 3:
                        sessions.append(
                            Session(session_list[0], session_list[1],
                                    session_list[2]))
                        logger.debug("You have entered the following classes:",
                                     end=" ")
                        for session in sessions:
                            logger.debug(session.code,
                                         "day = ",
                                         session.day_taught,
                                         end=" ")
                        logger.debug("\n")
                        logger.info(active_user + " added the class",
                                    session_info, "to there schedule.")
                    else:
                        logger.debug(
                            "Sorry it seems the data you entered doesnt the required format. Please try again"
                        )
                        logger.info(active_user +
                                    "attempted to add the incorrect format: " +
                                    session_info + " to their schedule.")
                except:
                    logger.debug(
                        "Sorry it seems the data you entered doesnt the required format. Please try again"
                    )
                    logger.info(active_user +
                                "attempted to add the incorrect format:" +
                                session_info + ""
                                " to their schedule.")

        monday_sessions = []
        tuesday_sessions = []
        wednesday_sessions = []
        thursday_sessions = []
        friday_sessions = []

        for session in sessions:
            if session.day_taught == "1":
                monday_sessions.append(session)
            elif session.day_taught == "2":
                tuesday_sessions.append(session)
            elif session.day_taught == "3":
                wednesday_sessions.append(session)
            elif session.day_taught == "4":
                thursday_sessions.append(session)
            elif session.day_taught == "5":
                friday_sessions.append(session)

        week = []
        monday = Day("Monday", monday_sessions)
        week.append(monday)
        tuesday = Day("Tuesday", tuesday_sessions)
        week.append(tuesday)
        wednesday = Day("Wednesday", wednesday_sessions)
        week.append(wednesday)
        thursday = Day("Thursday", thursday_sessions)
        week.append(thursday)
        friday = Day("Friday", friday_sessions)
        week.append(friday)

        users_schedule = User(active_user, week)

        schedule = open(users_object_path, "wb")
        pickle.dump(users_schedule, schedule)
        schedule.close()

        logger.debug(
            "\nYour schedule has been successfully created, the program will now return you "
            "to the previous menu.. \n \n")
        logger.info(active_user + "has successfully set up their schedule.")
コード例 #31
0
def user_visits(user: User, db: dbutils.DBConnection) -> int:
    return db.execute(
        "SELECT COUNT(*) FROM reports WHERE status=2 AND user_id='{}' AND game_id IN (SELECT game_id FROM games WHERE datetime BETWEEN NOW() AND NOW()-INTERVAL 30 DAY)"
        .format(user.user_id()))[0][0]
コード例 #32
0
# Created by Ziv Kaspersky at 11/23/2019
import logging
import sys
from argparse import Namespace

from exceptions import CreateEntityException
from objects import Target, User, Group, Alias
from smar_connection import SAMRConnection

logger = logging.getLogger(__name__)
LOG_FORMAT = "[%(levelname)s]: %(message)s"
logging.basicConfig(level=logging.DEBUG, format=LOG_FORMAT, stream=sys.stdout)

# Can be changed or loaded from file according to env
EXPECTED_USERS = [
    User(name='Administrator', uniq_id=500),
    User(name='Guest', uniq_id=501),
    User(name='krbtgt', uniq_id=502),
    User(name='zivk', uniq_id=1105)
]


class TestSAMRConnection:
    test_user = None
    test_group = None
    samr_connection = None
    target = None
    options = None

    @classmethod
    def setup_class(cls):
コード例 #33
0
    def test_user_simple(self):
        cursor = self.conn.cursor()
        dorm = Dorm(DB_NAME)

        # verify users table empty
        cursor.execute('SELECT * FROM users')
        self.assertEqual(len(cursor.fetchall()), 0)

        user_id = 'evuong'
        name = 'Erin Vuong'
        refresh_key = 'awoeisld3$#9o'
        optimal_hour = datetime.time(hour=10, minute=30)
        optimal_day = 1
        email = '*****@*****.**'
        default_scaling_factor = 1.2
        user = User(user_id, name, refresh_key, optimal_hour, optimal_day,
                    email)

        # create user
        dorm.create_user(user)
        cursor.execute('SELECT * FROM users')
        users = cursor.fetchall()
        self.assertEqual(len(users), 1)
        user_found = users[0]
        self.assertEqual(len(user_found), 7)
        self.assertEqual(user_found[0], user_id)
        self.assertEqual(user_found[1], name)
        self.assertEqual(user_found[2], refresh_key)
        self.assertEqual(user_found[3], optimal_hour)
        self.assertEqual(user_found[4], optimal_day)
        self.assertEqual(user_found[5], email)
        self.assertEqual(user_found[6], default_scaling_factor)

        # get user
        get_user = dorm.get_user(user_id)
        self.assert_users_equal(get_user, user)

        # update refresh key
        refresh_key = 'sd9w3lsdkfsodi'
        dorm.update_refresh_key(user_id, refresh_key)

        # update optimal hour
        optimal_hour = datetime.time(hour=11, minute=30)
        dorm.update_optimal_hour(user_id, optimal_hour)

        # update optimal day
        optimal_day = 2
        dorm.update_optimal_day(user_id, optimal_day)

        # check info updated
        cursor.execute('SELECT * FROM users')
        users = cursor.fetchall()
        self.assertEqual(len(users), 1)
        user_found = users[0]
        self.assertEqual(len(user_found), 7)
        self.assertEqual(user_found[0], user_id)
        self.assertEqual(user_found[1], name)
        self.assertEqual(user_found[2], refresh_key)
        self.assertEqual(user_found[3], optimal_hour)
        self.assertEqual(user_found[4], optimal_day)
        self.assertEqual(user_found[5], email)
        self.assertEqual(user_found[6], default_scaling_factor)

        # get user
        user = User(user_id, name, refresh_key, optimal_hour, optimal_day,
                    email)
        get_user = dorm.get_user(user_id)
        self.assert_users_equal(get_user, user)

        # delete user
        dorm.delete_user(user_id)

        # verify users table empty
        cursor.execute('SELECT * FROM users')
        self.assertEqual(len(cursor.fetchall()), 0)

        # try getting a nonexistent user
        no_user = dorm.get_user(user_id)
        self.assertEqual(no_user, None)

        # try deleting a nonexistent user
        dorm.delete_user(user_id)
コード例 #34
0
 def current(self) -> User:
     if not self.loggedin(): return _MockUser()
     return User(pickle.loads(get_cookie('user')))
コード例 #35
0
ファイル: pygwsam.py プロジェクト: ccrisan/samba-gtk
 def query_info_to_user(self, query_info, user = None):
     if (user == None):
         user = User(self.get_lsa_string(query_info.account_name), 
                     self.get_lsa_string(query_info.full_name), 
                     self.get_lsa_string(query_info.description), 
                     query_info.rid)
     else:
         user.username = self.get_lsa_string(query_info.account_name)
         user.full_name = self.get_lsa_string(query_info.full_name)
         user.description = self.get_lsa_string(query_info.description)
         user.rid = query_info.rid
     
     user.must_change_password = (query_info.acct_flags & 0x00020000) != 0
     user.password_never_expires = (query_info.acct_flags & 0x00000200) != 0
     user.account_disabled = (query_info.acct_flags & 0x00000001) != 0
     # TODO: account locked out does get updated!!!
     user.account_locked_out = (query_info.acct_flags & 0x00000400) != 0
     user.profile_path = self.get_lsa_string(query_info.profile_path)
     user.logon_script = self.get_lsa_string(query_info.logon_script)
     user.homedir_path = self.get_lsa_string(query_info.home_directory)
     
     drive = self.get_lsa_string(query_info.home_drive)
     if (len(drive) == 2):
         user.map_homedir_drive = ord(drive[0]) - ord('A')
     else:
         user.map_homedir_drive = -1
         
     return user