Пример #1
0
    def test_settings_initialize_load_settings_include(self):
        from ptah.settings import init_settings

        path = os.path.join(self.dir, 'settings.cfg')
        f = open(path, 'wb')
        f.write(bytes_('[DEFAULT]\ngroup.node1 = value\n\n','ascii'))
        f.close()

        node1 = ptah.form.TextField(
            'node1',
            default = 'default1')

        node2 = ptah.form.IntegerField(
            'node2',
            default = 10)

        ptah.register_settings('group', node1, node2)
        self.init_ptah()

        init_settings(self.config, {'include': path})

        group = ptah.get_settings('group', self.request.registry)

        self.assertEqual(group['node1'], 'value')
        self.assertEqual(group['node2'], 10)
Пример #2
0
    def test_settings_export(self):
        field1 = ptah.form.TextField('node1', default='test')

        field2 = ptah.form.TextField('node2', default='test1')

        ptah.register_settings('group4', field1, field2)
        self.init_ptah(initsettings=True)

        settings = get_settings_ob()

        # changed settings
        self.assertEqual(settings.export(), {})

        # default settings
        data = settings.export(default=True)
        self.assertIn('group4.node1', data)
        self.assertIn('group4.node2', data)
        self.assertEqual(data['group4.node1'], '"test"')
        self.assertEqual(data['group4.node2'], '"test1"')

        # changed settings
        group = ptah.get_settings('group4', self.registry)

        group['node2'] = 'changed'
        data = dict(settings.export())
        self.assertEqual(data['group4.node2'], '"changed"')
Пример #3
0
    def test_settings_group_multiple_validation(self):
        def validator1(fs, appstruct):
            raise ptah.form.Invalid('Error1', fs['node1'])

        def validator2(fs, appstruct):
            raise ptah.form.Invalid('Error2', fs['node2'])

        node1 = ptah.form.TextField('node1', default='test')

        node2 = ptah.form.TextField('node2', default='test')

        ptah.register_settings('group3',
                               node1,
                               node2,
                               validator=(validator1, validator2))

        self.init_ptah()

        group = ptah.get_settings('group3', self.registry)
        data, err = group.extract({
            'group3.node1': 'value',
            'group3.node2': 'value'
        })

        self.assertEqual(err.msg, {'group3': text_type(['Error1', 'Error2'])})
Пример #4
0
    def test_edit_form(self):
        from ptah.manage.settings import SettingsModule, EditForm

        ptah.register_settings(
            'test',
            ptah.form.TextField('node1', default='test1', required=False),
            ptah.form.TextField('node2', default='test2', required=False),
            title = 'Test settings',
            ttw = True,
            ttw_skip_fields = ('node2',))

        self.init_ptah()

        mod = SettingsModule(None, self.request)
        grp = mod['test']
        settings = grp.group

        form = EditForm(grp, self.request)

        self.assertEqual(form.label, settings.__title__)
        self.assertEqual(form.description, settings.__description__)
        self.assertIs(form.form_content(), settings)

        fields = form.fields
        self.assertIn('node1', fields)
        self.assertNotIn('node2', fields)

        res = form.back_handler()
        self.assertIsInstance(res, HTTPFound)
        self.assertEqual(res.headers['location'], '..')

        form.update_form()
        form.modify_handler()
        self.assertIn('Settings have been modified.',
                      self.request.render_messages())
Пример #5
0
    def test_settings_group_multiple_validation(self):
        def validator1(fs, appstruct):
            raise ptah.form.Invalid('Error1', fs['node1'])

        def validator2(fs, appstruct):
            raise ptah.form.Invalid('Error2', fs['node2'])

        node1 = ptah.form.TextField(
            'node1',
            default = 'test')

        node2 = ptah.form.TextField(
            'node2',
            default = 'test')

        ptah.register_settings(
            'group3', node1, node2, validator=(validator1, validator2))

        self.init_ptah()

        group = ptah.get_settings('group3', self.registry)
        data, err = group.extract({
            'group3.node1': 'value',
            'group3.node2': 'value'})

        self.assertEqual(err.msg, {'group3': text_type(['Error1', 'Error2'])})
Пример #6
0
    def test_settings_export(self):
        field1 = ptah.form.TextField(
            'node1',
            default = 'test')

        field2 = ptah.form.TextField(
            'node2',
            default = 'test1')

        ptah.register_settings('group4', field1, field2)
        self.init_ptah(initsettings=True)

        settings = get_settings_ob()

        # changed settings
        self.assertEqual(settings.export(), {})

        # default settings
        data = settings.export(default=True)
        self.assertIn('group4.node1', data)
        self.assertIn('group4.node2', data)
        self.assertEqual(data['group4.node1'], '"test"')
        self.assertEqual(data['group4.node2'], '"test1"')

        # changed settings
        group = ptah.get_settings('group4', self.registry)

        group['node2'] = 'changed'
        data = dict(settings.export())
        self.assertEqual(data['group4.node2'], '"changed"')
Пример #7
0
    def _create_default_group(self):
        node1 = ptah.form.TextField('node1', default='default1')

        node2 = ptah.form.IntegerField('node2', default=10)

        ptah.register_settings('group', node1, node2)
        self.init_ptah(initsettings=True)

        return ptah.get_settings('group', self.registry)
Пример #8
0
    def test_settings_load_defaults_rawdata_with_errors_in_values(self):
        node = ptah.form.FloatField('node1', default=())

        ptah.register_settings('group', node)
        self.init_ptah(initsettings=True)

        self.assertRaises(ptah.config.StopException,
                          get_settings_ob().init, self.config,
                          {'group.node1': 'l,1'})
Пример #9
0
    def test_settings_group_uninitialized(self):
        node = ptah.form.TextField('node', default='test')

        ptah.register_settings(
            'group1',
            node,
            title='Section title',
            description='Section description',
        )
        self.init_ptah()

        group = ptah.get_settings('group1', self.registry)
        self.assertEqual(group.get('node'), 'test')
Пример #10
0
    def test_settings_load_defaults_rawdata_with_errors_in_values(self):
        node = ptah.form.FloatField(
            'node1',
            default = ())

        ptah.register_settings('group', node)
        self.init_ptah(initsettings=True)

        self.assertRaises(
            ptah.config.StopException,
            get_settings_ob().init,
            self.config,
            {'group.node1': 'l,1'})
Пример #11
0
    def test_settings_initialize_load_preparer(self):
        node1 = ptah.form.TextField(
            'node',
            default = 'default1',
            preparer = lambda s: s.lower())

        ptah.register_settings('group', node1)
        self.init_ptah()

        ptah.init_settings(self.config, {'group.node': 'Test'})

        group = ptah.get_settings('group', self.request.registry)
        self.assertEqual(group['node'], 'test')
Пример #12
0
    def _create_default_group(self):
        node1 = ptah.form.TextField(
            'node1',
            default = 'default1')

        node2 = ptah.form.IntegerField(
            'node2',
            default = 10)

        ptah.register_settings('group', node1, node2)
        self.init_ptah(initsettings=True)

        return ptah.get_settings('group', self.registry)
Пример #13
0
    def test_settings_group_uninitialized(self):
        node = ptah.form.TextField(
            'node',
            default = 'test')

        ptah.register_settings(
            'group1', node,
            title = 'Section title',
            description = 'Section description',
            )
        self.init_ptah()

        group = ptah.get_settings('group1', self.registry)
        self.assertEqual(group.get('node'), 'test')
Пример #14
0
    def test_settings_group_validation(self):
        def validator(node, appstruct):
            raise ptah.form.Invalid('Error', node['node'])

        node = ptah.form.TextField('node', default='test')

        ptah.register_settings('group2', node, validator=validator)

        self.init_ptah()

        group = ptah.get_settings('group2', self.registry)

        data, err = group.extract({'group2.node': 'value'})

        self.assertEqual(err.msg, {'group2': text_type(['Error'])})
Пример #15
0
    def test_settings_initialize_load_partly_defaults(self):
        from ptah.settings import init_settings

        node1 = ptah.form.TextField('node1', default='default1')

        node2 = ptah.form.TextField('node2', default=10)

        ptah.register_settings('group', node1, node2)
        self.init_ptah()

        init_settings(self.config, {'group.node1': 'setting from ini'})

        group = ptah.get_settings('group', self.request.registry)
        self.assertEqual(group['node1'], 'setting from ini')
        self.assertEqual(group['node2'], 10)
Пример #16
0
    def _make_grp(self):
        node1 = ptah.form.TextField('node1', default='test')

        node2 = ptah.form.IntegerField('node2', default=50)

        ptah.register_settings(
            'group',
            node1,
            node2,
            title='Section title',
            description='Section description',
        )
        self.init_ptah()

        return ptah.get_settings('group', self.registry)
Пример #17
0
    def test_settings_uri_resolver(self):
        node = ptah.form.TextField('node', default='test')

        ptah.register_settings(
            'group',
            node,
            title='Section title',
            description='Section description',
        )
        self.init_ptah()

        grp1 = ptah.get_settings('group', self.registry)
        self.assertEqual(grp1.__uri__, 'settings:group')

        grp2 = ptah.resolve('settings:group')
        self.assertIs(grp1, grp2)
Пример #18
0
    def test_settings_get_settings_pyramid(self):
        node = ptah.form.TextField('node', default='test')

        ptah.register_settings(
            'group1',
            node,
            title='Section title',
            description='Section description',
        )

        self.init_ptah()

        grp = self.config.ptah_get_settings('group1')
        self.assertIsNotNone(grp)
        self.assertEqual(grp.__name__, 'group1')
        self.assertIn(node, grp.__fields__.values())
Пример #19
0
    def test_settings_uri_resolver(self):
        node = ptah.form.TextField(
            'node',
            default = 'test')

        ptah.register_settings(
            'group', node,
            title = 'Section title',
            description = 'Section description',
            )
        self.init_ptah()

        grp1 = ptah.get_settings('group', self.registry)
        self.assertEqual(grp1.__uri__, 'settings:group')

        grp2 = ptah.resolve('settings:group')
        self.assertIs(grp1, grp2)
Пример #20
0
    def test_settings_group_basics(self):
        node = ptah.form.TextField('node', default='test')

        ptah.register_settings(
            'group1',
            node,
            title='Section title',
            description='Section description',
        )
        self.init_ptah()

        group = ptah.get_settings('group1', self.registry)
        self.assertEqual(group.keys(), ['node'])
        self.assertEqual(group.items(), [('node', 'test')])

        group.update({'node': '12345'})
        self.assertEqual(group.get('node'), '12345')
Пример #21
0
    def test_settings_get_settings_pyramid(self):
        node = ptah.form.TextField(
            'node',
            default = 'test')

        ptah.register_settings(
            'group1', node,
            title = 'Section title',
            description = 'Section description',
            )

        self.init_ptah()

        grp = self.config.ptah_get_settings('group1')
        self.assertIsNotNone(grp)
        self.assertEqual(grp.__name__, 'group1')
        self.assertIn(node, grp.__fields__.values())
Пример #22
0
    def test_settings_initialize_load_defaults(self):
        node1 = ptah.form.TextField(
            'node1',
            default = 'default1')

        node2 = ptah.form.TextField(
            'node2',
            default = 10)

        ptah.register_settings('group', node1, node2)
        self.init_ptah()

        ptah.init_settings(self.config, None)

        group = ptah.get_settings('group', self.request.registry)
        self.assertEqual(group['node1'], 'default1')
        self.assertEqual(group['node2'], 10)
Пример #23
0
    def _make_grp(self):
        node1 = ptah.form.TextField(
            'node1',
            default = 'test')

        node2 = ptah.form.IntegerField(
            'node2',
            default = 50)

        ptah.register_settings(
            'group', node1, node2,
            title = 'Section title',
            description = 'Section description',
            )
        self.init_ptah()

        return ptah.get_settings('group', self.registry)
Пример #24
0
    def test_settings_initialize_load_partly_defaults(self):
        node1 = ptah.form.TextField(
            'node1',
            default = 'default1')

        node2 = ptah.form.TextField(
            'node2',
            default = 10)

        ptah.register_settings('group', node1, node2)
        self.init_ptah()

        ptah.init_settings(self.config, {'group.node1': 'setting from ini'})

        group = ptah.get_settings('group', self.request.registry)
        self.assertEqual(group['node1'], 'setting from ini')
        self.assertEqual(group['node2'], 10)
Пример #25
0
    def test_settings_group_validation(self):
        def validator(node, appstruct):
            raise ptah.form.Invalid('Error', node['node'])

        node = ptah.form.TextField(
            'node',
            default = 'test')

        ptah.register_settings(
            'group2', node, validator=validator)

        self.init_ptah()

        group = ptah.get_settings('group2', self.registry)

        data, err = group.extract({'group2.node': 'value'})

        self.assertEqual(err.msg, {'group2': text_type(['Error'])})
Пример #26
0
    def test_settings_group_basics(self):
        node = ptah.form.TextField(
            'node',
            default = 'test')

        ptah.register_settings(
            'group1', node,
            title = 'Section title',
            description = 'Section description',
            )
        self.init_ptah()

        group = ptah.get_settings('group1', self.registry)
        self.assertEqual(group.keys(), ['node'])
        self.assertEqual(group.items(), [('node', 'test')])

        group.update({'node': '12345'})
        self.assertEqual(group.get('node'), '12345')
Пример #27
0
    def test_settings_group_extract(self):
        node1 = ptah.form.TextField('node1', default='test1')

        node2 = ptah.form.TextField('node2', default='test2')

        ptah.register_settings('group', node1, node2)
        self.init_ptah()

        group = ptah.get_settings('group', self.registry)

        data, errors = group.extract({'group.node1': 'test-extract'})

        self.assertEqual(data['node1'], 'test-extract')
        self.assertEqual(data['node2'], 'test2')

        group['node2'] = 'value'
        data, errors = group.extract({'group.node1': 'test-extract'})
        self.assertEqual(data['node2'], 'value')
Пример #28
0
    def test_settings_initialize_load_defaults(self):
        from ptah.settings import init_settings

        node1 = ptah.form.TextField(
            'node1',
            default = 'default1')

        node2 = ptah.form.TextField(
            'node2',
            default = 10)

        ptah.register_settings('group', node1, node2)
        self.init_ptah()

        init_settings(self.config, None)

        group = ptah.get_settings('group', self.request.registry)
        self.assertEqual(group['node1'], 'default1')
        self.assertEqual(group['node2'], 10)
Пример #29
0
    def test_settings_group_extract(self):
        node1 = ptah.form.TextField(
            'node1', default = 'test1')

        node2 = ptah.form.TextField(
            'node2', default = 'test2')

        ptah.register_settings('group', node1, node2)
        self.init_ptah()

        group = ptah.get_settings('group', self.registry)

        data, errors = group.extract({'group.node1': 'test-extract'})

        self.assertEqual(data['node1'], 'test-extract')
        self.assertEqual(data['node2'], 'test2')

        group['node2'] = 'value'
        data, errors = group.extract({'group.node1': 'test-extract'})
        self.assertEqual(data['node2'], 'value')
Пример #30
0
    def test_settings_register_simple(self):
        node = ptah.form.TextField('node', default='test')

        ptah.register_settings(
            'group1',
            node,
            title='Section title',
            description='Section description',
        )

        self.init_ptah()

        group = ptah.get_settings('group1', self.registry)

        self.assertEqual(len(group.__fields__), 1)
        self.assertIn(node, group.__fields__.values())
        self.assertEqual(group['node'], 'test')
        self.assertRaises(KeyError, group.__getitem__, 'unknown')

        group.node = 'test2'
        self.assertFalse(group.node == group['node'])
Пример #31
0
    def test_settings_initialize_load_settings_include(self):
        from ptah.settings import init_settings

        path = os.path.join(self.dir, 'settings.cfg')
        f = open(path, 'wb')
        f.write(bytes_('[DEFAULT]\ngroup.node1 = value\n\n', 'ascii'))
        f.close()

        node1 = ptah.form.TextField('node1', default='default1')

        node2 = ptah.form.IntegerField('node2', default=10)

        ptah.register_settings('group', node1, node2)
        self.init_ptah()

        init_settings(self.config, {'include': path})

        group = ptah.get_settings('group', self.request.registry)

        self.assertEqual(group['node1'], 'value')
        self.assertEqual(group['node2'], 10)
Пример #32
0
    def test_traverse_ttw(self):
        from ptah.manage.settings import SettingsModule, SettingsWrapper

        ptah.register_settings('test',
                               ptah.form.TextField('node1', default='test1'),
                               ptah.form.TextField('node2',
                                                   default='test2',
                                                   tint=True),
                               title='Test settings')

        self.init_ptah()

        grp = ptah.get_settings('test', self.registry)
        mod = SettingsModule(None, self.request)

        self.assertRaises(KeyError, mod.__getitem__, 'test')

        grp.__ttw__ = True

        tgrp = mod['test']
        self.assertIs(tgrp.group, grp)
        self.assertIsInstance(tgrp, SettingsWrapper)
Пример #33
0
    def test_edit_form(self):
        from ptah.manage.settings import SettingsModule, EditForm

        ptah.register_settings('test',
                               ptah.form.TextField('node1',
                                                   default='test1',
                                                   required=False),
                               ptah.form.TextField('node2',
                                                   default='test2',
                                                   required=False),
                               title='Test settings',
                               ttw=True,
                               ttw_skip_fields=('node2', ))

        self.init_ptah()

        mod = SettingsModule(None, self.request)
        grp = mod['test']
        settings = grp.group

        form = EditForm(grp, self.request)

        self.assertEqual(form.label, settings.__title__)
        self.assertEqual(form.description, settings.__description__)
        self.assertIs(form.form_content(), settings)

        fields = form.fields
        self.assertIn('node1', fields)
        self.assertNotIn('node2', fields)

        res = form.back_handler()
        self.assertIsInstance(res, HTTPFound)
        self.assertEqual(res.headers['location'], '..')

        form.update_form()
        form.modify_handler()
        self.assertIn('Settings have been modified.',
                      self.request.render_messages())
Пример #34
0
    def test_traverse_ttw(self):
        from ptah.manage.settings import SettingsModule, SettingsWrapper

        ptah.register_settings(
            'test',
            ptah.form.TextField('node1', default='test1'),
            ptah.form.TextField('node2', default='test2', tint=True),
            title = 'Test settings')

        self.init_ptah()

        grp = ptah.get_settings('test', self.registry)
        mod = SettingsModule(None, self.request)

        self.assertRaises(
            KeyError,
            mod.__getitem__, 'test')

        grp.__ttw__ = True

        tgrp = mod['test']
        self.assertIs(tgrp.group, grp)
        self.assertIsInstance(tgrp, SettingsWrapper)
Пример #35
0
    def test_settings_register_simple(self):
        node = ptah.form.TextField(
            'node',
            default = 'test')

        ptah.register_settings(
            'group1', node,
            title = 'Section title',
            description = 'Section description',
            )

        self.init_ptah()

        group = ptah.get_settings('group1', self.registry)

        self.assertEqual(len(group.__fields__), 1)
        self.assertIn(node, group.__fields__.values())
        self.assertEqual(group['node'], 'test')
        self.assertRaises(
            KeyError,
            group.__getitem__, 'unknown')

        group.node = 'test2'
        self.assertFalse(group.node == group['node'])
Пример #36
0
import ptah

ptah.register_settings(
    'ptah-minicms',

    ptah.form.TextField(
        'band',
        default = 'Primus',
        title = 'Favorite band',
        description = 'This is your favorite band.'),

    ptah.form.TextField(
        'happy',
        default = True,
        title = 'Are you happy?',
        description = 'Does Ptah bring you happiness?'),

    title = 'ptah_minicms settings',
    description = 'Configuration settings for ptah_minicms.'
    )
Пример #37
0
import ptah

ptah.register_settings(
    'herokuapp-settings',

    ptah.form.TextField(
        'band',
        default = 'Primus',
        title = 'Favorite band',
        description = 'This is your favorite band.'),

    ptah.form.TextField(
        'happy',
        default = True,
        title = 'Are you happy?',
        description = 'Does Ptah bring you happiness?'),

    ptah.form.TextAreaField(
        'field',
        default = 'Test text area',
        title = 'Favorite band 3',
        description = 'This is your favorite band.'),

    title = 'herokuapp settings',
    description = 'Configuration settings for herokuapp.'
    )
Пример #38
0
    def test_settings_command(self):
        field = ptah.form.TextField(
            'node',
            default = 'test')

        ptah.register_settings(
            'group1', field,
            title = 'Section1',
            description = 'Description1',
            )

        ptah.register_settings(
            'group2', field,
            title = 'Section2',
            description = 'Description2',
            )

        self.init_ptah()

        group1 = ptah.get_settings('group1', self.registry)
        group2 = ptah.get_settings('group2', self.registry)

        # all
        sys.argv[1:] = ['-a', 'ptah.ini']

        stdout = sys.stdout
        out = NativeIO()
        sys.stdout = out

        settings.main(False)
        sys.stdout = stdout

        val = out.getvalue()
        self.assertIn('Section1', val)
        self.assertIn('Section2', val)
        self.assertIn('group1.node', val)
        self.assertIn('group2.node', val)

        # section
        sys.argv[1:] = ['-l', 'group1', 'ptah.ini']

        stdout = sys.stdout
        out = NativeIO()
        sys.stdout = out

        settings.main(False)
        sys.stdout = stdout

        val = out.getvalue()
        self.assertIn('Section1', val)
        self.assertNotIn('Section2', val)
        self.assertIn('group1.node', val)
        self.assertNotIn('group2.node', val)

        # print
        sys.argv[1:] = ['-p', 'ptah.ini']

        stdout = sys.stdout
        out = NativeIO()
        sys.stdout = out

        settings.main(False)
        sys.stdout = stdout

        val = out.getvalue().strip()
        self.assertIn('group1.node = "test"', val)
        self.assertIn('group2.node = "test"', val)
Пример #39
0
ptah.register_settings(
    CFG_ID_AUTH,
    ptah.form.TextField('github_id',
                        title='Client id',
                        description='Github client id.',
                        default=''),
    ptah.form.TextField('github_secret',
                        title='Secret',
                        description='Github client secret.',
                        default='',
                        tint=True),
    ptah.form.TextField('facebook_id',
                        title='Id',
                        description='Facebook client id.',
                        default=''),
    ptah.form.TextField('facebook_secret',
                        title='Secret',
                        description='Facebook client secret.',
                        default='',
                        tint=True),
    ptah.form.TextField('google_id',
                        title='Id',
                        description='Google client id.',
                        default=''),
    ptah.form.TextField('google_secret',
                        title='Secret',
                        description='Google client secret.',
                        default='',
                        tint=True),
    title='OAuth2 providers',
)
Пример #40
0
ptah.register_settings(
    ptah.CFG_ID_PTAH,

    ptah.form.BoolField(
        'auth',
        title = _('Authentication policy'),
        description = _('Enable authentication policy.'),
        default = False),

    ptah.form.TextField(
        'secret',
        title = _('Authentication policy secret'),
        description = _('The secret (a string) used for auth_tkt '
                        'cookie signing'),
        default = '',
        tint = True),

    ptah.form.TextField(
        'hashalg',
        title = _('Authentication policy hash algorithm'),
        description = _('The hash algorithm used for auth_tkt '
                        'cookie generation'),
        default = 'sha512'),

    ptah.form.TextField(
        'manage',
        title = 'Ptah manage id',
        default = 'ptah-manage'),

    ptah.form.LinesField(
        'managers',
        title = 'Manage login',
        description = 'List of user logins with access rights to '\
                            'ptah management ui.',
        default = ()),

    ptah.form.TextField(
        'manager_role',
        title = 'Manager role',
        description = 'Specific role with access rights to ptah management ui.',
        default = ''),

    ptah.form.LinesField(
        'disable_modules',
        title = 'Hide Modules in Management UI',
        description = 'List of modules names to hide in manage ui',
        default = ()),

    ptah.form.LinesField(
        'enable_modules',
        title = 'Enable Modules in Management UI',
        description = 'List of modules names to enable in manage ui',
        default = ()),

    ptah.form.LinesField(
        'disable_models',
        title = 'Hide Models in Model Management UI',
        description = 'List of models to hide in model manage ui',
        default = ()),

    ptah.form.TextField(
        'email_from_name',
        default = 'Site administrator'),

    ptah.form.TextField(
        'email_from_address',
        validator = ptah.form.Email(),
        required = False,
        default = 'admin@localhost'),

    ptah.form.ChoiceField(
        'pwd_manager',
        title = 'Password manager',
        description = 'Available password managers '\
            '("plain", "ssha", "bcrypt")',
        vocabulary = ptah.form.Vocabulary(
            "plain", "ssha",),
        default = 'plain'),

    ptah.form.IntegerField(
        'pwd_min_length',
        title = 'Length',
        description = 'Password minimium length.',
        default = 5),

    ptah.form.BoolField(
        'pwd_letters_digits',
        title = 'Letters and digits',
        description = 'Use letters and digits in password.',
        default = False),

    ptah.form.BoolField(
        'pwd_letters_mixed_case',
        title = 'Letters mixed case',
        description = 'Use letters in mixed case.',
        default = False),

    ptah.form.LinesField(
        'db_skip_tables',
        title = 'Skip table creation',
        description = 'Do not create listed tables during data population.',
        default = ()),

    ptah.form.LinesField(
        'default_roles',
        title = 'Default roles',
        description = 'List of default assigned roles for all principals.',
        default = ()),

    title = _('Ptah settings'),
)
Пример #41
0
import ptah

ptah.register_settings(
    'ptah-ws',

    ptah.form.TextField(
        'band',
        default = 'Primus',
        title = 'Favorite band',
        description = 'This is your favorite band.'),

    ptah.form.TextField(
        'happy',
        default = True,
        title = 'Are you happy?',
        description = 'Does Ptah bring you happiness?'),

    ptah.form.TextAreaField(
        'field',
        default = 'Test text area',
        title = 'Favorite band 3',
        description = 'This is your favorite band.'),

    title = 'ptah_ws settings',
    description = 'Configuration settings for ptah_ws.'
    )
Пример #42
0
        except:
            self.message(
                "Can't connect to target host. Please try again later.",'warning')
            token.service.remove(tid)
            return

        if data == 'success':
            return HTTPFound(location='http://%s/authToken?token=%s'%(host, tid))

        token.service.remove(tid)
        self.message("Login or password are wrong.")

    @form.button('Cancel')
    def cancelHandler(self):
        site = self.request.matchdict['site']
        return HTTPFound(location='http://%s'%site)


ptah.register_settings(
    'ploud-login',

    form.TextField(
        'backend',
        required = True,
        title = 'Backend server host.',
        default = '',
        ),

    title = 'Ploud login service'
)
Пример #43
0
ptah.register_settings(
    ptah.CFG_ID_PTAH,
    ptah.form.BoolField(
        "auth", title=_("Authentication policy"), description=_("Enable authentication policy."), default=False
    ),
    ptah.form.TextField(
        "secret",
        title=_("Authentication policy secret"),
        description=_("The secret (a string) used for auth_tkt " "cookie signing"),
        default="",
        tint=True,
    ),
    ptah.form.TextField(
        "hashalg",
        title=_("Authentication policy hash algorithm"),
        description=_("The hash algorithm used for auth_tkt " "cookie generation"),
        default="sha512",
    ),
    ptah.form.TextField("manage", title="Ptah manage id", default="ptah-manage"),
    ptah.form.LinesField(
        "managers",
        title="Manage login",
        description="List of user logins with access rights to " "ptah management ui.",
        default=(),
    ),
    ptah.form.TextField(
        "manager_role",
        title="Manager role",
        description="Specific role with access rights to ptah management ui.",
        default="",
    ),
    ptah.form.LinesField(
        "disable_modules",
        title="Hide Modules in Management UI",
        description="List of modules names to hide in manage ui",
        default=(),
    ),
    ptah.form.LinesField(
        "enable_modules",
        title="Enable Modules in Management UI",
        description="List of modules names to enable in manage ui",
        default=(),
    ),
    ptah.form.LinesField(
        "disable_models",
        title="Hide Models in Model Management UI",
        description="List of models to hide in model manage ui",
        default=(),
    ),
    ptah.form.ChoiceField(
        "pwd_manager",
        title="Password manager",
        description="Available password managers " '("plain", "ssha", "bcrypt")',
        vocabulary=ptah.form.Vocabulary("plain", "ssha"),
        default="plain",
    ),
    ptah.form.IntegerField("pwd_min_length", title="Length", description="Password minimium length.", default=5),
    ptah.form.BoolField(
        "pwd_letters_digits",
        title="Letters and digits",
        description="Use letters and digits in password.",
        default=False,
    ),
    ptah.form.BoolField(
        "pwd_letters_mixed_case", title="Letters mixed case", description="Use letters in mixed case.", default=False
    ),
    ptah.form.LinesField(
        "db_skip_tables",
        title="Skip table creation",
        description="Do not create listed tables during data population.",
        default=(),
    ),
    ptah.form.LinesField(
        "default_roles",
        title="Default roles",
        description="List of default assigned roles for all principals.",
        default=(),
    ),
    title=_("Ptah settings"),
)
Пример #44
0
    def test_settings_command(self):
        field = ptah.form.TextField('node', default='test')

        ptah.register_settings(
            'group1',
            field,
            title='Section1',
            description='Description1',
        )

        ptah.register_settings(
            'group2',
            field,
            title='Section2',
            description='Description2',
        )

        self.init_ptah()

        group1 = ptah.get_settings('group1', self.registry)
        group2 = ptah.get_settings('group2', self.registry)

        # all
        sys.argv[1:] = ['-a']

        stdout = sys.stdout
        out = NativeIO()
        sys.stdout = out

        settings.main(False)
        sys.stdout = stdout

        val = out.getvalue()
        self.assertIn('Section1', val)
        self.assertIn('Section2', val)
        self.assertIn('group1.node', val)
        self.assertIn('group2.node', val)

        # section
        sys.argv[1:] = ['-l', 'group1']

        stdout = sys.stdout
        out = NativeIO()
        sys.stdout = out

        settings.main(False)
        sys.stdout = stdout

        val = out.getvalue()
        self.assertIn('Section1', val)
        self.assertNotIn('Section2', val)
        self.assertIn('group1.node', val)
        self.assertNotIn('group2.node', val)

        # print
        sys.argv[1:] = ['-p']

        stdout = sys.stdout
        out = NativeIO()
        sys.stdout = out

        settings.main(False)
        sys.stdout = stdout

        val = out.getvalue().strip()
        self.assertIn('group1.node = "test"', val)
        self.assertIn('group2.node = "test"', val)
Пример #45
0
ptah.register_settings(
    ptah.CFG_ID_PTAH,

    ptah.form.BoolField(
        'auth',
        title = _('Authentication policy'),
        description = _('Enable authentication policy.'),
        default = False),

    ptah.form.TextField(
        'secret',
        title = _('Authentication policy secret'),
        description = _('The secret (a string) used for auth_tkt '
                        'cookie signing'),
        default = ''),

    ptah.form.IntegerField(
        'settings_dbpoll',
        title = _('Settings db poll interval (seconds).'),
        description = _('If you allow to change setting ttw. '
                        '"0" means do not poll'),
        default = 0),

    ptah.form.TextField(
        'manage',
        title = 'Ptah manage id',
        default = 'ptah-manage'),

    ptah.form.LinesField(
        'managers',
        title = 'Manage login',
        description = 'List of user logins with access rights to '\
                            'ptah management ui.',
        default = ()),

    ptah.form.TextField(
        'manager_role',
        title = 'Manager role',
        description = 'Specific role with access rights to ptah management ui.',
        default = ''),

    ptah.form.LinesField(
        'disable_modules',
        title = 'Hide Modules in Management UI',
        description = 'List of modules names to hide in manage ui',
        default = ()),

    ptah.form.LinesField(
        'disable_models',
        title = 'Hide Models in Model Management UI',
        description = 'List of models to hide in model manage ui',
        default = ()),

    ptah.form.TextField(
        'email_from_name',
        default = 'Site administrator'),

    ptah.form.TextField(
        'email_from_address',
        validator = ptah.form.Email(),
        required = False,
        default = 'admin@localhost'),

    title = _('Ptah settings'),
)
Пример #46
0
ptah.register_settings(
    'ploud',

    ptah.form.TextField(
        'domain',
        title = 'Ploud Domain',
        description = 'Ploud domain name for hosting.',
        default = ''),

    ptah.form.TextField(
        'dsn',
        title = 'Ploud DSN',
        description = 'Main ploud database dsn.',
        default = ''),

    ptah.form.TextField(
        'clientsdsn',
        title = 'Ploud Client DSN',
        description = 'Ploud clients zodb database dsn.',
        default = ''),

    ptah.form.BoolField(
        'registration',
        title = 'Registration',
        description = 'Enable ploud registrations.',
        default = True),

    ptah.form.TextField(
        'loginservice',
        title = 'Login service url',
        default = 'http://localhost:8085'),

    ptah.form.BoolField(
        'maintenance',
        title = 'Maintenance',
        description = 'Enable maintenance worker.',
        default = False),

    title = 'Ploud settings',
)
Пример #47
0
ptah.register_settings(
    'frontend',

    ptah.form.TextField(
        'host',
        title = 'Host',
        description = 'Ploud frontend host.',
        default = 'http://ploud.com'),

    ptah.form.TextField(
        'email_from',
        title = 'From email',
        default = 'Ploud.com <*****@*****.**>'),

    ptah.form.LinesField(
        'reserved_sitenames',
        title = 'Reserved site names',
        default = ('demo', 'desktop', 'enfold','static',
                   'ww','www', 'wwww', 'support', 'login', 'rest',)),

    ptah.form.BoolField(
        'validation',
        title = 'Validation',
        description = 'Ploud user validation.',
        default = True),

    ptah.form.BoolField(
        'devmode',
        title = 'Development mode',
        default = False),

    title = 'Ploud frontend configuration',
    ttw = True,
)
Пример #48
0
ptah.register_settings(
    CFG_ID_CROWD,
    ptah.form.TextField(
        'type',
        title='User content type',
        description='User content type for crowd user provider.',
        default='ptah-crowd-user'),
    ptah.form.BoolField('join',
                        title='Site registration',
                        description='Enable/Disable site registration.',
                        default=True),
    ptah.form.TextField('join-url',
                        title='Join url',
                        description='Custom join form url.',
                        default='/join.html'),
    ptah.form.TextField('login-url',
                        title='Login url',
                        description='Custom login form url.',
                        default='/login.html'),
    ptah.form.TextField('success-url',
                        title='Successfull login url',
                        description='Successfull logig redirect url.',
                        default=''),
    ptah.form.BoolField(
        'password',
        title='User password',
        description='Allow user to select password during registration.',
        default=False),
    ptah.form.BoolField('validation',
                        title='Email validation',
                        description='Validate user account by email.',
                        default=True),
    ptah.form.BoolField('allow-unvalidated',
                        title='Allow unvalidated',
                        description='Allow login for unvalidated users.',
                        default=True),
    ptah.form.TextField('admin-name',
                        title='Admin name',
                        description='Default admin name.',
                        default='Ptah admin'),
    ptah.form.TextField('admin-login',
                        title='Admin login',
                        description='Default admin login.',
                        default=''),
    ptah.form.TextField('admin-password',
                        title='Admin password',
                        description='Default admin password.',
                        default='12345',
                        tint=True),
    ptah.form.TextField('admin-role',
                        title='Admin role',
                        description='Default admin role.',
                        default=''),
    title='Ptah crowd settings',
)
Пример #49
0
ptah.register_settings(
    ptah.CFG_ID_PTAH,

    ptah.form.BoolField(
        'auth',
        title = _('Authentication policy'),
        description = _('Enable authentication policy.'),
        default = False),

    ptah.form.TextField(
        'secret',
        title = _('Authentication policy secret'),
        description = _('The secret (a string) used for auth_tkt '
                        'cookie signing'),
        default = '',
        tint = True),

    ptah.form.TextField(
        'manage',
        title = 'Ptah manage id',
        default = 'ptah-manage'),

    ptah.form.LinesField(
        'managers',
        title = 'Manage login',
        description = 'List of user logins with access rights to '\
                            'ptah management ui.',
        default = ()),

    ptah.form.TextField(
        'manager_role',
        title = 'Manager role',
        description = 'Specific role with access rights to ptah management ui.',
        default = ''),

    ptah.form.LinesField(
        'disable_modules',
        title = 'Hide Modules in Management UI',
        description = 'List of modules names to hide in manage ui',
        default = ()),

    ptah.form.LinesField(
        'enable_modules',
        title = 'Enable Modules in Management UI',
        description = 'List of modules names to enable in manage ui',
        default = ()),

    ptah.form.LinesField(
        'disable_models',
        title = 'Hide Models in Model Management UI',
        description = 'List of models to hide in model manage ui',
        default = ()),

    ptah.form.TextField(
        'email_from_name',
        default = 'Site administrator'),

    ptah.form.TextField(
        'email_from_address',
        validator = ptah.form.Email(),
        required = False,
        default = 'admin@localhost'),

    ptah.form.ChoiceField(
        'pwd_manager',
        title = 'Password manager',
        description = 'Available password managers '\
            '("plain", "ssha", "bcrypt")',
        vocabulary = ptah.form.SimpleVocabulary.from_values(
            "plain", "ssha",),
        default = 'plain'),

    ptah.form.IntegerField(
        'pwd_min_length',
        title = 'Length',
        description = 'Password minimium length.',
        default = 5),

    ptah.form.BoolField(
        'pwd_letters_digits',
        title = 'Letters and digits',
        description = 'Use letters and digits in password.',
        default = False),

    ptah.form.BoolField(
        'pwd_letters_mixed_case',
        title = 'Letters mixed case',
        description = 'Use letters in mixed case.',
        default = False),

    ptah.form.LinesField(
        'db_skip_tables',
        title = 'Skip table creation',
        description = 'Do not create listed tables during data population.',
        default = ()),

    ptah.form.LinesField(
        'default_roles',
        title = 'Default roles',
        description = 'List of default assigned roles for all principals.',
        default = ()),

    ptah.form.BoolField(
        'amd-spec-enabled',
        title = 'AMD spec',
        description = 'Status of amd spec support (true/false).',
        default = False),

    ptah.form.LinesField(
        'amd-specs',
        title = 'Amd spec files',
        default = ()),

    ptah.form.TextField(
        'amd-spec-dir',
        title = 'Directory for compiled files',
        default = ''),

    ptah.form.TextField(
        'nodejs-path',
        title = 'NodeJS path',
        description = 'Path to nodejs executable.',
        default = ''),

    title = _('Ptah settings'),
)
Пример #50
0
ptah.register_settings(
    CFG_ID_CROWD,

    ptah.form.TextField(
        'type',
        title = 'User content type',
        description = 'User content type for crowd user provider.',
        default = 'ptah-crowd-user'),

    ptah.form.BoolField(
        'join',
        title = 'Site registration',
        description = 'Enable/Disable site registration.',
        default = True),

    ptah.form.TextField(
        'join-url',
        title = 'Join url',
        description = 'Custom join form url.',
        default = '/join.html'),

    ptah.form.TextField(
        'login-url',
        title = 'Login url',
        description = 'Custom login form url.',
        default = '/login.html'),

    ptah.form.TextField(
        'success-url',
        title = 'Successfull login url',
        description = 'Successfull logig redirect url.',
        default = ''),

    ptah.form.BoolField(
        'password',
        title = 'User password',
        description = 'Allow user to select password during registration.',
        default = False),

    ptah.form.BoolField(
        'validation',
        title = 'Email validation',
        description = 'Validate user account by email.',
        default = True),

    ptah.form.BoolField(
        'allow-unvalidated',
        title = 'Allow unvalidated',
        description = 'Allow login for unvalidated users.',
        default = True),

    ptah.form.TextField(
        'admin-name',
        title = 'Admin name',
        description = 'Default admin name.',
        default = 'Ptah admin'),

    ptah.form.TextField(
        'admin-login',
        title = 'Admin login',
        description = 'Default admin login.',
        default = ''),

    ptah.form.TextField(
        'admin-email',
        title = 'Admin email',
        description = 'Default admin email.',
        default = 'admin@localhost'),

    ptah.form.TextField(
        'admin-password',
        title = 'Admin password',
        description = 'Default admin password.',
        default = '12345',
        tint = True),

    ptah.form.TextField(
        'admin-role',
        title = 'Admin role',
        description = 'Default admin role.',
        default = ''),

    title = 'Ptah crowd settings',
    )
Пример #51
0
ptah.register_settings(
    ptah.CFG_ID_PTAH,

    ptah.form.BoolField(
        'auth',
        title = _('Authentication policy'),
        description = _('Enable authentication policy.'),
        default = False),

    ptah.form.TextField(
        'secret',
        title = _('Authentication policy secret'),
        description = _('The secret (a string) used for auth_tkt '
                        'cookie signing'),
        default = '',
        tint = True),

    ptah.form.TextField(
        'hashalg',
        title = _('Authentication policy hash algorithm'),
        description = _('The hash algorithm used for auth_tkt '
                        'cookie generation'),
        default = 'sha512'),

    ptah.form.TextField(
        'manage',
        title = 'Ptah manage id',
        default = 'ptah-manage'),

    ptah.form.LinesField(
        'managers',
        title = 'Manage login',
        description = 'List of user logins with access rights to '\
                            'ptah management ui.',
        default = ()),

    ptah.form.TextField(
        'manager_role',
        title = 'Manager role',
        description = 'Specific role with access rights to ptah management ui.',
        default = ''),

    ptah.form.LinesField(
        'disable_modules',
        title = 'Hide Modules in Management UI',
        description = 'List of modules names to hide in manage ui',
        default = ()),

    ptah.form.LinesField(
        'enable_modules',
        title = 'Enable Modules in Management UI',
        description = 'List of modules names to enable in manage ui',
        default = ()),

    ptah.form.LinesField(
        'disable_models',
        title = 'Hide Models in Model Management UI',
        description = 'List of models to hide in model manage ui',
        default = ()),

    ptah.form.TextField(
        'email_from_name',
        default = 'Site administrator'),

    ptah.form.TextField(
        'email_from_address',
        validator = ptah.form.Email(),
        required = False,
        default = 'admin@localhost'),

    ptah.form.ChoiceField(
        'pwd_manager',
        title = 'Password manager',
        description = 'Available password managers '\
            '("plain", "ssha", "bcrypt")',
        vocabulary = ptah.form.Vocabulary(
            "plain", "ssha",),
        default = 'plain'),

    ptah.form.IntegerField(
        'pwd_min_length',
        title = 'Length',
        description = 'Password minimium length.',
        default = 5),

    ptah.form.BoolField(
        'pwd_letters_digits',
        title = 'Letters and digits',
        description = 'Use letters and digits in password.',
        default = False),

    ptah.form.BoolField(
        'pwd_letters_mixed_case',
        title = 'Letters mixed case',
        description = 'Use letters in mixed case.',
        default = False),

    ptah.form.LinesField(
        'db_skip_tables',
        title = 'Skip table creation',
        description = 'Do not create listed tables during data population.',
        default = ()),

    ptah.form.LinesField(
        'default_roles',
        title = 'Default roles',
        description = 'List of default assigned roles for all principals.',
        default = ()),

    title = _('Ptah settings'),
)
Пример #52
0
ptah.register_settings(
    CFG_ID_AUTH,

    ptah.form.TextField(
        'github_id',
        title = 'Client id',
        description = 'Github client id.',
        default = ''),

    ptah.form.TextField(
        'github_secret',
        title = 'Secret',
        description = 'Github client secret.',
        default = '',
        tint = True),

    ptah.form.TextField(
        'facebook_id',
        title = 'Id',
        description = 'Facebook client id.',
        default = ''),

    ptah.form.TextField(
        'facebook_secret',
        title = 'Secret',
        description = 'Facebook client secret.',
        default = '',
        tint = True),

    ptah.form.TextField(
        'google_id',
        title = 'Id',
        description = 'Google client id.',
        default = ''),

    ptah.form.TextField(
        'google_secret',
        title = 'Secret',
        description = 'Google client secret.',
        default = '',
        tint = True),

    title = 'OAuth2 providers',
)