Skip to content

Commit

Permalink
basic pep8 et al, review and minor mods, zca and security decorators
Browse files Browse the repository at this point in the history
  • Loading branch information
jensens committed Mar 11, 2015
1 parent 17e22ea commit bb791b9
Show file tree
Hide file tree
Showing 34 changed files with 805 additions and 742 deletions.
3 changes: 3 additions & 0 deletions CHANGES.txt → CHANGES.rst
Original file line number Diff line number Diff line change
Expand Up @@ -4,6 +4,9 @@ Changelog
5.0.1 (unreleased)
------------------

- Cleanup: PEP8 et all, zca decorators, rough code review
[jensens]

- In searchForMembers, ensure that request parameters are properly
decoded to unicode
[do3cc]
Expand Down
230 changes: 123 additions & 107 deletions Products/PlonePAS/__init__.py
Original file line number Diff line number Diff line change
@@ -1,48 +1,47 @@
# -*- coding: utf-8 -*-
from AccessControl.Permissions import add_user_folders
from Products.CMFCore.utils import ToolInit
from Products.PlonePAS import config
from Products.PlonePAS import pas
from Products.PlonePAS.plugins import autogroup
from Products.PlonePAS.plugins import cookie_handler
from Products.PlonePAS.plugins import crumbler
from Products.PlonePAS.plugins import group
from Products.PlonePAS.plugins import local_role
from Products.PlonePAS.plugins import passwordpolicy
from Products.PlonePAS.plugins import property
from Products.PlonePAS.plugins import role
from Products.PlonePAS.plugins import ufactory
from Products.PlonePAS.plugins import user
from Products.PlonePAS.tools.groupdata import GroupDataTool
from Products.PlonePAS.tools.groups import GroupsTool
from Products.PlonePAS.tools.memberdata import MemberDataTool
from Products.PlonePAS.tools.membership import MembershipTool
from Products.PluggableAuthService import registerMultiPlugin

import config

#################################
# plugins
from plugins import user
from plugins import group
from plugins import role
from plugins import local_role
from plugins import ufactory
from plugins import property
from plugins import crumbler
from plugins import cookie_handler
from plugins import autogroup
from plugins import passwordpolicy

#################################
# pas monkies
import pas

#################################
# ldapmp monkies if available

# quite dirty, must be moved to PloneLDAP
try:
from Products import LDAPMultiPlugins
from Products import LDAPUserFolder
except ImportError:
pass
else:
import ldapmp
from Products.PlonePAS import ldapmp

#################################
# pas monkies 2 play w/ gruf
if config.PAS_INSIDE_GRUF:
import gruf_support
from Products.PlonePAS import gruf_support


####################################
# monkey patch pas, the evil happens
pas.patch_all()

#################################
# new groups tool
from tools.membership import MembershipTool
from tools.memberdata import MemberDataTool
from tools.groups import GroupsTool
from tools.groupdata import GroupDataTool

#################################
# register plugins with pas
Expand All @@ -56,7 +55,7 @@
registerMultiPlugin(crumbler.CookieCrumblingPlugin.meta_type)
registerMultiPlugin(cookie_handler.ExtendedCookieAuthHelper.meta_type)
registerMultiPlugin(autogroup.AutoGroup.meta_type)
registerMultiPlugin( passwordpolicy.PasswordPolicyPlugin.meta_type )
registerMultiPlugin(passwordpolicy.PasswordPolicyPlugin.meta_type)
except RuntimeError:
# make refresh users happy
pass
Expand All @@ -66,83 +65,100 @@ def initialize(context):

tools = (GroupsTool, GroupDataTool, MembershipTool, MemberDataTool)

ToolInit('PlonePAS Tool',
tools=tools,
icon='tool.gif',
).initialize(context)

context.registerClass(role.GroupAwareRoleManager,
permission=add_user_folders,
constructors=(
role.manage_addGroupAwareRoleManagerForm,
role.manage_addGroupAwareRoleManager),
visibility=None
)

context.registerClass(user.UserManager,
permission=add_user_folders,
constructors=(user.manage_addUserManagerForm,
user.manage_addUserManager),
visibility=None
)

context.registerClass(group.GroupManager,
permission=add_user_folders,
constructors=(group.manage_addGroupManagerForm,
group.manage_addGroupManager),
visibility=None
)

context.registerClass(ufactory.PloneUserFactory,
permission=add_user_folders,
constructors=(
ufactory.manage_addPloneUserFactoryForm,
ufactory.manage_addPloneUserFactory),
visibility=None
)

context.registerClass(local_role.LocalRolesManager,
permission=add_user_folders,
constructors=(
local_role.manage_addLocalRolesManagerForm,
local_role.manage_addLocalRolesManager),
visibility=None
)

context.registerClass(property.ZODBMutablePropertyProvider,
permission=add_user_folders,
constructors=(
property.manage_addZODBMutablePropertyProviderForm,
property.manage_addZODBMutablePropertyProvider),
visibility=None
)

context.registerClass(crumbler.CookieCrumblingPlugin,
permission=add_user_folders,
constructors=(
crumbler.manage_addCookieCrumblingPluginForm,
crumbler.manage_addCookieCrumblingPlugin),
visibility=None
)

context.registerClass(cookie_handler.ExtendedCookieAuthHelper,
permission=add_user_folders,
constructors=(
cookie_handler.manage_addExtendedCookieAuthHelperForm,
cookie_handler.manage_addExtendedCookieAuthHelper),
visibility=None
)

context.registerClass(autogroup.AutoGroup,
permission=add_user_folders,
constructors=(autogroup.manage_addAutoGroupForm,
autogroup.manage_addAutoGroup),
visibility=None
)

context.registerClass( passwordpolicy.PasswordPolicyPlugin,
permission = add_user_folders,
constructors = ( passwordpolicy.manage_addPasswordPolicyForm,
passwordpolicy.manage_addPasswordPolicyPlugin ),
visibility = None
)
ToolInit(
'PlonePAS Tool',
tools=tools,
icon='tool.gif',
).initialize(context)

context.registerClass(
role.GroupAwareRoleManager,
permission=add_user_folders,
constructors=(
role.manage_addGroupAwareRoleManagerForm,
role.manage_addGroupAwareRoleManager),
visibility=None
)

context.registerClass(
user.UserManager,
permission=add_user_folders,
constructors=(
user.manage_addUserManagerForm,
user.manage_addUserManager),
visibility=None
)

context.registerClass(
group.GroupManager,
permission=add_user_folders,
constructors=(
group.manage_addGroupManagerForm,
group.manage_addGroupManager
),
visibility=None
)

context.registerClass(
ufactory.PloneUserFactory,
permission=add_user_folders,
constructors=(
ufactory.manage_addPloneUserFactoryForm,
ufactory.manage_addPloneUserFactory),
visibility=None
)

context.registerClass(
local_role.LocalRolesManager,
permission=add_user_folders,
constructors=(
local_role.manage_addLocalRolesManagerForm,
local_role.manage_addLocalRolesManager),
visibility=None
)

context.registerClass(
property.ZODBMutablePropertyProvider,
permission=add_user_folders,
constructors=(
property.manage_addZODBMutablePropertyProviderForm,
property.manage_addZODBMutablePropertyProvider),
visibility=None
)

context.registerClass(
crumbler.CookieCrumblingPlugin,
permission=add_user_folders,
constructors=(
crumbler.manage_addCookieCrumblingPluginForm,
crumbler.manage_addCookieCrumblingPlugin),
visibility=None
)

context.registerClass(
cookie_handler.ExtendedCookieAuthHelper,
permission=add_user_folders,
constructors=(
cookie_handler.manage_addExtendedCookieAuthHelperForm,
cookie_handler.manage_addExtendedCookieAuthHelper),
visibility=None
)

context.registerClass(
autogroup.AutoGroup,
permission=add_user_folders,
constructors=(
autogroup.manage_addAutoGroupForm,
autogroup.manage_addAutoGroup),
visibility=None
)

context.registerClass(
passwordpolicy.PasswordPolicyPlugin,
permission=add_user_folders,
constructors=(
passwordpolicy.manage_addPasswordPolicyForm,
passwordpolicy.manage_addPasswordPolicyPlugin
),
visibility=None
)
19 changes: 12 additions & 7 deletions Products/PlonePAS/config.py
Original file line number Diff line number Diff line change
@@ -1,12 +1,15 @@
# -*- coding: utf-8 -*-
PROJECTNAME = 'PlonePAS'
GLOBALS = globals()

PAS_INSIDE_GRUF = True

DEFAULT_CHALLENGE_PROTOCOL = ['http']
DEFAULT_PROTO_MAPPING = {'WebDAV': DEFAULT_CHALLENGE_PROTOCOL,
'FTP': DEFAULT_CHALLENGE_PROTOCOL,
'XML-RPC': DEFAULT_CHALLENGE_PROTOCOL}
DEFAULT_PROTO_MAPPING = {
'WebDAV': DEFAULT_CHALLENGE_PROTOCOL,
'FTP': DEFAULT_CHALLENGE_PROTOCOL,
'XML-RPC': DEFAULT_CHALLENGE_PROTOCOL
}

# Settings for member image resize quality
try:
Expand All @@ -17,7 +20,9 @@

PIL_QUALITY = 88
MEMBER_IMAGE_SCALE = (75, 100)
IMAGE_SCALE_PARAMS = {'scale': MEMBER_IMAGE_SCALE,
'quality': PIL_QUALITY,
'algorithm': PIL_SCALING_ALGO,
'default_format': 'PNG'}
IMAGE_SCALE_PARAMS = {
'scale': MEMBER_IMAGE_SCALE,
'quality': PIL_QUALITY,
'algorithm': PIL_SCALING_ALGO,
'default_format': 'PNG'
}
34 changes: 15 additions & 19 deletions Products/PlonePAS/configure.zcml
Original file line number Diff line number Diff line change
@@ -1,30 +1,26 @@
<configure xmlns="http://namespaces.zope.org/zope"
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
<configure
i18n_domain="plone"
xmlns="http://namespaces.zope.org/zope"
xmlns:five="http://namespaces.zope.org/five"
xmlns:i18n="http://namespaces.zope.org/i18n"
i18n_domain="plone">
xmlns:genericsetup="http://namespaces.zope.org/genericsetup"
xmlns:i18n="http://namespaces.zope.org/i18n">

<include package=".browser" />

<include file="profiles.zcml"/>

<include file="profiles.zcml" />
<include file="exportimport.zcml" />

<genericsetup:importStep
name="plonepas"
title="PlonePAS setup"
description="Configure PlonePas"
handler="Products.PlonePAS.setuphandlers.setupPlonePAS">
<depends name="componentregistry"/>
<depends name="controlpanel"/>
<depends name="memberdata-properties"/>
<depends name="rolemap"/>
handler="Products.PlonePAS.setuphandlers.setupPlonePAS"
name="plonepas"
title="PlonePAS setup">
<depends name="componentregistry" />
<depends name="controlpanel" />
<depends name="memberdata-properties" />
<depends name="rolemap" />
</genericsetup:importStep>

<five:deprecatedManageAddDelete
class=".plugins.cookie_handler.ExtendedCookieAuthHelper" />

<five:deprecatedManageAddDelete
class=".plugins.role.GroupAwareRoleManager" />
<five:deprecatedManageAddDelete class=".plugins.cookie_handler.ExtendedCookieAuthHelper" />
<five:deprecatedManageAddDelete class=".plugins.role.GroupAwareRoleManager" />

</configure>
26 changes: 19 additions & 7 deletions Products/PlonePAS/events.py
Original file line number Diff line number Diff line change
@@ -1,18 +1,30 @@
from Products.PluggableAuthService.interfaces.events import IUserLoggedInEvent
from Products.PluggableAuthService.interfaces.events import IUserLoggedOutEvent
# -*- coding: utf-8 -*-
from Products.PlonePAS.interfaces.events import IUserInitialLoginInEvent
from Products.PluggableAuthService.events import PASEvent
from zope.interface import implements
from Products.PluggableAuthService.interfaces.events import IUserLoggedInEvent
from Products.PluggableAuthService.interfaces.events import IUserLoggedOutEvent
from zope.interface import implementer


@implementer(IUserLoggedInEvent)
class UserLoggedInEvent(PASEvent):
implements(IUserLoggedInEvent)
"""Plone Implementation of the logged in event
PAS Event
"""


@implementer(IUserInitialLoginInEvent)
class UserInitialLoginInEvent(UserLoggedInEvent):
implements(IUserInitialLoginInEvent)
"""Implementation of the initial logged in event
Plone only event!
"""

class UserLoggedOutEvent(PASEvent):
implements(IUserLoggedOutEvent)

@implementer(IUserLoggedOutEvent)
class UserLoggedOutEvent(PASEvent):
"""Plone Implementation of the logged out event
PAS Event
"""
Loading

0 comments on commit bb791b9

Please sign in to comment.