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()
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()
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()
def create(): fld_name = db.dashboard.name fld_name.requires = IS_NOT_EMPTY() fld_activate = Field( 'activate', 'boolean', default=True, label=T('Activate?')) form = SQLFORM.factory(fld_name, fld_activate) if form.process().accepted: d_id = db.dashboard.insert( name=form.vars.name, item_list=[] ) auth.add_permission(0, 'owner', db.dashboard, d_id) session.dashboard = d_id redirect(URL('default', 'index')) return dict(form=form)
def create(): """Create a new organization""" 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( error_message=T("Cannot be empty") ), IS_NOT_IN_DB( db, 'organization.name', error_message=T( "An Organization witch that name is allready in nStock"))] form = SQLFORM(tbl) form.add_button(T('Cancel'), URL('index')) if form.process().accepted: # add the new organization g_id = auth.user_group(auth.user.id) # give the user all perms over this org auth.add_permission(g_id, 'update', tbl, form.vars.id) auth.add_permission(g_id, 'read', tbl, form.vars.id) auth.add_permission(g_id, 'delete', tbl, form.vars.id) redirect(URL('index')) return locals()
def create(): """Create a new organization""" 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(error_message=T("Cannot be empty")), IS_NOT_IN_DB( db, 'organization.name', error_message=T( "An Organization witch that name is allready in nStock")) ] form = SQLFORM(tbl) form.add_button(T('Cancel'), URL('index')) if form.process().accepted: # add the new organization g_id = auth.user_group(auth.user.id) # give the user all perms over this org auth.add_permission(g_id, 'update', tbl, form.vars.id) auth.add_permission(g_id, 'read', tbl, form.vars.id) auth.add_permission(g_id, 'delete', tbl, form.vars.id) redirect(URL('index')) return locals()
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()
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()