예제 #1
0
파일: login.py 프로젝트: ondratu/morias
    ("morias", "smtp", Smtp),  # for password reset
    ("login", "sign_up", bool, False),  # If user could sign up
    # If user could get entry link when don't know password
    ("login", "rounds", int, 12, True, "Rounds for bcrypt gensalt."),
    ("login", "forget_password_link", bool, False),
    ("login", "ttl_of_password_link", int, 30, True, "Time to Live in minutes of forgotten password link."),
    ("login", "created_verify_link", bool, False, True, "If created login must verify his/her email."),
)

module_right = "users_admin"  # right admin - do anythig with users
R_ADMIN = module_right  # back compatibility

rights.update((R_ADMIN,))

system_menu.append(Item("/admin/logins", label="Logins", symbol="login", rights=[R_ADMIN]))
user_info_menu.append(Item("/login", label="Login", symbol="login", rights=["user"]))


def _call_conf(cfg, parser):
    if cfg.login_sign_up:
        app.set_route("/sign_up", sign_up, state.METHOD_GET_POST)
    if cfg.login_forget_password_link:
        app.set_route("/login/forgotten_password", forgotten_password, state.METHOD_GET_POST)


def send_login_created(req, login, sign_up=False):
    try:
        req.smtp.send_email_alternative(
            morias_template(req, "mail/login/created_subject.jinja", item=login, sign_up=sign_up).encode(  # subject
                "utf-8"
            ),
예제 #2
0
from core.render import generate_page

from lib.menu import Item
from lib.login import Login
from lib.login_addresses import Addresses

from user import user_info_menu
from login import module_right

_check_conf = (
    # common addresses block
    ('addresses', 'region', bool, False, True),
    ('addresses', 'country', bool, False, True),
)

user_info_menu.append(Item('/user/addresses', label="Addresses",
                      symbol="address", rights=['user']))


@app.route('/admin/logins/<id:int>/addresses',
           method=state.METHOD_GET | state.METHOD_PUT)
def admin_login_addresses(req, id):
    check_login(req)
    check_right(req, module_right)

    login = Login(id)

    if req.method == 'GET':
        if not login.get(req):
            raise SERVER_RETURN(state.HTTP_NOT_FOUND)

        return generate_page(req, "admin/logins_addresses.html",
예제 #3
0
def _call_conf(cfg, parser):
    cfg.footers.append('eshop/_footer.html')
    if cfg.eshop_cart_in_menu:
        user_sections.append(MenuItem('/eshop/cart', label="Shopping Cart",
                             symbol="shopping-cart", role="shopping-cart"))
    if cfg.debug:
        app.set_route('/eshop/cart/wipe', eshop_cart_wipe)
# enddef

module_right = 'eshop_orders'
rights.add(module_right)

eshop_menu.append(MenuItem('/admin/eshop/orders', label="Orders",
                  symbol="eshop-orders", rights=[module_right]))
user_info_menu.append(MenuItem('/eshop/orders', label="My Orders",
                      symbol="eshop-orders"))


def send_order_status(req, order):
    """ Send order status to order email.
        This function call calculate on order and create sha
    """
    cfg = Object()
    cfg.addresses_country = req.cfg.addresses_country
    cfg.addresses_region = req.cfg.addresses_region
    cfg.eshop_currency = req.cfg.eshop_currency

    order.calculate()   # calculate summary
    order.sha = sha1(str(order.create_date)).hexdigest()

    try: