Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
E
edx-platform-release
Manage
Activity
Members
Labels
Plan
Issues
0
Issue boards
Milestones
Wiki
Code
Merge requests
1
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Deploy
Releases
Package Registry
Model registry
Operate
Terraform modules
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
Community forum
Contribute to GitLab
Provide feedback
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
Hsin-Yu Chien
edx-platform-release
Commits
910f1c45
Commit
910f1c45
authored
4 years ago
by
Sharon Wang
Browse files
Options
Downloads
Patches
Plain Diff
test passing
parent
15c9ad11
No related branches found
Branches containing commit
Tags
release-2020-07-14-18.01
Tags containing commit
No related merge requests found
Changes
2
Hide whitespace changes
Inline
Side-by-side
Showing
2 changed files
openedx/core/djangoapps/user_authn/cookies.py
+12
-10
12 additions, 10 deletions
openedx/core/djangoapps/user_authn/cookies.py
openedx/core/djangoapps/user_authn/tests/test_cookies.py
+24
-5
24 additions, 5 deletions
openedx/core/djangoapps/user_authn/tests/test_cookies.py
with
36 additions
and
15 deletions
openedx/core/djangoapps/user_authn/cookies.py
+
12
−
10
View file @
910f1c45
...
...
@@ -196,6 +196,7 @@ def _set_deprecated_user_info_cookie(response, request, user, cookie_settings):
}
}
"""
user_info
=
_get_user_info_cookie_data
(
request
,
user
)
response
.
set_cookie
(
settings
.
EDXMKTG_USER_INFO_COOKIE_NAME
,
json
.
dumps
(
user_info
),
...
...
@@ -218,6 +219,12 @@ def _set_deprecated_logged_in_cookie(response, cookie_settings):
return
response
def
_convert_to_absolute_uris
(
request
,
urls_obj
):
"""
Convert relative URL paths to absolute URIs
"""
for
url_name
,
url_path
in
six
.
iteritems
(
urls_obj
):
urls_obj
[
url_name
]
=
request
.
build_absolute_uri
(
url_path
)
return
urls_obj
def
_get_user_info_cookie_data
(
request
,
user
):
"""
Returns information that will populate the user info cookie.
"""
...
...
@@ -245,18 +252,13 @@ def _get_user_info_cookie_data(request, user):
except
User
.
DoesNotExist
:
pass
# Convert relative URL paths to absolute URIs
for
url_name
,
url_path
in
six
.
iteritems
(
header_urls
):
header_urls
[
url_name
]
=
request
.
build_absolute_uri
(
url_path
)
header_urls
=
_convert_to_absolute_uris
(
request
,
header_urls
)
image_urls
=
[]
if
user
.
profile
and
user
.
profile
.
has_profile_image
:
image_urls
=
_get_user_info_cookie_data
(
request
,
user
)
image_urls
=
{}
if
user
.
profile
:
image_urls
=
get_profile_image_urls_for_user
(
user
)
print
(
'
****
'
)
print
(
user
)
print
(
image_urls
)
image_urls
=
_convert_to_absolute_uris
(
request
,
image_urls
)
user_info
=
{
'
version
'
:
settings
.
EDXMKTG_USER_INFO_COOKIE_VERSION
,
...
...
This diff is collapsed.
Click to expand it.
openedx/core/djangoapps/user_authn/tests/test_cookies.py
+
24
−
5
View file @
910f1c45
...
...
@@ -10,19 +10,23 @@ from django.urls import reverse
from
edx_rest_framework_extensions.auth.jwt.decoder
import
jwt_decode_handler
from
edx_rest_framework_extensions.auth.jwt.middleware
import
JwtAuthCookieMiddleware
from
mock
import
MagicMock
,
patch
from
datetime
import
date
from
openedx.core.djangoapps.user_api.accounts.utils
import
retrieve_last_sitewide_block_completed
from
openedx.core.djangoapps.user_authn
import
cookies
as
cookies_api
from
openedx.core.djangoapps.user_authn.tests.utils
import
setup_login_oauth_client
from
openedx.core.djangolib.testing.utils
import
skip_unless_lms
from
common.djangoapps.student.tests.factories
import
AnonymousUserFactory
,
UserFactory
,
UserProfileFactory
from
openedx.core.djangoapps.profile_images.tests.helpers
import
make_image_file
from
openedx.core.djangoapps.profile_images.images
import
create_profile_images
from
openedx.core.djangoapps.user_api.accounts.image_helpers
import
get_profile_image_names
class
CookieTests
(
TestCase
):
def
setUp
(
self
):
super
(
CookieTests
,
self
).
setUp
()
self
.
user
=
UserFactory
.
create
()
self
.
user
.
profile
=
UserProfileFactory
.
create
()
self
.
user
.
profile
=
UserProfileFactory
.
create
(
user
=
self
.
user
)
self
.
request
=
RequestFactory
().
get
(
'
/
'
)
self
.
request
.
user
=
self
.
user
self
.
request
.
session
=
self
.
_get_stub_session
()
...
...
@@ -32,6 +36,18 @@ class CookieTests(TestCase):
get_expiry_age
=
lambda
:
max_age
,
)
def
_get_expected_image_urls
(
self
):
expected_image_urls
=
{
'
full
'
:
'
/static/default_500.png
'
,
'
large
'
:
'
/static/default_120.png
'
,
'
medium
'
:
'
/static/default_50.png
'
,
'
small
'
:
'
/static/default_30.png
'
}
expected_image_urls
=
cookies_api
.
_convert_to_absolute_uris
(
self
.
request
,
expected_image_urls
)
return
expected_image_urls
def
_get_expected_header_urls
(
self
):
expected_header_urls
=
{
'
logout
'
:
reverse
(
'
logout
'
),
...
...
@@ -40,9 +56,7 @@ class CookieTests(TestCase):
'
learner_profile
'
:
reverse
(
'
learner_profile
'
,
kwargs
=
{
'
username
'
:
self
.
user
.
username
}),
}
# Convert relative URL paths to absolute URIs
for
url_name
,
url_path
in
six
.
iteritems
(
expected_header_urls
):
expected_header_urls
[
url_name
]
=
self
.
request
.
build_absolute_uri
(
url_path
)
expected_header_urls
=
cookies_api
.
_convert_to_absolute_uris
(
self
.
request
,
expected_header_urls
)
return
expected_header_urls
...
...
@@ -86,16 +100,21 @@ class CookieTests(TestCase):
@skip_unless_lms
def
test_get_user_info_cookie_data
(
self
):
with
make_image_file
()
as
image_file
:
create_profile_images
(
image_file
,
get_profile_image_names
(
self
.
user
.
username
))
self
.
user
.
profile
.
profile_image_uploaded_at
=
date
.
today
()
self
.
user
.
profile
.
save
()
actual
=
cookies_api
.
_get_user_info_cookie_data
(
self
.
request
,
self
.
user
)
# pylint: disable=protected-access
expected
=
{
'
version
'
:
settings
.
EDXMKTG_USER_INFO_COOKIE_VERSION
,
'
username
'
:
self
.
user
.
username
,
'
header_urls
'
:
self
.
_get_expected_header_urls
(),
'
image_urls
'
:
self
.
_get_expected_image_urls
(),
}
self
.
assertDictEqual
(
actual
,
expected
)
self
.
assertEqual
(
0
,
1
)
def
test_set_logged_in_cookies_anonymous_user
(
self
):
anonymous_user
=
AnonymousUserFactory
()
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment