Compare commits
14 Commits
Author | SHA1 | Date | |
---|---|---|---|
ab0bcb151b | |||
a3bb22422a | |||
|
0d52c5902c | ||
|
4f9837cc75 | ||
|
b8d958f8b5 | ||
|
43a971c1ef | ||
|
da8dafb627 | ||
|
caf3ff79a3 | ||
|
dc86f9b504 | ||
|
7a958c8fa3 | ||
|
644799445a | ||
|
3eda26893d | ||
|
ef7714b3bf | ||
|
526a40ab84 |
@ -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
|
12
CHANGELOG.md
12
CHANGELOG.md
@ -1,12 +0,0 @@
|
||||
# CHANGE LOG
|
||||
|
||||
## Version 1.0.5 (2022-12-20)
|
||||
|
||||
- version bumps
|
||||
|
||||
## 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:
|
||||
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 "./dist" ]; then sudo rm -r dist; fi
|
||||
|
@ -1 +1 @@
|
||||
__version__ = "1.0.5"
|
||||
__version__ = "1.0.8"
|
||||
|
@ -4,10 +4,6 @@ written by: Lawrence McDaniel
|
||||
|
||||
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
|
||||
from urllib.parse import urlencode
|
||||
@ -16,12 +12,12 @@ from urllib.parse import urljoin
|
||||
from logging import getLogger
|
||||
from social_core.backends.oauth import BaseOAuth2
|
||||
from django.contrib.auth import get_user_model
|
||||
|
||||
from django.conf import settings
|
||||
|
||||
User = get_user_model()
|
||||
logger = getLogger(__name__)
|
||||
|
||||
VERBOSE_LOGGING = True
|
||||
VERBOSE_LOGGING = False
|
||||
|
||||
|
||||
class WPOpenEdxOAuth2(BaseOAuth2):
|
||||
@ -50,12 +46,13 @@ class WPOpenEdxOAuth2(BaseOAuth2):
|
||||
# Third Party Authentication / Provider Configuration (OAuth)
|
||||
# setup page drop-down box titled, "Backend name:", just above
|
||||
# the "Client ID:" and "Client Secret:" fields.
|
||||
|
||||
name = "wp-oauth"
|
||||
|
||||
# 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.
|
||||
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/
|
||||
PATH = "oauth/"
|
||||
|
||||
@ -110,6 +107,9 @@ class WPOpenEdxOAuth2(BaseOAuth2):
|
||||
# changed to a list. example 'basic, email, profile'. This
|
||||
# list can be delimited with commas, spaces, whatever.
|
||||
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.
|
||||
def _urlopen(self, url):
|
||||
@ -409,28 +409,28 @@ class WPOpenEdxOAuth2(BaseOAuth2):
|
||||
except User.DoesNotExist:
|
||||
return self.user_details
|
||||
|
||||
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.save()
|
||||
logger.info(
|
||||
"Updated the is_superuser/is_staff flags for user {username}".format(
|
||||
username=user.username
|
||||
if self.UPDATE_USER_ON_LOGIN:
|
||||
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.save()
|
||||
logger.info(
|
||||
"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"]
|
||||
):
|
||||
user.first_name = self.user_details["first_name"]
|
||||
user.last_name = self.user_details["last_name"]
|
||||
user.save()
|
||||
logger.info(
|
||||
"Updated first_name/last_name 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"]
|
||||
):
|
||||
user.first_name = self.user_details["first_name"]
|
||||
user.last_name = self.user_details["last_name"]
|
||||
user.save()
|
||||
logger.info(
|
||||
"Updated first_name/last_name for user {username}".format(
|
||||
username=user.username
|
||||
)
|
||||
)
|
||||
)
|
||||
|
||||
return self.user_details
|
||||
|
@ -4,7 +4,7 @@ build-backend = "setuptools.build_meta:__legacy__"
|
||||
|
||||
[project]
|
||||
name = "edx-oauth2-wordpress-backend"
|
||||
version = "1.0.5"
|
||||
version = "1.0.8"
|
||||
authors = [
|
||||
{ name="Lawrence McDaniel", email="lpm0073@gmail.com" },
|
||||
]
|
||||
@ -17,7 +17,7 @@ classifiers = [
|
||||
"Operating System :: OS Independent",
|
||||
]
|
||||
dependencies = [
|
||||
"social-auth-core>=4.2.0",
|
||||
"social-auth-core==4.3.0",
|
||||
"social-auth-app-django==5.0.0"
|
||||
]
|
||||
keywords = ["Open edX", "oauth", "Wordpress"]
|
||||
|
@ -1,3 +1,3 @@
|
||||
# Stable Python Social Auth, found in Open edX Olive
|
||||
social-auth-app-django==5.0.0
|
||||
social-auth-core==4.3.0
|
||||
social-auth-app-django>=5.0.0
|
||||
social-auth-core>=4.3.0
|
||||
|
@ -1,5 +1,5 @@
|
||||
# Packages for testing
|
||||
pytest==7.1.1
|
||||
httpretty==1.1.4
|
||||
pycodestyle==2.8.0
|
||||
pytest>=7.1.1
|
||||
httpretty>=1.1.4
|
||||
pycodestyle>=2.8.0
|
||||
-e .
|
||||
|
6
setup.py
6
setup.py
@ -74,11 +74,9 @@ setup(
|
||||
long_description=README,
|
||||
author="Lawrence McDaniel, 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={
|
||||
"Code": "https://github.com/StepwiseMath/edx-oauth2-wordpress-backend",
|
||||
"Issue tracker": "https://github.com/StepwiseMath/edx-oauth2-wordpress-backend/issues",
|
||||
"Community": "https://stepwisemath.ai",
|
||||
"Code": "https://git.unecon.ru/gevorkyan.aa/edx-oauth2-wordpress-backend"
|
||||
},
|
||||
packages=find_packages(),
|
||||
include_package_data=True,
|
||||
|
Loading…
x
Reference in New Issue
Block a user