Ejemplo n.º 1
0
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
from sqlalchemy import or_, not_, and_

from libs import datetime2timestamp, filter_dict, is_keys_in_dict, smart_unicode
from arara_thrift.ttypes import *
from arara import arara_manager
from arara import model
from arara import ara_memcached
from arara.util import require_login
from arara.util import log_method_call_with_source, log_method_call_with_source_important, log_method_call_with_source_duration
from arara.util import send_mail
import etc.arara_settings
from etc import arara_settings

log_method_call = log_method_call_with_source('member_manager')
log_method_call_duration = log_method_call_with_source_duration('member_manager')
log_method_call_important = log_method_call_with_source_important('member_manager')

import re
PROPER_USERNAME_REGEX = re.compile(r'^[a-zA-Z0-9_\-\.]+$')

# KAIST E-Mail Address Restriction
# 계정명 길이 경계값이 4-20 또는 3-20 으로 알려져 있어서, 1씩 여유를 두었다
PROPER_EMAIL_REGEX = re.compile(r'^[0-9a-zA-Z\_\-\.]{2,21}@kaist.(ac.kr|edu)$')

# TODO: non-KAIST E-Mail Address 에 대한 검증도 준비한다

class NoPermission(Exception):
    pass

class WrongPassword(Exception):
Ejemplo n.º 2
0
import logging
import traceback

from sqlalchemy.exc import InvalidRequestError
from sqlalchemy.sql import func, select

from arara import model
from arara.util import require_login
from arara.util import log_method_call_with_source, log_method_call_with_source_duration, log_method_call_with_source_important
from arara.read_status import ReadStatus
from arara.read_status.default_backend import ReadStatusManagerDefault

from arara_thrift.ttypes import *

log_method_call = log_method_call_with_source('read_status_manager_db')
log_method_call_duration = log_method_call_with_source_duration('read_status_manager_db')
log_method_call_important = log_method_call_with_source_important('read_status_manager_db')

class ReadStatusManagerDB(ReadStatusManagerDefault):
    '''
    읽은 글, 통과한글 처리관련 클래스
    '''

    def __init__(self, engine):
        super(ReadStatusManagerDB, self).__init__(engine)
        self.read_status = {}

    def _get_dict(self, item, whitelist=None):
        item_dict = item.__dict__
        if whitelist:
            filtered_dict = filter_dict(item_dict, whitelist)
Ejemplo n.º 3
0
from sqlalchemy.sql import func, select

from arara import model
from arara.util import require_login
from arara.util import (
    log_method_call_with_source,
    log_method_call_with_source_duration,
    log_method_call_with_source_important,
)
from arara.read_status import ReadStatus
from arara.read_status.default_backend import ReadStatusManagerDefault

from arara_thrift.ttypes import *

log_method_call = log_method_call_with_source("read_status_manager_db")
log_method_call_duration = log_method_call_with_source_duration("read_status_manager_db")
log_method_call_important = log_method_call_with_source_important("read_status_manager_db")


class ReadStatusManagerDB(ReadStatusManagerDefault):
    """
    읽은 글, 통과한글 처리관련 클래스
    """

    def __init__(self, engine):
        super(ReadStatusManagerDB, self).__init__(engine)
        self.read_status = {}

    def _get_dict(self, item, whitelist=None):
        item_dict = item.__dict__
        if whitelist:
Ejemplo n.º 4
0
from sqlalchemy.orm.exc import NoResultFound, MultipleResultsFound
from sqlalchemy import or_, not_, and_

from libs import datetime2timestamp, filter_dict, is_keys_in_dict, smart_unicode
from arara_thrift.ttypes import *
from arara import arara_manager
from arara import model
from arara import ara_memcached
from arara.util import require_login
from arara.util import log_method_call_with_source, log_method_call_with_source_important, log_method_call_with_source_duration
from arara.util import send_mail
import etc.arara_settings
from etc import arara_settings

log_method_call = log_method_call_with_source('member_manager')
log_method_call_duration = log_method_call_with_source_duration(
    'member_manager')
log_method_call_important = log_method_call_with_source_important(
    'member_manager')

import re
PROPER_USERNAME_REGEX = re.compile(r'^[a-zA-Z0-9_\-\.]+$')

# KAIST E-Mail Address Restriction
# 계정명 길이 경계값이 4-20 또는 3-20 으로 알려져 있어서, 1씩 여유를 두었다
PROPER_EMAIL_REGEX = re.compile(r'^[0-9a-zA-Z\_\-\.]{2,21}@kaist.(ac.kr|edu)$')

# TODO: non-KAIST E-Mail Address 에 대한 검증도 준비한다


class NoPermission(Exception):
    pass