fairlogin social ID provider (#6096)

* fairlogin

adding fairlogin provider

* fairlogin

add fairlogin provider

* fairlogin

* fairlogin

* fairlogin userid

fairlogin userid corrected to preferred_username

* removed trailing white space

* removed trailing white space

removing white space mourned by automated code review
This commit is contained in:
Roland 2018-09-25 12:05:46 +02:00 committed by Rushabh Mehta
parent 28b9094353
commit 2a2e3ca0af
4 changed files with 29 additions and 3 deletions

View file

@ -93,7 +93,7 @@
"label": "Social Login Provider",
"length": 0,
"no_copy": 0,
"options": "Custom\nFacebook\nFrappe\nGitHub\nGoogle\nOffice 365\nSalesforce",
"options": "Custom\nFacebook\nFrappe\nGitHub\nGoogle\nOffice 365\nSalesforce\nfairlogin",
"permlevel": 0,
"precision": "",
"print_hide": 0,
@ -660,7 +660,7 @@
"issingle": 0,
"istable": 0,
"max_attachments": 0,
"modified": "2018-01-13 21:19:37.800121",
"modified": "2018-09-15 09:00:00.000000",
"modified_by": "Administrator",
"module": "Integrations",
"name": "Social Login Key",
@ -697,4 +697,4 @@
"title_field": "provider_name",
"track_changes": 1,
"track_seen": 0
}
}

View file

@ -137,6 +137,24 @@ class SocialLoginKey(Document):
})
}
providers["fairlogin"] = {
"provider_name": "fairlogin",
"enable_social_login": 1,
"base_url": "https://id.fairkom.net/auth/realms/fairlogin/",
"custom_base_url": 0,
"icon":"fa fa-key",
"redirect_url": "/api/method/frappe.integrations.oauth2_logins.login_via_fairlogin",
"api_endpoint": "https://id.fairkom.net/auth/realms/fairlogin/protocol/openid-connect/userinfo",
"api_endpoint_args":None,
"authorize_url": "https://id.fairkom.net/auth/realms/fairlogin/protocol/openid-connect/auth",
"access_token_url": "https://id.fairkom.net/auth/realms/fairlogin/protocol/openid-connect/token",
"auth_url_data": json.dumps({
"response_type": "code",
"scope": "openid"
})
}
# Initialize the doc and return, used in patch
# Or can be used for creating key from controller
if initialize and provider:

View file

@ -30,3 +30,7 @@ def login_via_office365(code, state):
@frappe.whitelist(allow_guest=True)
def login_via_salesforce(code, state):
login_via_oauth2("salesforce", code, state, decoder=json.loads)
@frappe.whitelist(allow_guest=True)
def login_via_fairlogin(code, state):
login_via_oauth2("fairlogin", code, state, decoder=json.loads)

View file

@ -267,6 +267,10 @@ def update_oauth_user(user, data, provider):
save = True
user.set_social_login_userid(provider, userid="/".join(data["sub"].split("/")[-2:]))
elif provider=="fairlogin" and not user.get_social_login_userid(provider):
save = True
user.set_social_login_userid(provider, userid=data["preferred_username"])
if save:
user.flags.ignore_permissions = True
user.flags.no_welcome_mail = True