def before_request(): # TODO: この条件は後で消す if os.environ.get('FLASK_ENV') == 'production': if re.match(r'^/newfc', request.path): path = request.path[len('/newfc'):] return redirect(path, code=301) g.db = database.connect_db() if 'user_id' in session: g.user = users.find_by_id(session.get('user_id')) elif 'uid' in request.args: g.user = users.find_by_id(request.args.get('uid')) else: g.user = None if g.user: g.user.update_logged_in() if request_from_featurephone() and not request_for_mobile_page(): return redirect( url_for('mobile.index') + (('?uid=%d' % g.user.id) if g.user else '')) if request_for_mobile_page(): request.charset = 'Shift_JIS'
def test_permission(): u1 = users.find_by_id(1) assert not u1.is_admin() assert not u1.is_schedule_admin() assert not u1.is_member_admin() assert not u1.is_notice_admin() assert not u1.is_god() u2 = users.find_by_id(2) assert u2.is_admin() assert not u2.is_schedule_admin() assert not u2.is_member_admin() assert not u2.is_notice_admin() assert not u2.is_god() u3 = users.find_by_id(3) assert u3.is_admin() assert u3.is_schedule_admin() assert not u3.is_member_admin() assert not u3.is_notice_admin() assert not u3.is_god() u4 = users.find_by_id(4) assert u4.is_admin() assert u4.is_schedule_admin() assert u4.is_member_admin() assert not u4.is_notice_admin() assert not u4.is_god() u5 = users.find_by_id(5) assert u5.is_admin() assert u5.is_schedule_admin() assert u5.is_member_admin() assert u5.is_notice_admin() assert u5.is_god()
def edit_member(id): if request.method == 'GET': user = users.find_by_id(id) return render_template('admin/edit_member.html', user=user) else: logi('edit member') try: validate_member() except ValueError, e: user = users.find_by_id(id) logi('edit member: validation error uid=%d', id) return render_template('admin/edit_member.html', user=user, errors=e.errors) u = users.make_obj(request.form, id) logi('edit member: update uid=%d', id) try: users.update(id, u.password, u.sex, u.permission) except users.NotUniquePassword: user = users.find_by_id(id) logi('not unique password') return render_template('admin/edit_member.html', user=user, errors=not_unique_password_error()) if id != g.user.id: return redirect(url_for('admin.member')) elif u.is_member_admin(): return redirect(url_for('admin.member')) elif u.is_admin(): return redirect(url_for('admin.index')) else: return redirect(url_for('general.index'))
def test_sex(): u1 = users.find_by_id(1) assert u1.is_male() assert not u1.is_female() u3 = users.find_by_id(3) assert not u3.is_male() assert u3.is_female()
def test_has_permission_to_delete_guest(): set_user(users.find_by_id(2)) # invited by normal1 entries.do_guest_entry(1, "name", "comment") # check... set_user(users.find_by_id(1)) # god assert entries.has_permission_to_delete_guest(1) set_user(users.find_by_id(2)) # normal1 assert entries.has_permission_to_delete_guest(1) set_user(users.find_by_id(3)) # normal2 assert not entries.has_permission_to_delete_guest(1) set_user(users.find_by_id(4)) # normal3 assert not entries.has_permission_to_delete_guest(1)
def before_request(): g.db = database.connect_db() if 'user_id' in session: g.user = users.find_by_id(session.get('user_id')) elif 'uid' in request.args: g.user = users.find_by_id(request.args.get('uid')) else: g.user = None if request_from_featurephone() and not request_for_mobile_page(): return redirect( url_for('mobile.index') + (('?uid=%d' % g.user.id) if g.user else '')) if request_for_mobile_page(): request.charset = 'Shift_JIS'
def decorated_function(*args, **kwargs): uid = get_userid() if uid is None or not users.find_by_id(uid): abort(401) sid = get_sessionid() if sid is None or not users.is_valid_session_id(uid, sid): abort(401) return f(*args, **kwargs)
def find_user_and_schedule(sid): user = users.find_by_id(get_userid()) if not user: abort(401) s = scheds.find_by_id(sid) if not s: abort(404) return (user, scheds.from_row(s))
def member(id=None): if id is None: # show member list males, females = users.find_group_by_sex() return render_template("mobile/members.html", males=males, females=females) else: user = users.find_by_id(id) if not user: abort(404) return render_template("mobile/member.html", user=user)
def bbs(page=1): user = users.find_by_id(get_userid()) if not user: abort(401) modelpage = max(0, page - 1) posts = bbsmodel.find_posts_on_page(modelpage) pages = bbsmodel.count_pages() begin, end = pagination(page, pages) return render_template("mobile/bbs.html", user=user, page=page, pages=pages, posts=posts, begin=begin, end=end)
def delete_member(id): if request.method == 'GET': user = users.find_by_id(id) return render_template('admin/delete_member.html', user=user) else: if is_yes(): logi('delete member: uid=%d', id) users.delete_by_id(id) else: logi('not delete member: uid=%d', id) return redirect(url_for('admin.member'))
def index(): user = users.find_by_id(get_userid()) if user.has_not_registered_schedule_yet(): return redirect(mobile_url_for("mobile.non_registered_practices")) ns = notices.find_showing() practice_count = scheds.count_schedules(scheds.TYPE_PRACTICE) game_count = scheds.count_schedules(scheds.TYPE_GAME) event_count = scheds.count_schedules(scheds.TYPE_EVENT) return render_template( "mobile/index.html", user=user, notices=ns, practice_count=practice_count, game_count=game_count, event_count=event_count, )
def test_find_by_id(): u1 = users.find_by_id(1) assert u1.name == "foo" u2 = users.find_by_id(2) assert u2.name == "bar" u3 = users.find_by_id(3) assert u3.name == "baz" u4 = users.find_by_id(4) assert u4.name == "qux" u5 = users.find_by_id(5) assert u5.name == "quux" u6 = users.find_by_id(6) assert not u6
def setup_testdata(): users.insert("foo", "passwd1", 1, 0x0) u = users.find_by_id(1) u.joined = datetime(2011, 1, 1) set_user(u) d = datetime(2012, 1, 1) schedules.insert(schedules.TYPE_PRACTICE, d + timedelta(days=1), "p1") schedules.insert(schedules.TYPE_PRACTICE, d + timedelta(days=2), "p2") schedules.insert(schedules.TYPE_PRACTICE, d + timedelta(days=3), "p3") schedules.insert(schedules.TYPE_PRACTICE, d + timedelta(days=4), "p4") schedules.insert(schedules.TYPE_PRACTICE, d + timedelta(days=5), "p5") schedules.insert(schedules.TYPE_GAME, d + timedelta(days=1), "g1") schedules.insert(schedules.TYPE_GAME, d + timedelta(days=2), "g2") schedules.insert(schedules.TYPE_GAME, d + timedelta(days=3), "g3") schedules.insert(schedules.TYPE_GAME, d + timedelta(days=4), "g4") schedules.insert(schedules.TYPE_GAME, d + timedelta(days=5), "g5") schedules.insert(schedules.TYPE_EVENT, d + timedelta(days=1), "e1") schedules.insert(schedules.TYPE_EVENT, d + timedelta(days=2), "e2") schedules.insert(schedules.TYPE_EVENT, d + timedelta(days=3), "e3") schedules.insert(schedules.TYPE_EVENT, d + timedelta(days=4), "e4") schedules.insert(schedules.TYPE_EVENT, d + timedelta(days=5), "e5")
def practices(): user = users.find_by_id(get_userid()) if not user: abort(401) ps = [scheds.from_row(s) for s in scheds.find(scheds.TYPE_PRACTICE)] return render_template("mobile/practices.html", user=user, practices=ps)
def non_registered_practices(): user = users.find_by_id(get_userid()) if not user: abort(401) ps = [scheds.from_row(s) for s in scheds.find_non_registered(user.id, scheds.TYPE_PRACTICE)] return render_template("mobile/practices.html", user=user, practices=ps, info_msg=u"未登録の練習があります。")
def impl(): users.insert("foo", "passwd1", 1, 0x0) set_user(users.find_by_id(1)) for i in range(count): bbs.post(u"あいうえお" + str(i))
def games(): user = users.find_by_id(get_userid()) if not user: abort(401) gs = [scheds.from_row(s) for s in scheds.find(scheds.TYPE_GAME)] return render_template("mobile/games.html", user=user, games=gs)
def events(): user = users.find_by_id(get_userid()) if not user: abort(401) es = [scheds.from_row(s) for s in scheds.find(scheds.TYPE_EVENT)] return render_template("mobile/events.html", user=user, events=es)