Beispiel #1
0
def register_type_impl(
    config, cls, tinfo, name, fieldset=None, fieldNames=None, **kw):

    # generate schema
    fieldset = kw.get('fieldset')
    if fieldset is None:
        kw['fieldset'] = ptah.generate_fieldset(
            cls, fieldNames=fieldNames, namesFilter=names_filter)
        log.info("Generating fieldset for %s content type.", cls)

    if 'global_allow' not in kw and not issubclass(cls, Content):
        kw['global_allow'] = False

    tinfo.__dict__.update(kw)

    tinfo.cls = cls

    config.get_cfg_storage(TYPES_DIR_ID)[tinfo.__uri__] = tinfo

    # sql query for content resolver
    cls.__uri_sql_get__ = ptah.QueryFreezer(
        lambda: ptah.get_session().query(cls) \
            .filter(cls.__uri__ == sqla.sql.bindparam('uri')))

    # build cms actions
    build_class_actions(cls)
Beispiel #2
0
def register_type_impl(config,
                       cls,
                       tinfo,
                       name,
                       fieldset=None,
                       fieldNames=None,
                       **kw):

    # generate schema
    fieldset = kw.get('fieldset')
    if fieldset is None:
        kw['fieldset'] = ptah.generate_fieldset(cls,
                                                fieldNames=fieldNames,
                                                namesFilter=names_filter)
        log.info("Generating fieldset for %s content type.", cls)

    if 'global_allow' not in kw and not issubclass(cls, Content):
        kw['global_allow'] = False

    tinfo.__dict__.update(kw)

    tinfo.cls = cls

    config.get_cfg_storage(TYPES_DIR_ID)[tinfo.__uri__] = tinfo

    # sql query for content resolver
    cls.__uri_sql_get__ = ptah.QueryFreezer(
        lambda: ptah.get_session().query(cls) \
            .filter(cls.__uri__ == sqla.sql.bindparam('uri')))

    # build cms actions
    build_class_actions(cls)
Beispiel #3
0
    def test_cms_action_inherit(self):
        import ptahcms
        from ptahcms.security import build_class_actions

        class Test(object):
            @ptahcms.action(permission='perm')
            def update(self, **data): # pragma: no cover
                pass

        class Test2(Test):
            pass

        build_class_actions(Test2)

        actions = Test2.__ptahcms_actions__

        self.assertEqual(actions['update'], ('update', 'perm'))
        self.assertIsNot(actions, Test.__ptahcms_actions__)
Beispiel #4
0
    def test_cms_action_inherit(self):
        import ptahcms
        from ptahcms.security import build_class_actions

        class Test(object):
            @ptahcms.action(permission='perm')
            def update(self, **data):  # pragma: no cover
                pass

        class Test2(Test):
            pass

        build_class_actions(Test2)

        actions = Test2.__ptahcms_actions__

        self.assertEqual(actions['update'], ('update', 'perm'))
        self.assertIsNot(actions, Test.__ptahcms_actions__)
Beispiel #5
0
    def test_cms_action_inherit2(self):
        import ptahcms
        from ptahcms.security import build_class_actions

        class Test(object):
            @ptahcms.action
            def update(self, **data): # pragma: no cover
                pass

        class Test2(Test):
            @ptahcms.action
            def create(self, **data): # pragma: no cover
                pass

        build_class_actions(Test2)

        actions = Test2.__ptahcms_actions__

        self.assertEqual(len(actions), 2)
        self.assertIn('update', actions)
        self.assertIn('create', actions)
Beispiel #6
0
    def test_cms_action_inherit2(self):
        import ptahcms
        from ptahcms.security import build_class_actions

        class Test(object):
            @ptahcms.action
            def update(self, **data):  # pragma: no cover
                pass

        class Test2(Test):
            @ptahcms.action
            def create(self, **data):  # pragma: no cover
                pass

        build_class_actions(Test2)

        actions = Test2.__ptahcms_actions__

        self.assertEqual(len(actions), 2)
        self.assertIn('update', actions)
        self.assertIn('create', actions)