Skip to content

Commit 941d8c0

Browse files
committed
Added sessions action 'parapheo' in portal_tab
1 parent c3cf182 commit 941d8c0

File tree

6 files changed

+23
-49
lines changed

6 files changed

+23
-49
lines changed

src/imio/esign/browser/configure.zcml

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -23,8 +23,8 @@
2323
/>
2424

2525
<browser:page
26-
name="esign-sessions-listing"
27-
for="imio.esign.interfaces.IImioSessionsManagementContext"
26+
name="parapheo"
27+
for="Products.CMFPlone.interfaces.IPloneSiteRoot"
2828
class=".views.SessionsListingView"
2929
permission="zope2.View"
3030
template="templates/sessions.pt"
@@ -34,7 +34,7 @@
3434
<!-- @@esign-session-files on sessions folder -->
3535
<browser:page
3636
name="esign-session-files"
37-
for="imio.esign.interfaces.IImioSessionsManagementContext"
37+
for="Products.CMFPlone.interfaces.IPloneSiteRoot"
3838
class=".views.SessionFilesView"
3939
permission="zope2.View"
4040
template="templates/session_files.pt"
@@ -53,15 +53,15 @@
5353

5454
<browser:page
5555
name="esign-session-delete"
56-
for="imio.esign.interfaces.IImioSessionsManagementContext"
56+
for="Products.CMFPlone.interfaces.IPloneSiteRoot"
5757
class=".views.SessionDeleteView"
5858
permission="imio.esign.ManageSessions"
5959
i18n:domain="imio.esign"
6060
/>
6161

6262
<browser:page
6363
name="external-esign-session-create"
64-
for="imio.esign.interfaces.IImioSessionsManagementContext"
64+
for="Products.CMFPlone.interfaces.IPloneSiteRoot"
6565
class=".views.ExternalSessionCreateView"
6666
permission="imio.esign.ManageSessions"
6767
i18n:domain="imio.esign"

src/imio/esign/browser/settings.py

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ def detect_settings_changed(event):
9999
new_value = event.newValue
100100
if event.record.fieldName == 'enabled':
101101
portal = api.portal.get()
102-
# hide "sessions" link from navigation depending on eSign enable or not
102+
# hide "parapheo" link from navigation depending on eSign enable or not
103103
if new_value is True:
104104
portal.get('sessions').setExcludeFromNav(False)
105105
else:

src/imio/esign/browser/views.py

Lines changed: 7 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -6,7 +6,6 @@
66
from imio.esign import ESIGN_ROOT_URL
77
from imio.esign.browser.table import external_session_link
88
from imio.esign.browser.table import SessionsTable
9-
from imio.esign.interfaces import IImioSessionsManagementContext
109
from imio.esign.utils import create_external_session
1110
from imio.esign.utils import get_session_annotation
1211
from imio.esign.utils import remove_session
@@ -43,13 +42,8 @@ class SessionsListingView(BrowserView):
4342
def __init__(self, context, request):
4443
super(SessionsListingView, self).__init__(context, request)
4544

46-
def __call__(self):
47-
# Verify that the context provides the correct interface
48-
if not IImioSessionsManagementContext.providedBy(self.context):
49-
raise Unauthorized(
50-
"This view can only be called on a context providing IImioSessionsManagementContext"
51-
)
52-
return self.index()
45+
def available(self):
46+
return True
5347

5448
def render_table(self):
5549
table = SessionsTable(self.context, self, self.request, self.get_sessions())
@@ -68,7 +62,7 @@ def get_dashboard_link(self, session):
6862
raise NotImplementedError
6963

7064
def get_sessions_url(self):
71-
raise NotImplementedError
65+
return api.portal.get().absolute_url()
7266

7367

7468
class SessionFilesView(BrowserView):
@@ -117,7 +111,7 @@ def __call__(self):
117111
else:
118112
api.portal.show_message(_("Session not found!"), request=self.request, type="error")
119113

120-
return self.request.RESPONSE.redirect(self.context.absolute_url() + "/@@esign-sessions-listing")
114+
return self.request.RESPONSE.redirect(self.context.absolute_url() + "/@@parapheo")
121115

122116

123117
class ExternalSessionCreateView(BrowserView):
@@ -128,7 +122,7 @@ def __call__(self, session_id=None):
128122
session_id = self.request.get("session_id", None)
129123
if session_id is None:
130124
api.portal.show_message(_("No session ID provided!"), request=self.request, type="error")
131-
return self.context.absolute_url() + "/@@esign-sessions-listing"
125+
return self.context.absolute_url() + "/@@parapheo"
132126
resp = create_external_session(
133127
int(session_id),
134128
b64_cred=ESIGN_CREDENTIALS,
@@ -155,7 +149,7 @@ def __call__(self, session_id=None):
155149
request=self.request,
156150
type="error",
157151
)
158-
return self.context.absolute_url() + "/@@esign-sessions-listing"
152+
return self.context.absolute_url() + "/@@parapheo"
159153

160154

161155
class FacetedSessionInfoViewlet(ViewletBase):
@@ -204,7 +198,7 @@ def ext_session_link(self, session):
204198

205199
@property
206200
def session_listing_url(self):
207-
return api.portal.get().absolute_url() + "/sessions/@@esign-sessions-listing"
201+
return api.portal.get().absolute_url() + "/@@parapheo"
208202

209203

210204
class ItemSessionInfoViewlet(FacetedSessionInfoViewlet):

src/imio/esign/interfaces.py

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,6 @@ class IImioEsignLayer(IDefaultBrowserLayer):
99
"""Marker interface that defines a browser layer."""
1010

1111

12-
class IImioSessionsManagementContext(Interface):
13-
"""Marker interface used to restrict session listing and actions."""
14-
15-
1612
class IContextUidProvider(Interface):
1713
"""Adapter to provide context UID for a file."""
1814

src/imio/esign/profiles/default/actions.xml

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -25,4 +25,14 @@
2525
<property name="visible">True</property>
2626
</object>
2727
</object>
28+
<object name="portal_tabs" meta_type="CMF Action Category">
29+
<object name="sessions" meta_type="CMF Action">
30+
<property name="title">Paraphéo</property>
31+
<property name="url_expr">string:${portal_url}/@@parapheo</property>
32+
<property name="permissions">
33+
<element value="View" />
34+
</property>
35+
<property name="visible">True</property>
36+
</object>
37+
</object>
2838
</object>

src/imio/esign/setuphandlers.py

Lines changed: 0 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1,10 +1,7 @@
11
# -*- coding: utf-8 -*-
22

3-
from imio.esign import logger
4-
from imio.esign.interfaces import IImioSessionsManagementContext
53
from plone import api
64
from Products.CMFPlone.interfaces import INonInstallable
7-
from zope.interface import alsoProvides
85
from zope.interface import implementer
96

107

@@ -24,31 +21,8 @@ def getNonInstallableProducts(self):
2421
def post_install(context):
2522
"""Post install script"""
2623
portal = api.portal.get()
27-
create_sessions_link(portal)
2824

2925

3026
def uninstall(context):
3127
"""Uninstall script"""
3228
# Do something at the end of the uninstallation of this package.
33-
34-
35-
def create_sessions_link(portal):
36-
"""Create sessions link in portal root if not exists"""
37-
if not hasattr(portal, "sessions"):
38-
portal.invokeFactory("Link", id="sessions", title="Sessions", remoteUrl="sessions/esign-sessions-listing")
39-
s_l = portal["sessions"]
40-
s_l.setExcludeFromNav(True)
41-
alsoProvides(s_l, IImioSessionsManagementContext)
42-
# alsoProvides(s_l, IProtectedItem)
43-
s_l.manage_permission("Access contents information",
44-
("Contributor", "Editor", "Manager", "Reader", "Site administrator"), acquire=0)
45-
s_l.manage_permission("Modify portal content", ("Owner", ), acquire=0)
46-
s_l.manage_permission("View", ("Contributor", "Editor", "Manager", "Reader", "Site administrator"), acquire=0)
47-
s_l.changeOwnership(s_l.portal_membership.getMemberById("admin"))
48-
s_l.reindexObject()
49-
50-
unlisted = list(portal.portal_properties.navtree_properties.metaTypesNotToList)
51-
if "Link" not in unlisted:
52-
unlisted.append("Link")
53-
portal.portal_properties.navtree_properties.manage_changeProperties(metaTypesNotToList=unlisted)
54-
logger.info("Sessions link created in portal root")

0 commit comments

Comments
 (0)