From: Benoît Pin <benoit.pin@gmail.com>
Date: Mon, 1 Sep 2014 21:21:16 +0000 (+0200)
Subject: Remise en route de l'affichage de ses collections après login.
X-Git-Url: https://scm.cri.ensmp.fr/git/Plinn.git/commitdiff_plain/37781db84157d12cbfc6e8a454e2a2dc3846e2dc?ds=inline

Remise en route de l'affichage de ses collections après login.
realis--
---

diff --git a/skins/photo_theme/homepage_dispatcher.py b/skins/photo_theme/homepage_dispatcher.py
index de5cb66..bc3e140 100755
--- a/skins/photo_theme/homepage_dispatcher.py
+++ b/skins/photo_theme/homepage_dispatcher.py
@@ -9,12 +9,21 @@ resp = req.RESPONSE
 came_from = req.form.get('came_from')
 
 if came_from :
-	urlQs = came_from.split('?', 1)
-	if len(urlQs) == 1 :
-		came_from = '%s?%s' % (urlQs[0], mq(portal_status_message=_('Login success')))
-	else :
-		url, qs=  urlQs
-		came_from = '%s?%s&%s' % (url, qs, mq(portal_status_message=_('Login success')))
-	return resp.redirect(came_from)
+    urlQs = came_from.split('?', 1)
+    if len(urlQs) == 1 :
+        came_from = '%s?%s' % (urlQs[0], mq(portal_status_message=_('Login success')))
+    else :
+        url, qs=  urlQs
+        came_from = '%s?%s&%s' % (url, qs, mq(portal_status_message=_('Login success')))
+    return resp.redirect(came_from)
 
-return resp.redirect('%s?%s' % (utool(), mq(portal_status_message=_('Login success'))))
\ No newline at end of file
+else :
+    from Products.Plinn.utils import searchContentsWithLocalRolesForAuthenticatedUser as search
+    results = search(portal_type='Portfolio')
+    if results :
+        atool = getToolByName(context, 'portal_actions')
+        return context.setRedirect(atool, 'user/my_albums', portal_status_message=_('Login success'))
+    else :
+        utool = getToolByName(context, 'portal_url')
+        return resp.redirect('%s?%s' % (utool(), mq(portal_status_message=_('Login success'))))
+    
\ No newline at end of file
diff --git a/skins/photo_theme/member_albums.py b/skins/photo_theme/member_albums.py
index 9425f2b..dab1be5 100755
--- a/skins/photo_theme/member_albums.py
+++ b/skins/photo_theme/member_albums.py
@@ -1,6 +1,6 @@
 ##parameters=
 
-from Products.realis.utils import searchContentsWithLocalRolesForAuthenticatedUser as search
+from Products.Plinn.utils import searchContentsWithLocalRolesForAuthenticatedUser as search
 
-results = search(context, portal_type='Portfolio')
+results = search(portal_type='Portfolio')
 return context.member_albums_template(results = results)
\ No newline at end of file
diff --git a/utils.py b/utils.py
index 6b3b697..de68f22 100755
--- a/utils.py
+++ b/utils.py
@@ -319,4 +319,20 @@ def _sudo(func, userid=None) :
         raise e
 
     return ret
-    
\ No newline at end of file
+
+security.declarePublic('searchContentsWithLocalRolesForAuthenticatedUser')
+def searchContentsWithLocalRolesForAuthenticatedUser(**kw):
+    mtool = getUtilityByInterfaceName('Products.CMFCore.interfaces.IMembershipTool')
+    ctool = getUtilityByInterfaceName('Products.CMFCore.interfaces.ICatalogTool')
+    member = mtool.getAuthenticatedMember()
+    userid = member.getId()
+    userAndGroups = ['user:%s' % userid]
+    
+    getGroups = getattr(member, 'getGroups', None)
+    if getGroups is not None :
+        for group in getGroups():
+            userAndGroups.append('user:'+group)
+    
+    kw[ 'allowedRolesAndUsers' ] = userAndGroups
+    
+    return ctool.unrestrictedSearchResults(**kw)