def add_sample_content(site, registry): # Give a site sdi_title site.sdi_title = 'Substance D Demo' admin_user = site['principals']['users']['admin'] for binder_num in range(1): binder = registry.content.create('Binder', 'Binder %d' % binder_num) binder_name = 'binder_%d' % binder_num site[binder_name] = binder for doc_num in range(1000): doc = registry.content.create( 'Document', 'Document %d Binder %d' % (doc_num, binder_num), 'The quick brown fox jumps over the lazy dog. ' * 50) doc.__creator__ = oid_of(admin_user) doc_name = 'document_%d' % doc_num binder[doc_name] = doc binder = registry.content.create('Binder', 'Ordered Binder') binder_name = 'ordered_binder' site[binder_name] = binder binder_order = [] for doc_num in range(20): doc = registry.content.create( 'Document', 'Document %d Binder %d' % (doc_num, binder_num), 'The quick brown fox jumps over the lazy dog. ' * 50) doc.__creator__ = oid_of(admin_user) doc_name = 'document_%d' % doc_num binder[doc_name] = doc binder_order.append(doc_name) binder.set_order(binder_order, reorderable=True)
def add_sample_content(site, registry): # Give a site sdi_title site.sdi_title = 'Substance D Demo' admin_user = site['principals']['users']['admin'] for binder_num in range(1): binder = registry.content.create('Binder', 'Binder %d' % binder_num) binder_name = 'binder_%d' % binder_num site[binder_name] = binder for doc_num in range(1000): doc = registry.content.create('Document', 'Document %d Binder %d' % (doc_num, binder_num), 'The quick brown fox jumps over the lazy dog. ' * 50) doc.__creator__ = oid_of(admin_user) doc_name = 'document_%d' % doc_num binder[doc_name] = doc binder = registry.content.create('Binder', 'Ordered Binder') binder_name = 'ordered_binder' site[binder_name] = binder binder_order = [] for doc_num in range(20): doc = registry.content.create('Document', 'Document %d Binder %d' % (doc_num, binder_num), 'The quick brown fox jumps over the lazy dog. ' * 50) doc.__creator__ = oid_of(admin_user) doc_name = 'document_%d' % doc_num binder[doc_name] = doc binder_order.append(doc_name) binder.set_order(binder_order, reorderable=True)
def add_sample_content(site, registry): # Give a site sdi_title site.sdi_title = 'Substance D Demo' admin_user = site['principals']['users']['admin'] admin_oid = admin_user.__oid__ oldacl = admin_user.__acl__ newacl = [] # disallow password changing for admin user (for demo) for (action, oid, permissions) in oldacl: if oid == admin_oid and action == 'Allow': if not is_nonstr_iter(permissions): permissions = (permissions,) permissions = set(permissions) if 'sdi.change-password' in permissions: permissions.remove('sdi.change-password') permissions = tuple(permissions) newacl.append((action, oid, permissions)) if newacl != oldacl: admin_user.__acl__ = newacl site.__acl__.insert( 0, ('Deny', admin_oid, ('sdi.change-password',)) ) site.__acl__.insert( 0, ('Deny', admin_oid, ('sdi.manage-user-groups',)) ) for binder_num in range(1): binder = registry.content.create('Binder', 'Binder %d' % binder_num) binder_name = 'binder_%d' % binder_num site[binder_name] = binder for doc_num in range(1000): doc = registry.content.create('Document', 'Document %d Binder %d' % (doc_num, binder_num), 'The quick brown fox jumps over the lazy dog. ' * 50) doc.__creator__ = oid_of(admin_user) doc_name = 'document_%d' % doc_num binder[doc_name] = doc binder = registry.content.create('Binder', 'Ordered Binder') binder_name = 'ordered_binder' site[binder_name] = binder binder_order = [] for doc_num in range(20): doc = registry.content.create('Document', 'Document %d Binder %d' % (doc_num, binder_num), 'The quick brown fox jumps over the lazy dog. ' * 50) doc.__creator__ = oid_of(admin_user) doc_name = 'document_%d' % doc_num binder[doc_name] = doc binder_order.append(doc_name) binder.set_order(binder_order, reorderable=True)
def add_sample_content(site, registry): # Give a site sdi_title site.sdi_title = 'Substance D Demo' admin_user = site['principals']['users']['admin'] admin_oid = admin_user.__oid__ oldacl = admin_user.__acl__ newacl = [] # disallow password changing for admin user (for demo) for (action, oid, permissions) in oldacl: if oid == admin_oid and action == 'Allow': if not is_nonstr_iter(permissions): permissions = (permissions, ) permissions = set(permissions) if 'sdi.change-password' in permissions: permissions.remove('sdi.change-password') permissions = tuple(permissions) newacl.append((action, oid, permissions)) if newacl != oldacl: admin_user.__acl__ = newacl site.__acl__.insert(0, ('Deny', admin_oid, ('sdi.change-password', ))) site.__acl__.insert(0, ('Deny', admin_oid, ('sdi.manage-user-groups', ))) for binder_num in range(1): binder = registry.content.create('Binder', 'Binder %d' % binder_num) binder_name = 'binder_%d' % binder_num site[binder_name] = binder for doc_num in range(1000): doc = registry.content.create( 'Document', 'Document %d Binder %d' % (doc_num, binder_num), 'The quick brown fox jumps over the lazy dog. ' * 50) doc.__creator__ = oid_of(admin_user) doc_name = 'document_%d' % doc_num binder[doc_name] = doc binder = registry.content.create('Binder', 'Ordered Binder') binder_name = 'ordered_binder' site[binder_name] = binder binder_order = [] for doc_num in range(20): doc = registry.content.create( 'Document', 'Document %d Binder %d' % (doc_num, binder_num), 'The quick brown fox jumps over the lazy dog. ' * 50) doc.__creator__ = oid_of(admin_user) doc_name = 'document_%d' % doc_num binder[doc_name] = doc binder_order.append(doc_name) binder.set_order(binder_order, reorderable=True)
def login(context, request): login_url = request.mgmt_path(request.context, 'login') referrer = request.url if login_url in referrer: # pragma: no cover # never use the login form itself as came_from referrer = request.mgmt_path(request.root) came_from = request.session.setdefault('came_from', referrer) login = '' password = '' if 'form.submitted' in request.params: try: check_csrf_token(request) except: request.session.flash('Failed login (CSRF)', 'error') else: login = request.params['login'] password = request.params['password'] principals = find_service(context, 'principals') users = principals['users'] user = users.get(login) if user is not None and user.check_password(password): headers = remember(request, oid_of(user)) request.session.flash('Welcome!', 'success') return HTTPFound(location=came_from, headers=headers) request.session.flash('Failed login', 'error') return dict( url=request.mgmt_path(request.root, 'login'), came_from=came_from, login=login, password=password, login_url=velruse_login_url, providers=request.registry.settings['substanced.login_providers'] )
def add_success(self, appstruct): registry = self.request.registry name = appstruct.pop('name') document = registry.content.create('Document', **appstruct) document.__creator__ = oid_of(self.request.user) self.context[name] = document return HTTPFound(self.request.mgmt_path(self.context, '@@contents'))
def add_success(self, appstruct): registry = self.request.registry name = appstruct.pop('name') binder = registry.content.create('Binder', **appstruct) binder.__creator__ = oid_of(self.request.user) self.context[name] = binder return HTTPFound(self.request.mgmt_path(self.context, '@@contents'))
def add_success(self, appstruct): registry = self.request.registry name = appstruct.pop('name') document = registry.content.create('Document', **appstruct) document.__creator__ = oid_of(self.request.user) self.context[name] = document return HTTPFound( self.request.mgmt_path(self.context, '@@contents'))
def test_document_repr(self): from substanced.util import oid_of inst = self._makeOne() obj = testing.DummyResource() objectmap = self._acquire(inst, '__objectmap__') objectmap.add(obj, (u'',)) result = inst.document_repr(oid_of(obj)) self.assertEqual(result, (u'',))
def test_document_repr(self): from substanced.util import oid_of inst = self._makeOne() obj = testing.DummyResource() objectmap = self._acquire(inst, '__objectmap__') objectmap.add(obj, (u'', )) result = inst.document_repr(oid_of(obj)) self.assertEqual(result, (u'', ))
def topic_view(self): self.title = self.context.title documents = self.documents # TODO this is just temporary until I wire up widget from substanced.util import oid_of oid = oid_of(self.context) return dict(oid=oid, documents=documents)
def external_login_complete(request): profile = request.context.profile email = '' if 'verifiedEmail' in profile: email = profile['verifiedEmail'] if 'emails' in profile: emails = profile['emails'] email = emails[0]['value'] came_from = request.session.get('came_from', request.application_url) connection = get_connection(request) site_root = connection.root()['app_root'] principals = find_service(site_root, 'principals') users = principals['users'] user = [user for user in users.values() if user.email == email] if not user or not email: return external_login_denied(request) headers = remember(request, oid_of(user[0])) request.session.flash('Welcome!', 'success') return HTTPFound(location=came_from, headers=headers)