Ejemplo n.º 1
0
def index():
    #commentable campaigns
    commentable_campaigns = scheduling.get_before(campaigns.Campaign, limit=3)
    campaign_w_comments = [(x, comments.get_all(x.obj_id(), campaigns.Campaign.coll_name(), limit=3))
                           for x in commentable_campaigns]
    verbose_campaign_comments = []
    for campaign in campaign_w_comments:
        campaign_obj = campaign[0]
        comment_obj = campaign[1]
        lis_of_comments = []
        for c in comment_obj:
            comment_str = c.comment
            commentee_user = users.get(c.user_id)
            lis_of_comments += [(commentee_user.first_name, comment_str)]
        verbose_campaign_comments += [(campaign_obj, lis_of_comments)]
    comment_name_form = generate_form(__comment_name_form(), id="comment-name-form")

    #event campaigns
    event_campaigns = __event_campaigns()
    rsvp_form = __rsvp_email_form()
    form = generate_form(rsvp_form, action="/campaign/rsvp/", method="post", id="rsvp-form")

    return render_template("demo.html", **{
        "commentable": verbose_campaign_comments,
        "comment_name_form": comment_name_form,
        "events": event_campaigns,
        "rsvp_form": form,
        "is_campaign": True,
    })
Ejemplo n.º 2
0
def confirm_registration(user_id, token):
    user_obj = users.get(user_id)
    if users.check_token(user_obj, users.AccountActivity.VERIFY_EMAIL_ADDR, token):
        users.confirm(user_obj)
        users.remove_token(user_obj, users.AccountActivity.VERIFY_EMAIL_ADDR)
        return "Success!"
    return "Fail!"
Ejemplo n.º 3
0
def confirm_registration(user_id, token):
    redirect_to = request.args.get("redirect_to", "%s%s" % (PLOP_DOMAIN, REGISTRATION_COMPLETE_REDIRECT))
    user_obj = users.get(user_id)
    if users.check_token(user_obj, users.AccountActivity.VERIFY_EMAIL_ADDR, token):
        users.confirm(user_obj)
        users.remove_token(user_obj, users.AccountActivity.VERIFY_EMAIL_ADDR)
        return redirect(redirect_to)
    return redirect(url_for("login_user") + "?login=unsuccessful")
Ejemplo n.º 4
0
def new_user(_id, address, email, first_name, last_name, middle_name, password, status, user_groups, username):
    u = users.User()
    if _id is not None:
        u = users.get(_id)
    u.username = username
    u.first_name = first_name
    u.middle_name = middle_name
    u.last_name = last_name
    u.email = email
    u.address = address
    u.groups = user_groups if user_groups is not None else []
    u.account_status = status
    u._id = u.save()

    if len(password) > 0:
        users.set_passwd(u, password)
Ejemplo n.º 5
0
def is_valid(coupon, order_obj):
    """
    Checks if a coupon is valid on an order
    """
    user_obj = users.get(order_obj.user_id)
    user_groups = user_obj.groups
    utc_now = datetime.datetime.utcnow()
    order_price = orders.total_price(order_obj)
    if coupon.user_scope == CouponUserScope.GROUP:
        if coupon.user_group not in user_groups:
            return False
    if coupon.user_scope == CouponUserScope.SPECIFIC:
        if coupon.user_id != user_obj._id:
            return False
    if coupon.valid_times <= 0:
        return False
    if coupon.coupon_lifetime_type == CouponLifetime.LIMITED:
        if utc_now > coupon.expire_utc_datetime:
            return False
        if utc_now < coupon.begins_utc_datetime:
            return False
    if coupon.order_minimum_spending < order_price:
        return False

    all_items = order_obj.items  # {obj_id: None, coll_name: None, quantity:None}

    flag = False
    for i in all_items:
        i["obj"] = items.get(i["obj_id"])
        i["container"] = items.item_container(i["obj"])

        if coupon.coupon_scope == CouponScope.CONTAINER_WIDE:
            container_obj = items.get_container(coupon.obj_id)
            if items.is_parent_container(container_obj, i["container"]) or i["container"]._id == coupon.obj_id:
                flag = True
                break

        if coupon.coupon_scope == CouponScope.ITEM_ONLY:
            if i["obj_id"] == coupon.obj_id:
                flag = True
                break
    if not flag:
        return False

    return True
Ejemplo n.º 6
0
def reset_password(user_id, token):
    user_obj = users.get(user_id)
    if users.check_token(user_obj, users.AccountActivity.RESET_PASSWORD, token):
        #show passwd reset form
        if request.method == "GET":
            form = __passwd_reset_form()
            return render_template("passwd_reset.html", **{
                "form": generate_form(form, **{
                    "method": "post"
                }),
            })

        #parse reset form
        else:
            values = get_form_values(request, __passwd_reset_form())
            new_passwd = values["passwd"]
            users.set_passwd(user_obj, new_passwd)
            users.remove_token(user_obj, users.AccountActivity.RESET_PASSWORD)
            return "Changed password!"

    return "Fail!"
Ejemplo n.º 7
0
def load_user(userid):
    return users.get(userid)
Ejemplo n.º 8
0
    def user(self):
        from base import users

        return users.get(self.user_id)