diff --git a/bt5/erp5_oauth_facebook_login/ExtensionTemplateItem/portal_components/extension.erp5.FacebookLoginUtility.py b/bt5/erp5_oauth_facebook_login/ExtensionTemplateItem/portal_components/extension.erp5.FacebookLoginUtility.py index 0863cdd92b8388647ce12de9e62d15a8e535fbf3..165273cd3159222d7133ee4834492e5be6f3ed0c 100644 --- a/bt5/erp5_oauth_facebook_login/ExtensionTemplateItem/portal_components/extension.erp5.FacebookLoginUtility.py +++ b/bt5/erp5_oauth_facebook_login/ExtensionTemplateItem/portal_components/extension.erp5.FacebookLoginUtility.py @@ -2,6 +2,7 @@ import facebook from ZTUtils import make_query from Products.ERP5Security.ERP5ExternalOauth2ExtractionPlugin import getFacebookUserEntry +from zExceptions import Unauthorized def _getFacebookClientIdAndSecretKey(portal, reference="default"): """Returns facebook client id and secret key. @@ -37,5 +38,21 @@ def getAccessTokenFromCode(self, code, redirect_uri): code=code, redirect_uri=redirect_uri, app_id=client_id, app_secret=secret_key) +def unrestrictedSearchFacebookConnector(self): + return self.getPortalObject().portal_catalog.unrestrictedSearchResults( + portal_type="Facebook Connector", + reference="default", + validation_state="validated", + limit=2) + +def unrestrictedSearchFacebookLogin(self, login, REQUEST=None): + if REQUEST is not None: + raise Unauthorized + + return self.getPortalObject().portal_catalog.unrestrictedSearchResults( + portal_type="Facebook Login", + reference=login, + validation_state="validated", limit=1) + def getUserEntry(token): return getFacebookUserEntry(token) diff --git a/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/ERP5Site_getFacebookConnector.xml b/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/ERP5Site_getFacebookConnector.xml new file mode 100644 index 0000000000000000000000000000000000000000..454a17f820e0058bab6b5e87301de6b18e4693fa --- /dev/null +++ b/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/ERP5Site_getFacebookConnector.xml @@ -0,0 +1,28 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_function</string> </key> + <value> <string>unrestrictedSearchFacebookConnector</string> </value> + </item> + <item> + <key> <string>_module</string> </key> + <value> <string>FacebookLoginUtility</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ERP5Site_getFacebookConnector</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/ERP5Site_getFacebookLogin.xml b/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/ERP5Site_getFacebookLogin.xml new file mode 100644 index 0000000000000000000000000000000000000000..ea0d8cf8acb9c5b716cf3a6f6f68c799c8996a3f --- /dev/null +++ b/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/ERP5Site_getFacebookLogin.xml @@ -0,0 +1,28 @@ +<?xml version="1.0"?> +<ZopeData> + <record id="1" aka="AAAAAAAAAAE="> + <pickle> + <global name="ExternalMethod" module="Products.ExternalMethod.ExternalMethod"/> + </pickle> + <pickle> + <dictionary> + <item> + <key> <string>_function</string> </key> + <value> <string>unrestrictedSearchFacebookLogin</string> </value> + </item> + <item> + <key> <string>_module</string> </key> + <value> <string>FacebookLoginUtility</string> </value> + </item> + <item> + <key> <string>id</string> </key> + <value> <string>ERP5Site_getFacebookLogin</string> </value> + </item> + <item> + <key> <string>title</string> </key> + <value> <string></string> </value> + </item> + </dictionary> + </pickle> + </record> +</ZopeData> diff --git a/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/ERP5Site_getPersonFromFacebookLogin.py b/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/ERP5Site_getPersonFromFacebookLogin.py index 9377113f98714b7b618378d9d5fc5a7316875b3c..8d8132b800bed224ee27abf3f5b3e1716f309add 100644 --- a/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/ERP5Site_getPersonFromFacebookLogin.py +++ b/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/ERP5Site_getPersonFromFacebookLogin.py @@ -3,12 +3,12 @@ from zExceptions import Unauthorized if REQUEST is not None: raise Unauthorized -portal_catalog = context.getPortalObject().portal_catalog +login = context.ERP5Site_getFacebookLogin(login) -login = portal_catalog.getResultValue( - portal_type="Facebook Login", - reference=login, - validation_state="validated") +if login is None: + return login -if login is not None: - return login.getParentValue().getRelativeUrl() +if len(login) > 1: + raise ValueError("Duplicated User") + +return login[0].getParentValue().getRelativeUrl() diff --git a/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/FacebookConnector_view.xml b/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/FacebookConnector_view.xml index 9964b5f33aa3499a8498f78b3a913eaf1a4526e5..987d99b16cc8e2b5906b93ff7d1d23e947c5afd4 100644 --- a/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/FacebookConnector_view.xml +++ b/bt5/erp5_oauth_facebook_login/SkinTemplateItem/portal_skins/erp5_oauth_facebook_login/FacebookConnector_view.xml @@ -115,7 +115,7 @@ </item> <item> <key> <string>title</string> </key> - <value> <string>Faceook Connector</string> </value> + <value> <string>Facebook Connector</string> </value> </item> <item> <key> <string>unicode_mode</string> </key>