Compare commits
15 Commits
Author | SHA1 | Date | |
---|---|---|---|
ab0bcb151b | |||
a3bb22422a | |||
|
0d52c5902c | ||
|
4f9837cc75 | ||
|
b8d958f8b5 | ||
|
43a971c1ef | ||
|
da8dafb627 | ||
|
caf3ff79a3 | ||
|
dc86f9b504 | ||
|
7a958c8fa3 | ||
|
644799445a | ||
|
3eda26893d | ||
|
ef7714b3bf | ||
|
526a40ab84 | ||
|
e4bb3ac4be |
@ -1,7 +0,0 @@
|
|||||||
repos:
|
|
||||||
- repo: https://github.com/pre-commit/pre-commit-hooks
|
|
||||||
rev: v2.3.0
|
|
||||||
hooks:
|
|
||||||
- id: check-yaml
|
|
||||||
- id: end-of-file-fixer
|
|
||||||
- id: trailing-whitespace
|
|
@ -1,8 +0,0 @@
|
|||||||
# CHANGE LOG
|
|
||||||
|
|
||||||
## Version 1.0.4 (2022-11-09)
|
|
||||||
|
|
||||||
- add property for URL
|
|
||||||
- add class variables for PATH, AUTHORIZATION_ENDPOINT, TOKEN_ENDPOINT, USERINFO_ENDPOINT
|
|
||||||
- switch to urllib.parse urljoin()
|
|
||||||
- add a Makefile
|
|
2
Makefile
2
Makefile
@ -9,7 +9,7 @@ report:
|
|||||||
|
|
||||||
build:
|
build:
|
||||||
python3 -m pip install --upgrade setuptools wheel twine
|
python3 -m pip install --upgrade setuptools wheel twine
|
||||||
python -m pip install --upgrade build
|
python3 -m pip install --upgrade build
|
||||||
|
|
||||||
if [ -d "./build" ]; then sudo rm -r build; fi
|
if [ -d "./build" ]; then sudo rm -r build; fi
|
||||||
if [ -d "./dist" ]; then sudo rm -r dist; fi
|
if [ -d "./dist" ]; then sudo rm -r dist; fi
|
||||||
|
@ -1 +1 @@
|
|||||||
__version__ = "1.0.4"
|
__version__ = "1.0.8"
|
||||||
|
@ -4,10 +4,6 @@ written by: Lawrence McDaniel
|
|||||||
|
|
||||||
date: oct-2022
|
date: oct-2022
|
||||||
|
|
||||||
usage: subclass of BaseOAuth2 Third Party Authtencation client to
|
|
||||||
handle the field mapping and data conversions between
|
|
||||||
the dict that WP Oauth returns versus the dict that Open edX
|
|
||||||
actually needs.
|
|
||||||
"""
|
"""
|
||||||
import json
|
import json
|
||||||
from urllib.parse import urlencode
|
from urllib.parse import urlencode
|
||||||
@ -16,12 +12,12 @@ from urllib.parse import urljoin
|
|||||||
from logging import getLogger
|
from logging import getLogger
|
||||||
from social_core.backends.oauth import BaseOAuth2
|
from social_core.backends.oauth import BaseOAuth2
|
||||||
from django.contrib.auth import get_user_model
|
from django.contrib.auth import get_user_model
|
||||||
|
from django.conf import settings
|
||||||
|
|
||||||
User = get_user_model()
|
User = get_user_model()
|
||||||
logger = getLogger(__name__)
|
logger = getLogger(__name__)
|
||||||
|
|
||||||
VERBOSE_LOGGING = True
|
VERBOSE_LOGGING = False
|
||||||
|
|
||||||
|
|
||||||
class WPOpenEdxOAuth2(BaseOAuth2):
|
class WPOpenEdxOAuth2(BaseOAuth2):
|
||||||
@ -50,12 +46,13 @@ class WPOpenEdxOAuth2(BaseOAuth2):
|
|||||||
# Third Party Authentication / Provider Configuration (OAuth)
|
# Third Party Authentication / Provider Configuration (OAuth)
|
||||||
# setup page drop-down box titled, "Backend name:", just above
|
# setup page drop-down box titled, "Backend name:", just above
|
||||||
# the "Client ID:" and "Client Secret:" fields.
|
# the "Client ID:" and "Client Secret:" fields.
|
||||||
|
|
||||||
name = "wp-oauth"
|
name = "wp-oauth"
|
||||||
|
|
||||||
# note: no slash at the end of the base url. Python Social Auth
|
# note: no slash at the end of the base url. Python Social Auth
|
||||||
# might clean this up for you, but i'm not 100% certain of that.
|
# might clean this up for you, but i'm not 100% certain of that.
|
||||||
BASE_URL = "https://set-me-please.com"
|
BASE_URL = settings.FEATURES.get('WP_PROVIDER_URL')
|
||||||
|
|
||||||
# a path to append to the BASE_URL: https://oauth_host.com/oauth/
|
# a path to append to the BASE_URL: https://oauth_host.com/oauth/
|
||||||
PATH = "oauth/"
|
PATH = "oauth/"
|
||||||
|
|
||||||
@ -110,6 +107,9 @@ class WPOpenEdxOAuth2(BaseOAuth2):
|
|||||||
# changed to a list. example 'basic, email, profile'. This
|
# changed to a list. example 'basic, email, profile'. This
|
||||||
# list can be delimited with commas, spaces, whatever.
|
# list can be delimited with commas, spaces, whatever.
|
||||||
SCOPE_SEPARATOR = " "
|
SCOPE_SEPARATOR = " "
|
||||||
|
|
||||||
|
# Enable updates on the Django user object on successful WordPress login.
|
||||||
|
UPDATE_USER_ON_LOGIN = True
|
||||||
|
|
||||||
# private utility function. not part of psa.
|
# private utility function. not part of psa.
|
||||||
def _urlopen(self, url):
|
def _urlopen(self, url):
|
||||||
@ -409,28 +409,28 @@ class WPOpenEdxOAuth2(BaseOAuth2):
|
|||||||
except User.DoesNotExist:
|
except User.DoesNotExist:
|
||||||
return self.user_details
|
return self.user_details
|
||||||
|
|
||||||
if (user.is_superuser != self.user_details["is_superuser"]) or (
|
if self.UPDATE_USER_ON_LOGIN:
|
||||||
user.is_staff != self.user_details["is_staff"]
|
if (user.is_superuser != self.user_details["is_superuser"]) or (
|
||||||
):
|
user.is_staff != self.user_details["is_staff"]
|
||||||
user.is_superuser = self.user_details["is_superuser"]
|
):
|
||||||
user.is_staff = self.user_details["is_staff"]
|
user.is_superuser = self.user_details["is_superuser"]
|
||||||
user.save()
|
user.is_staff = self.user_details["is_staff"]
|
||||||
logger.info(
|
user.save()
|
||||||
"Updated the is_superuser/is_staff flags for user {username}".format(
|
logger.info(
|
||||||
username=user.username
|
"Updated the is_superuser/is_staff flags for user {username}".format(
|
||||||
|
username=user.username
|
||||||
|
)
|
||||||
)
|
)
|
||||||
)
|
if (user.first_name != self.user_details["first_name"]) or (
|
||||||
|
user.last_name != self.user_details["last_name"]
|
||||||
if (user.first_name != self.user_details["first_name"]) or (
|
):
|
||||||
user.last_name != self.user_details["last_name"]
|
user.first_name = self.user_details["first_name"]
|
||||||
):
|
user.last_name = self.user_details["last_name"]
|
||||||
user.first_name = self.user_details["first_name"]
|
user.save()
|
||||||
user.last_name = self.user_details["last_name"]
|
logger.info(
|
||||||
user.save()
|
"Updated first_name/last_name for user {username}".format(
|
||||||
logger.info(
|
username=user.username
|
||||||
"Updated first_name/last_name for user {username}".format(
|
)
|
||||||
username=user.username
|
|
||||||
)
|
)
|
||||||
)
|
|
||||||
|
|
||||||
return self.user_details
|
return self.user_details
|
||||||
|
@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta:__legacy__"
|
|||||||
|
|
||||||
[project]
|
[project]
|
||||||
name = "edx-oauth2-wordpress-backend"
|
name = "edx-oauth2-wordpress-backend"
|
||||||
version = "1.0.4"
|
version = "1.0.8"
|
||||||
authors = [
|
authors = [
|
||||||
{ name="Lawrence McDaniel", email="lpm0073@gmail.com" },
|
{ name="Lawrence McDaniel", email="lpm0073@gmail.com" },
|
||||||
]
|
]
|
||||||
@ -17,7 +17,7 @@ classifiers = [
|
|||||||
"Operating System :: OS Independent",
|
"Operating System :: OS Independent",
|
||||||
]
|
]
|
||||||
dependencies = [
|
dependencies = [
|
||||||
"social-auth-core>=4.2.0",
|
"social-auth-core==4.3.0",
|
||||||
"social-auth-app-django==5.0.0"
|
"social-auth-app-django==5.0.0"
|
||||||
]
|
]
|
||||||
keywords = ["Open edX", "oauth", "Wordpress"]
|
keywords = ["Open edX", "oauth", "Wordpress"]
|
||||||
|
@ -1,3 +1,3 @@
|
|||||||
# Stable Python Social Auth, found in Open edX Olive
|
# Stable Python Social Auth, found in Open edX Olive
|
||||||
social-auth-app-django==5.0.0
|
social-auth-app-django>=5.0.0
|
||||||
social-auth-core==4.3.0
|
social-auth-core>=4.3.0
|
||||||
|
@ -1,5 +1,5 @@
|
|||||||
# Packages for testing
|
# Packages for testing
|
||||||
pytest==7.1.1
|
pytest>=7.1.1
|
||||||
httpretty==1.1.4
|
httpretty>=1.1.4
|
||||||
pycodestyle==2.8.0
|
pycodestyle>=2.8.0
|
||||||
-e .
|
-e .
|
||||||
|
6
setup.py
6
setup.py
@ -74,11 +74,9 @@ setup(
|
|||||||
long_description=README,
|
long_description=README,
|
||||||
author="Lawrence McDaniel, lpm0073@gmail.com",
|
author="Lawrence McDaniel, lpm0073@gmail.com",
|
||||||
author_email="lpm0073@gmail.com",
|
author_email="lpm0073@gmail.com",
|
||||||
url="https://github.com/StepwiseMath/edx-oauth2-wordpress-backend",
|
url="https://git.unecon.ru/gevorkyan.aa/edx-oauth2-wordpress-backend",
|
||||||
project_urls={
|
project_urls={
|
||||||
"Code": "https://github.com/StepwiseMath/edx-oauth2-wordpress-backend",
|
"Code": "https://git.unecon.ru/gevorkyan.aa/edx-oauth2-wordpress-backend"
|
||||||
"Issue tracker": "https://github.com/StepwiseMath/edx-oauth2-wordpress-backend/issues",
|
|
||||||
"Community": "https://stepwisemath.ai",
|
|
||||||
},
|
},
|
||||||
packages=find_packages(),
|
packages=find_packages(),
|
||||||
include_package_data=True,
|
include_package_data=True,
|
||||||
|
Loading…
x
Reference in New Issue
Block a user