コード例 #1
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def remove_roles_validation(process, context):
    site = get_site_folder(True)
    return ('editable' in context.state and \
            has_role(role=('Owner', context))) or \
           is_site_moderator() or\
           has_any_roles(roles=(('SiteAdmin', site),
                                'Admin'))
コード例 #2
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
    def start(self, context, request, appstruct, **kw):
        site = get_site_folder(True, request)
        user = get_current(request)
        is_manager = has_any_roles(
            user=user,
            roles=('Admin', ('SiteAdmin', site))) or\
            is_site_moderator(request)
        if is_manager or all(has_role(user=user, role=('Owner', v))
                             for v in appstruct['targets']
                             if 'published' not in v.state):
            root = getSite()
            source = appstruct['source']
            targets = appstruct['targets']
            for artist in targets:
                replaced = artist.replace_by(source)
                if replaced:
                    request.registry.notify(ObjectReplaced(
                        old_object=artist,
                        new_object=source
                    ))
                    root.delfromproperty('artists', artist)
        else:
            return {'error': True}

        return {}
コード例 #3
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def remove_roles_validation(process, context):
    site = get_site_folder(True)
    return ('editable' in context.state and \
            has_role(role=('Owner', context))) or \
           has_any_roles(roles=(('SiteAdmin', site),
                                'Admin')) or\
           is_site_moderator()
コード例 #4
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def edit_state_validation(process, context):
    if 'draft' in context.state:
        return True

    site = get_site_folder(True)
    return has_role(role=('SiteAdmin', site)) or\
           is_site_moderator()
コード例 #5
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def edit_state_validation(process, context):
    if 'editable' in context.state:
        return True

    site = get_site_folder(True)
    return has_role(role=('SiteAdmin', site)) or\
           is_site_moderator()
コード例 #6
0
    def update(self):
        result = {}
        site = get_site_folder(True, self.request)
        user = get_current(self.request)
        is_manager = has_any_roles(
            user=user,
            roles=('Admin', ('SiteAdmin', site))) or\
            is_site_moderator(self.request)
        duplicates = find_duplicates_artist(self.context, self.duplicates_state)
        diff_bodies = {}
        context_view = self.content(
            args={'object': self.context},
            template=self.context.templates.get('diff', None))['body']

        for duplicate in duplicates:
            duplicate_view = self.content(
                args={'object': duplicate},
                template=duplicate.templates.get('diff', None))['body']
            soupt, textdiff = html_diff_wrapper.render_html_diff(
                context_view, duplicate_view)
            diff_bodies[duplicate] = (textdiff, get_oid(duplicate))

        values = {'context': self.context,
                  'oid': get_oid(self.context),
                  'context_view': context_view,
                  'contents': diff_bodies,
                  'row_len': math.ceil(len(diff_bodies)/2),
                  'is_manager': is_manager,
                  'view': self}
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        result['coordinates'] = {self.coordinates: [item]}
        return result
コード例 #7
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
    def start(self, context, request, appstruct, **kw):
        site = get_site_folder(True, request)
        user = get_current(request)
        is_manager = has_any_roles(
            user=user,
            roles=('Admin', ('SiteAdmin', site))) or\
            is_site_moderator(request)
        if is_manager or all(
                has_role(user=user, role=('Owner', v))
                for v in appstruct['targets'] if 'published' not in v.state):
            root = getSite()
            source = appstruct['source']
            targets = appstruct['targets']
            for venue in targets:
                replaced = venue.replace_by(source)
                if replaced:
                    request.registry.notify(
                        ObjectReplaced(old_object=venue, new_object=source))
                    root.delfromproperty('venues', venue)
        else:
            return {'error': True}

        return {}
コード例 #8
0
    def update(self):
        result = {}
        site = get_site_folder(True, self.request)
        user = get_current(self.request)
        is_manager = has_any_roles(
            user=user,
            roles=('Admin', ('SiteAdmin', site))) or\
            is_site_moderator(self.request)
        duplicates = find_duplicates_artist(self.context,
                                            self.duplicates_state)
        diff_bodies = {}
        context_view = self.content(args={'object': self.context},
                                    template=self.context.templates.get(
                                        'diff', None))['body']

        for duplicate in duplicates:
            duplicate_view = self.content(args={'object': duplicate},
                                          template=duplicate.templates.get(
                                              'diff', None))['body']
            soupt, textdiff = html_diff_wrapper.render_html_diff(
                context_view, duplicate_view)
            diff_bodies[duplicate] = (textdiff, get_oid(duplicate))

        values = {
            'context': self.context,
            'oid': get_oid(self.context),
            'context_view': context_view,
            'contents': diff_bodies,
            'row_len': math.ceil(len(diff_bodies) / 2),
            'is_manager': is_manager,
            'view': self
        }
        body = self.content(args=values, template=self.template)['body']
        item = self.adapt_item(body, self.viewid)
        result['coordinates'] = {self.coordinates: [item]}
        return result
コード例 #9
0
def publish_roles_validation(process, context):
    site = get_site_folder(True)
    return is_site_moderator()
コード例 #10
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def publish_roles_validation(process, context):
    site = get_site_folder(True)
    return has_role(role=('Owner', context)) or\
           is_site_moderator()
コード例 #11
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def archive_roles_validation(process, context):
    site = get_site_folder(True)
    return has_any_roles(roles=('Admin', ('SiteAdmin', site))) or\
           is_site_moderator()
コード例 #12
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def archive_roles_validation(process, context):
    return is_site_moderator()
コード例 #13
0
def admin_roles_validation(process, context):
    site = get_site_folder(True)
    return has_any_roles(roles=(('Journalist', site),
                                ('SiteAdmin', site),
                                'Admin')) or\
           is_site_moderator()
コード例 #14
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def archive_roles_validation(process, context):
    site = get_site_folder(True)
    return is_site_moderator() or\
           has_role(role=('SiteAdmin', site))
コード例 #15
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def admin_roles_validation(process, context):
    site = get_site_folder(True)
    return has_any_roles(roles=(('Journalist', site),
                                ('SiteAdmin', site),
                                'Admin')) or\
           is_site_moderator()
コード例 #16
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def remove_roles_validation(process, context):
    site = get_site_folder(True)
    return is_site_moderator() or\
           has_any_roles(roles=(('SiteAdmin', site), 'Admin'))
コード例 #17
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def archive_roles_validation(process, context):
    site = get_site_folder(True)
    return has_any_roles(roles=('Admin', ('SiteAdmin', site)))or\
           is_site_moderator()
コード例 #18
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def remove_roles_validation(process, context):
    site = get_site_folder(True)
    return is_site_moderator() or\
           has_any_roles(roles=(('SiteAdmin', site), 'Admin'))
コード例 #19
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def archive_roles_validation(process, context):
    return is_site_moderator()
コード例 #20
0
ファイル: behaviors.py プロジェクト: ecreall/lagendacommun
def publish_roles_validation(process, context):
    site = get_site_folder(True)
    return has_role(role=('Owner', context)) or\
           is_site_moderator()