def create_group_view(request):
    errors = []
    name = ''
    member_list = list()
    users = User.get_users()
    
    if request.method == 'POST':
        name = request.POST.get('name', '')
        members_post = request.POST.getall('member')

        if not errors:
            group = Group(name=name)
            DBSession.add(group)
            for user in users:
                if user.login in members_post:
                    group.users.append(user)
            url = request.route_url('home')
            return HTTPFound(location=url)

    return {
        'name': name,
        'users': users,
        'member_list': member_list,
        'errors': errors,
    }
예제 #2
0
def edit_page_view(request):
    uri = request.matchdict["title"]
    page = Page.get_page(uri)
    user = User.get_user_by_id(page.owner)

    errors = []
    title = page.title
    body = page.body
    if request.method == "POST":
        title = request.POST.get("title", "")
        body = request.POST.get("body", "")

        v = validate_page(title, body)
        title = v["title"]
        body = v["body"]
        errors += v["errors"]

        if not errors:
            page.title = title
            page.body = body
            page.uri = Page.websafe_uri(title)
            DBSession.add(page)
            url = request.route_url("page", title=page.uri)
            return HTTPFound(location=url)

    return {"title": title, "owner": user.login, "body": body, "errors": errors}
def edit_group_view(request):
    name = request.matchdict['name']
    group = Group.get_group(name)
    users = User.get_users()
    member_list = list()
    for member in group.users:
        member_list.append(member.login)

    errors = []
    if request.method == 'POST':
        name = request.POST.get('name', '')
        members_post = request.POST.getall('member')
        if authenticated_userid(request) not in members_post:
            log.debug('AUTHENTICATED USERID NOT IN MEMBERS_POST')
            errors.append('Can\'t remove yourself from this group')
            log.debug(errors)

        if not errors:
            for user in users:
                if user.login in members_post:
                    group.users.append(user)
                elif user.login in member_list and user.login not in members_post:
                    group.users.remove(user)
            group.name = name
            url = request.route_url('groups')
            return HTTPFound(location=url)
         
    return {
        'name': name,
        'users': users,
        'member_list': member_list,
        'errors': errors,
    }
def create_page_view(request):
    owner = authenticated_userid(request)
    user = User.get_user(owner)

    errors = []
    body = title = ''
    if request.method == 'POST':
        title = request.POST.get('title', '')
        body = request.POST.get('body', '')

        v = validate_page(title, body)
        title = v['title']
        body = v['body']
        errors += v['errors']

        if not errors:
            page = Page(title=title, uri=Page.websafe_uri(title), owner=user.id, body=body)
            DBSession.add(page)
            url = request.route_url('page', title=page.uri)
            return HTTPFound(location=url)

    return {
        'title': title,
        'owner': owner,
        'body': body,
        'errors': errors,
    }
def page_view(request):
    page = request.context
    user = User.get_user_by_id(page.owner)
    

    return {
        'page': page,
        'user': user,
    }
def edit_page_view(request):
    uri = request.matchdict['title']
    page = Page.get_page(uri)
    user = User.get_user_by_id(page.owner)

    try:
        log.debug('Edit page view')
        log.debug(user.groups[0].name)
    except Exception, e:
        log.debug('WARNING: {0}'.format(e))
예제 #7
0
def create_group_view(request):
    errors = []
    name = ""
    members_db = list()
    users = User.get_users()

    if request.method == "POST":
        name = request.POST.get("name", "")
        members_post = request.POST.getall("member")

        if not errors:
            group = Group(name=name)
            DBSession.add(group)
            for user in users:
                if user.login in members_post:
                    group.users.append(user)
            url = request.route_url("home")
            return HTTPFound(location=url)

    return {"name": name, "users": users, "members_db": members_db, "errors": errors}
예제 #8
0
def create_page_view(request):
    owner = authenticated_userid(request)
    user = User.get_user(owner)

    errors = []
    body = title = ""
    if request.method == "POST":
        title = request.POST.get("title", "")
        body = request.POST.get("body", "")

        v = validate_page(title, body)
        title = v["title"]
        body = v["body"]
        errors += v["errors"]

        if not errors:
            page = Page(title=title, uri=Page.websafe_uri(title), owner=user.id, body=body)
            DBSession.add(page)
            url = request.route_url("page", title=page.uri)
            return HTTPFound(location=url)

    return {"title": title, "owner": owner, "body": body, "errors": errors}
예제 #9
0
def login_view(request):
    next = request.params.get('next') or request.route_url('home')
    login = ''
    did_fail = False
    users = DBSession.query(User).all()
    if 'submit' in request.POST:
        login = request.POST.get('login', '')
        passwd = request.POST.get('passwd', '')

        user = User.get_user(login)
        if user and user.validate_password(passwd):
            headers = remember(request, login)
            return HTTPFound(location=next, headers=headers)
        did_fail = True

    return {
        'login': login,
        'next': next,
        'failed_attempt': did_fail,
        'users': users,
        'request': request
    }
예제 #10
0
def edit_group_view(request):
    name = request.matchdict["name"]
    group = Group.get_group(name)
    users = User.get_users()
    members_db = list()
    for member in group.users:
        members_db.append(member.login)

    errors = []
    if request.method == "POST":
        name = request.POST.get("name", "")
        members_post = request.POST.getall("member")

        if not errors:
            for user in users:
                if user.login in members_post:
                    group.users.append(user)
                elif user.login in members_db and user.login not in members_post:
                    group.users.remove(user)
            url = request.route_url("home")
            return HTTPFound(location=url)

    return {"name": name, "users": users, "members_db": members_db, "errors": errors}
예제 #11
0
def page_view(request):
    page = request.context
    user = User.get_user_by_id(page.owner)

    return {"page": page, "user": user}