예제 #1
0
def view():
    """
    Show the list of desks in this org
    """
    org = db.organization(request.args(0))
    session.org_id = org.id
    return locals()
예제 #2
0
파일: org.py 프로젝트: ybenitezf/nstock
def view():
    """
    Show the list of desks in this org
    """
    org = db.organization(request.args(0))
    session.org_id = org.id
    return locals()
예제 #3
0
파일: desk.py 프로젝트: zahedbri/nstock
def create():
    org = db.organization(session.org_id)
    tbl = db.desk
    tbl.item_list.readable = False
    tbl.item_list.writable = False
    tbl.name.requires = IS_NOT_EMPTY()

    form = SQLFORM(db.desk)
    form.add_button(T('Cancel'), URL('org', 'view', args=[org.id]))

    if form.process().accepted:
        # add the new desk to the org list
        desk_id = form.vars.id
        # add current users as the one with permission to update manage
        # this desk
        auth.add_permission(
            auth.user_group(auth.user.id),
            'update',
            db.desk,
            desk_id)
        desk_list = org.desks
        desk_list.insert(0, desk_id)
        org.update_record(desks=desk_list)
        # return to the org desk list
        redirect(URL('org', 'view', args=[org.id]))

    return locals()
예제 #4
0
파일: org.py 프로젝트: ybenitezf/nstock
def members():
    org = db.organization(request.args(0))

    if not request.args(1):
        fld_email = Field('email', 'string', label=T("Email"))
        fld_email.requires = IS_EMAIL()

        form = SQLFORM.factory(
            fld_email,
            formstyle='bootstrap3_inline',
            submit_button=T("Add user"),
            table_name='members')

        if form.process().accepted:
            u = db.auth_user(email=form.vars.email)
            if u is not None:
                # create new share
                if u.id in org.users:
                    form.errors.email = T(
                        "The user is already in the organization")
                else:
                    user_list = org.users
                    user_list.insert(0, u.id)
                    org.update_record(users=user_list)
                    g_id = auth.user_group(u.id)
                    auth.add_permission(g_id, 'read', db.organization, org.id)
            else:
                # no user with that email
                response.flash = ""
                form.errors.email = T("The user don't exists on this system")
    elif request.args(1) == 'delete':
        # remove the user on args(2) from the org members list
        # TODO: remove else any perms on the org desks
        user_to_remove = db.auth_user(request.args(2))
        if user_to_remove is not None:
            user_list = org.users
            user_list.remove(user_to_remove.id)
            org.update_record(users=user_list)
            # remove perms over the org
            auth.del_permission(
                auth.user_group(user_to_remove.id),
                'read',
                db.organization,
                org.id)
            # remove, also, all rights over the desks in the org.
            desk_perms = [
                'read_desk', 'update_items', 'push_items', 'update_desk']
            for desk_id in org.desks:
                for perm in desk_perms:
                    auth.del_permission(
                        auth.user_group(user_to_remove.id),
                        perm,
                        db.desk,
                        desk_id
                    )
        redirect(URL('org', 'members', args=[org.id]))

    return locals()
예제 #5
0
def members():
    org = db.organization(request.args(0))

    if not request.args(1):
        fld_email = Field('email', 'string', label=T("Email"))
        fld_email.requires = IS_EMAIL()

        form = SQLFORM.factory(fld_email,
                               formstyle='bootstrap3_inline',
                               submit_button=T("Add user"),
                               table_name='members')

        if form.process().accepted:
            u = db.auth_user(email=form.vars.email)
            if u is not None:
                # create new share
                if u.id in org.users:
                    form.errors.email = T(
                        "The user is already in the organization")
                else:
                    user_list = org.users
                    user_list.insert(0, u.id)
                    org.update_record(users=user_list)
                    g_id = auth.user_group(u.id)
                    auth.add_permission(g_id, 'read', db.organization, org.id)
            else:
                # no user with that email
                response.flash = ""
                form.errors.email = T("The user don't exists on this system")
    elif request.args(1) == 'delete':
        # remove the user on args(2) from the org members list
        # TODO: remove else any perms on the org desks
        user_to_remove = db.auth_user(request.args(2))
        if user_to_remove is not None:
            user_list = org.users
            user_list.remove(user_to_remove.id)
            org.update_record(users=user_list)
            # remove perms over the org
            auth.del_permission(auth.user_group(user_to_remove.id), 'read',
                                db.organization, org.id)
            # remove, also, all rights over the desks in the org.
            desk_perms = [
                'read_desk', 'update_items', 'push_items', 'update_desk'
            ]
            for desk_id in org.desks:
                for perm in desk_perms:
                    auth.del_permission(auth.user_group(user_to_remove.id),
                                        perm, db.desk, desk_id)
        redirect(URL('org', 'members', args=[org.id]))

    return locals()
예제 #6
0
파일: org.py 프로젝트: ybenitezf/nstock
def edit():
    org = db.organization(request.args(0))
    tbl = db.organization
    tbl.users.readable = False
    tbl.users.writable = False
    tbl.desks.readable = False
    tbl.desks.writable = False
    tbl.name.requires = [IS_NOT_EMPTY()]

    # edit form
    form = SQLFORM(db.organization, record=org, showid=False)
    if form.process().accepted:
        redirect(URL('view', args=[org.id]))

    return locals()
예제 #7
0
def edit():
    org = db.organization(request.args(0))
    tbl = db.organization
    tbl.users.readable = False
    tbl.users.writable = False
    tbl.desks.readable = False
    tbl.desks.writable = False
    tbl.name.requires = [IS_NOT_EMPTY()]

    # edit form
    form = SQLFORM(db.organization, record=org, showid=False)
    if form.process().accepted:
        redirect(URL('view', args=[org.id]))

    return locals()
예제 #8
0
def users():
    desk = db.desk(request.args(0))
    session.desk_id = desk.id

    org = db.organization(session.org_id)

    if request.args(1):
        my_user = db.auth_user(request.args(1))

        fld_read_desk = Field('read_desk', 'boolean')
        fld_read_desk.label = T("Read '%s' content", (desk.name, ))
        fld_read_desk.comment = T(
            "Allow the user read only access to the desk item list.")
        fld_read_desk.default = auth.has_permission('read', db.desk, desk.id,
                                                    my_user.id)

        fld_update_items = Field('update_items', 'boolean')
        fld_update_items.label = T("Read/Update items in '%s'", (desk.name, ))
        fld_update_items.comment = T(
            "Allow the user make modifications to the items in the desk.")
        fld_update_items.default = auth.has_permission('update_items', db.desk,
                                                       desk.id, my_user.id)

        fld_push_items = Field('push_items', 'boolean')
        fld_push_items.label = T("Push items into '%s'", (desk.name, ))
        fld_push_items.comment = T(
            """Allow the user move items into the desk.""")
        fld_push_items.default = auth.has_permission('push_items', db.desk,
                                                     desk.id, my_user.id)

        fld_update_desk = Field('update_desk', 'boolean')
        fld_update_desk.label = T("Update/Manage '%s'", (desk.name, ))
        fld_update_desk.comment = T("""
            Allow the user to manage/administrate this desk. Use with caution.
            """)
        fld_update_desk.default = auth.has_permission('update', db.desk,
                                                      desk.id, my_user.id)

        form = SQLFORM.factory(fld_read_desk,
                               fld_update_items,
                               fld_push_items,
                               fld_update_desk,
                               table_name='desk_perms')

        if form.process().accepted:
            if form.vars.read_desk:
                # give perm
                auth.add_permission(auth.user_group(my_user.id), 'read',
                                    db.desk, desk.id)
            else:
                auth.del_permission(auth.user_group(my_user.id), 'read',
                                    db.desk, desk.id)

            if form.vars.update_items:
                # give perm
                auth.add_permission(auth.user_group(my_user.id),
                                    'update_items', db.desk, desk.id)
            else:
                auth.del_permission(auth.user_group(my_user.id),
                                    'update_items', db.desk, desk.id)

            if form.vars.push_items:
                # give perm
                auth.add_permission(auth.user_group(my_user.id), 'push_items',
                                    db.desk, desk.id)
            else:
                auth.del_permission(auth.user_group(my_user.id), 'push_items',
                                    db.desk, desk.id)

            if form.vars.update_desk:
                # give perm
                auth.add_permission(auth.user_group(my_user.id), 'update_desk',
                                    db.desk, desk.id)
            else:
                auth.del_permission(auth.user_group(my_user.id), 'update_desk',
                                    db.desk, desk.id)

            redirect(URL('desk', 'users', args=[desk.id]))

        response.view = "desk/user_perms.html"
    else:
        # select user view
        query = (db.auth_user.id > 0)
        query &= (db.auth_user.id.belongs(org.users))

        my_users = db(query).select()

    return locals()
예제 #9
0
파일: desk.py 프로젝트: ybenitezf/nstock
def users():
    desk = db.desk(request.args(0))
    session.desk_id = desk.id

    org = db.organization(session.org_id)

    if request.args(1):
        my_user = db.auth_user(request.args(1))

        fld_read_desk = Field('read_desk', 'boolean')
        fld_read_desk.label = T("Read '%s' content", (desk.name,))
        fld_read_desk.comment = T(
            "Allow the user read only access to the desk item list.")
        fld_read_desk.default = auth.has_permission(
            'read', db.desk, desk.id, my_user.id)

        fld_update_items = Field('update_items', 'boolean')
        fld_update_items.label = T("Read/Update items in '%s'", (desk.name,))
        fld_update_items.comment = T(
            "Allow the user make modifications to the items in the desk.")
        fld_update_items.default = auth.has_permission(
            'update_items', db.desk, desk.id, my_user.id)

        fld_push_items = Field('push_items', 'boolean')
        fld_push_items.label = T("Push items into '%s'", (desk.name,))
        fld_push_items.comment = T(
            """Allow the user move items into the desk."""
        )
        fld_push_items.default = auth.has_permission(
            'push_items', db.desk, desk.id, my_user.id)

        fld_update_desk = Field('update_desk', 'boolean')
        fld_update_desk.label = T("Update/Manage '%s'", (desk.name,))
        fld_update_desk.comment = T(
            """
            Allow the user to manage/administrate this desk. Use with caution.
            """
        )
        fld_update_desk.default = auth.has_permission(
            'update', db.desk, desk.id, my_user.id)

        form = SQLFORM.factory(
            fld_read_desk,
            fld_update_items,
            fld_push_items,
            fld_update_desk,
            table_name='desk_perms'
        )

        if form.process().accepted:
            if form.vars.read_desk:
                # give perm
                auth.add_permission(
                    auth.user_group(my_user.id), 'read', db.desk, desk.id)
            else:
                auth.del_permission(
                    auth.user_group(my_user.id), 'read', db.desk, desk.id)

            if form.vars.update_items:
                # give perm
                auth.add_permission(
                    auth.user_group(my_user.id), 'update_items', db.desk,
                    desk.id)
            else:
                auth.del_permission(
                    auth.user_group(my_user.id), 'update_items', db.desk,
                    desk.id)

            if form.vars.push_items:
                # give perm
                auth.add_permission(
                    auth.user_group(my_user.id), 'push_items', db.desk,
                    desk.id)
            else:
                auth.del_permission(
                    auth.user_group(my_user.id), 'push_items', db.desk,
                    desk.id)

            if form.vars.update_desk:
                # give perm
                auth.add_permission(
                    auth.user_group(my_user.id), 'update_desk', db.desk,
                    desk.id)
            else:
                auth.del_permission(
                    auth.user_group(my_user.id), 'update_desk', db.desk,
                    desk.id)

            redirect(URL('desk', 'users', args=[desk.id]))

        response.view = "desk/user_perms.html"
    else:
        # select user view
        query = (db.auth_user.id > 0)
        query &= (db.auth_user.id.belongs(org.users))

        my_users = db(query).select()

    return locals()