Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Labels
Merge Requests
150
Merge Requests
150
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Jobs
Commits
Open sidebar
nexedi
erp5
Commits
7f159f54
Commit
7f159f54
authored
Oct 13, 2016
by
Gabriel Monnerat
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
erp5_oauth_google_login: Use portal types instead of add prefix to references
parent
32906510
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
19 additions
and
18 deletions
+19
-18
bt5/erp5_oauth_google_login/SkinTemplateItem/portal_skins/erp5_oauth_google_login/Base_createOauth2User.py
...al_skins/erp5_oauth_google_login/Base_createOauth2User.py
+2
-5
bt5/erp5_oauth_google_login/SkinTemplateItem/portal_skins/erp5_oauth_google_login/Base_createOauth2User.xml
...l_skins/erp5_oauth_google_login/Base_createOauth2User.xml
+1
-1
bt5/erp5_oauth_google_login/SkinTemplateItem/portal_skins/erp5_oauth_google_login/ERP5Site_receiveGoogleCallback.py
...erp5_oauth_google_login/ERP5Site_receiveGoogleCallback.py
+1
-1
bt5/erp5_oauth_google_login/TestTemplateItem/portal_components/test.erp5.testGoogleLogin.py
...mplateItem/portal_components/test.erp5.testGoogleLogin.py
+13
-9
product/ERP5Security/ERP5ExternalOauth2ExtractionPlugin.py
product/ERP5Security/ERP5ExternalOauth2ExtractionPlugin.py
+2
-2
No files found.
bt5/erp5_oauth_google_login/SkinTemplateItem/portal_skins/erp5_oauth_google_login/Base_createOauth2User.py
View file @
7f159f54
...
...
@@ -16,10 +16,7 @@ if person is not None:
activate_kw
=
{
'tag'
:
tag
}
# In future we can move this script to another, because this script is generic enough
# to support Facebook login
if
reference
.
startswith
(
"go_"
):
portal_type
=
"Google Login"
else
:
raise
RuntimeError
(
"Impossible to select a portal type"
)
assert
login_portal_type
in
(
"Google Login"
,),
"Impossible to select a portal type"
if
erp5_username
in
(
"Anonymous User"
,
None
):
person
=
portal
.
person_module
.
newContent
(
portal_type
=
'Person'
,
...
...
@@ -53,7 +50,7 @@ if erp5_username in ("Anonymous User", None):
else
:
person
=
portal
.
ERP5Site_getAuthenticatedMemberPersonValue
(
erp5_username
)
login
=
person
.
newContent
(
portal_type
=
portal_type
,
login
=
person
.
newContent
(
portal_type
=
login_
portal_type
,
reference
=
reference
)
login
.
validate
(
activate_kw
=
activate_kw
)
...
...
bt5/erp5_oauth_google_login/SkinTemplateItem/portal_skins/erp5_oauth_google_login/Base_createOauth2User.xml
View file @
7f159f54
...
...
@@ -50,7 +50,7 @@
</item>
<item>
<key>
<string>
_params
</string>
</key>
<value>
<string>
tag, first_name, last_name, reference, email, erp5_username=None
</string>
</value>
<value>
<string>
tag, first_name, last_name, reference, email,
login_portal_type,
erp5_username=None
</string>
</value>
</item>
<item>
<key>
<string>
id
</string>
</key>
...
...
bt5/erp5_oauth_google_login/SkinTemplateItem/portal_skins/erp5_oauth_google_login/ERP5Site_receiveGoogleCallback.py
View file @
7f159f54
...
...
@@ -19,7 +19,7 @@ elif code is not None:
" "
.
join
([
"%s : %s"
%
(
k
,
v
)
for
k
,
v
in
response_dict
.
iteritems
()]))
if
response_dict
is
not
None
:
access_token
=
response_dict
[
'access_token'
].
encode
(
'utf-8'
)
response_dict
[
'login'
]
=
'go_'
+
context
.
ERP5Site_getGoogleUserId
(
access_token
)
response_dict
[
'login'
]
=
context
.
ERP5Site_getGoogleUserId
(
access_token
)
response_dict
[
'erp5_username'
]
=
portal
.
portal_membership
.
getAuthenticatedMember
().
getUserName
()
hash_str
=
context
.
Base_getHMAC
(
access_token
,
access_token
)
context
.
REQUEST
.
RESPONSE
.
setCookie
(
'__ac_google_hash'
,
hash_str
,
path
=
'/'
)
...
...
bt5/erp5_oauth_google_login/TestTemplateItem/portal_components/test.erp5.testGoogleLogin.py
View file @
7f159f54
...
...
@@ -110,20 +110,22 @@ class TestGoogleLogin(ERP5TypeTestCase):
def
test_create_user_with_google_id
(
self
):
self
.
login
()
user_id
=
"go_"
+
getUserId
(
None
)
user_id
=
getUserId
(
None
)
person
=
self
.
portal
.
portal_catalog
.
getResultValue
(
portal_type
=
"Person"
,
reference
=
user_id
,
validation_state
=
"validated"
)
if
person
:
person
.
invalidate
()
self
.
tic
()
self
.
portal
.
Base_createOauth2User
(
'123_user_creation_in_progress'
,
'User'
,
'Last Name'
,
user_id
,
'example@email.com'
,
'Anonymous User'
)
user_entry
=
{
"tag"
:
'123_user_creation_in_progress'
,
"first_name"
:
"User"
,
"last_name"
:
"Last Name"
,
"reference"
:
user_id
,
"email"
:
'example@email.com'
,
"login_portal_type"
:
"Google Login"
,
"erp5_username"
:
'Anonymous User'
}
self
.
portal
.
Base_createOauth2User
(
**
user_entry
)
self
.
tic
()
google_login
=
self
.
portal
.
portal_catalog
(
portal_type
=
"Google Login"
,
reference
=
user_id
,
...
...
@@ -131,4 +133,6 @@ class TestGoogleLogin(ERP5TypeTestCase):
self
.
assertNotEqual
(
None
,
google_login
)
self
.
login
(
user_id
)
person
=
self
.
portal
.
ERP5Site_getAuthenticatedMemberPersonValue
()
self
.
assertEqual
(
user_id
,
person
.
getReference
())
\ No newline at end of file
self
.
assertEqual
(
user_id
,
person
.
getReference
())
self
.
assertEqual
(
user_entry
[
"first_name"
],
person
.
getFirstName
())
self
.
assertEqual
(
user_entry
[
"last_name"
],
person
.
getLastName
())
\ No newline at end of file
product/ERP5Security/ERP5ExternalOauth2ExtractionPlugin.py
View file @
7f159f54
...
...
@@ -196,6 +196,7 @@ class ERP5ExternalOauth2ExtractionPlugin:
self
.
REQUEST
[
'USER_CREATION_IN_PROGRESS'
]
=
user_dict
#if user_entry is None:
user_entry
=
self
.
getUserEntry
(
user_dict
)
user_entry
[
"login_portal_type"
]
=
creds
[
"login_portal_type"
]
user_entry
[
"erp5_username"
]
=
user_dict
.
get
(
"erp5_username"
)
try
:
Base_createOauth2User
(
tag
,
**
user_entry
)
...
...
@@ -249,8 +250,7 @@ class ERP5FacebookExtractionPlugin(ERP5ExternalOauth2ExtractionPlugin, BasePlugi
try
:
for
k
in
(
'first_name'
,
'last_name'
,
'id'
,
'email'
):
if
k
==
'id'
:
user_entry
[
'reference'
]
=
self
.
prefix
+
facebook_entry
[
k
].
encode
(
'utf-8'
)
user_entry
[
'reference'
]
=
facebook_entry
[
k
].
encode
(
'utf-8'
)
else
:
user_entry
[
k
]
=
facebook_entry
[
k
].
encode
(
'utf-8'
)
except
KeyError
:
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment