def user_page(user_id): """ TO-DOs: 1. 로그인 여부 확인 2. 사용자 정보 & 최근 작품 목록 출력 3. 로그인 중이라면, 정보 수정, 새 작품 쓰기, 작품 수정 등 기능 제공 """ try: m = member.Member() if not m.has_id(user_id): raise Exception('사용자 페이지가 존재하지 않습니다.') keys = ('id', 'name', 'intro', 'point', 'level', 'reg_date') result = m.data(user_id, keys) if not result: raise Exception('사용자 정보가 존재하지 않습니다.') data = dict(zip(keys, result)) logged = s.is_logged(user_id) session_data = s.data() return template('user_user_page.tpl', title='{}의 페이지'.format(user_id), data=data, logged=logged, member=session_data) except Exception as e: print('EXCEPTION in user_page') return template('popup.tpl', msg=str(e))
def update_info(user_id): # 한번 더 암호 묻기 # TODO: 로그인 여부 확인! (세션 데이터가 없으면 템플릿에서 에러 발생!) try: if not s.is_logged(user_id): raise Exception('사용자 정보를 수정할 권한이 없습니다.') info = {} session_data = s.data() info['num'] = session_data['user_num'] info['id'] = session_data['user_id'] info['name'] = session_data['user_name'] info['level'] = session_data['level'] m = member.Member() etc_data = m.extra_data(session_data['user_num']) info['email'] = etc_data[0] info['intro'] = etc_data[1] if not info['intro']: info['intro'] = '' return template('user_info_form.tpl', title='사용자 정보 수정', info=info, logged=True, member=session_data) except Exception as e: print('UPDATE_USER EXCEPTION: ', e) return template('popup.tpl', msg=e)
def new_book(user_id): """ 새 책 등록: 폼 출력 """ try: if not s.is_logged(user_id): raise Exception('새 책을 등록한 권한이 없습니다.') print("MAKING NEW BOOK...") return template('user_new_book_form.tpl', title='새 책 등록', logged=True, member=s.data()) except Exception as e: return template('popup', msg=str(e))
def do_update_info(user_id): try: if not s.is_logged(user_id): raise Exception('사용자 정보를 수정할 권한이 없습니다.') home_url = '/u/{}'.format(user_id) name = request.forms.getunicode('name', None) email = request.forms.getunicode('email', None) password = request.forms.getunicode('password', None) password2 = request.forms.getunicode('password2', None) intro = request.forms.getunicode('intro', None) if password != password2: raise Exception('비밀번호가 일치하지 않습니다.') m = member.Member() m.update(user_id, name=name, email=email, password=password, intro=intro) return template('popup', msg='{}님의 정보를 갱신했습니다.'.format(user_id), dest=home_url) except Exception as e: return template('popup.tpl', msg=str(e), dest=home_url)
def show_user_page(): # TODO: 사용자 랭킹 등 보여주기 logged = s.is_logged() session_data = s.data() return template('user_main.tpl', title='시용자 페이지', logged=logged, member=session_data)
def join_form(): # TODO: 템플릿에서 사용자 입력값 1차 확인 if s.is_logged(): # 이미 가입한 경우, 팝업 안내 후 첫 화면으로 redirect('/') return template('join_form.tpl', title='회원 가입')
def login_form(): if s.is_logged(): # 이미 로그인했으면 사용자 페이지로 return template('popup.tpl', msg='이미 로그인 중입니다.') return template('login_form.tpl', title='로그인', action='/login')
def main(): # 최종적으로는 최근 글, 추천 글등을 보여주는 홈페이지 역할 return template('main.tpl', title='메인 페이지', logged=s.is_logged(), member=s.data())