* Added Salesforce Social Login
* [Docs] Generate client_id client_secret for login providers
* [Fix] salesforce userid
Saleforce sub from openid is https://login.salesforce.com/id/ABC/XYZ
Extracting ABC/XYZ
* Logout from all sessions on password change
Add checkbox to logout from all sessions
If checked logout from all sessions
https://github.com/frappe/frappe/issues/4383
* Changed spaces to tabs
* Send logout_all_sessions as 0 or 1
Convert it to in on server side and pass to update_password
* changed logout_all_sessions from bolean to int
* Move checkbox inside form
* Added DocType Social Login Key
WIP for https://github.com/frappe/frappe/issues/4496
added basic fields
after_insert add provider_username and provider_userid fields on User dt
on_trash deletes added fields on User dt
* Added field to store fontawesome icon for provider
* [Patch] Social Login Keys to Social Login Key
* [Patch] Social Login Keys to Social Login Key
* Social Login Key generates boilerplate
* patch fixed for social_login_refactor
* removed patch-not working
* use social login keys to initiate flow
* Login page shows Social Login Key
* show login via if base_url present
* removed boilerplate generator
* Multiple Changes
fix zxcvbn import in password_strength.py
use of child table instead of additional fields on user dt to store username and userid
* Fetched Template on Client JS
* Frappe social login template working
* Added Social Login Key Templates
* Codacy fixes and validate social login key urls
* [Patch] Social Login Keys (untested)
* [Fix] Patch refactor social login keys
* [Fix] Patch refactor_social_login_keys manually tested
* Refactor OAuth 2.0 related changes for Social Login Key
* [Fix] Patch refactor social login keys
* Test - Adding Frappe Social Login Key
* Social Login Key Tests
check added child table entry on user for provider frappe
it also checks if userid is created
* [WIP] Office 365 Social Login Key Template
* [Fix] Social Login - Redirect URL
* [Test] Single sign-on icons for added provider
* [Fix] Codacy Errors
* [Fix] Social Login Key Form JS
* Docs Added for Social Login Key
* [Fix] Patch Refactor Social Login Keys
* Handle different icon types
Handle different icon types (image, icon, emoji) with just icon field
* Move the login methods to a new py file
frappe.integrations.oauth2_logins added
copied whitelisted guest oauth2 redirect endpoints from login.py
removing the functions from login.py will break backward compatibility
* Social Login Key Form Changes
Moved Enable field to top
Fields which are not editable are collapsed
* [Fix] Codacy Errors
* Corrected Docs, sync.py
* [Docs] Adding a social login provider
* [Fix] set frappe userid from User Social Login
* [Fix] frappe userid in oauth.py
* removed icon_type
* Use frappe.utils.is_image
* created/moved the files
* added the model for the downloading the data
* add the file with the error data
* changes added other changes and fix codacy
* changes in the config and utils files
* fixed the test cases
* minor changes in the data keys dict
* changed the test file location
* fixed the tests
* set the route in the list view and show only erors
* minor fixes in the childtable import and log tables rendering
* Refactor Download dialog to use MultiCheck
* [HOTFIX] fix currency issue on print
* [HOTFIX] fix currency issue on print
* added value check for format
* added value check for format
* fix codacy
* multicheck control
* [checkboxes] replace in domain settings
* [checkboxes] use in setup_wizard domains
* [multicheck] minor
* [multicheck] set and get value as an array
* [multicheck] make controls.less
* basic view control with value as array object
* load active domains
* selenium helper: multicheck
* [multicheck] make field if not present
* [multicheck] append control in an HTML field
* added PyMYSQL instead mysqlclient-python
* added pymysql import
* fixed db module import
* foxed self._conn wrapper
* updated cursor migration
* removed existent converters
* some more fixes towards API port
* modified travis
* updated doctype and revereted yml
* modified travis
* refreshed logging
* raw fix
* moved from hard coded constants to declarable instances
* moved from hard coded constants to declarable instances
* refactoring and logging
* moved to global import declaration
* fixed codacy
* unfixed codacy
* minor fix
* binary_type has a single
* deprecated alternative
* merged with latest
* fixed merge conflicts
* using deprecated alternative
* raw fix
* stupid fix
* using StringTypes instead
* brutal hack
* log
* tundebazy to the rescue
* fixed content_hash error
* frappe/database.py
* frappe/database.py
* updated database.py
* updated requirements
* updated requirements
* fixed codacy
* fixed codacy
* moved from DatabaseOperationalError to pymysql.InternalError
* moved from DatabaseOperationalError to pymysql.InternalError
* fixed codacy
* empty commit
* fixed codacy
* fixed codacy
* Add get_source_value to utils, and use it to get value from object or dict
* GitHub connector
* fix codacy
* remove print statement
* Remove Github Connector
* Data Migration Connector
- Create new connection with boilerplate
- Add Run button in Data Migration Plan
* minor
* fix codacy
* remove pygithub
* Minor
- Remove button from form and add to custom button
- Remove is_custom field
- Add Connector Type 'Custom'
- Show New Connection button only in developer mode
* [fix] logging
- only store the name, not the whole json
* [fix] tests
* - trigger new "cron" event
- check cron string syntax
- added croniter to requirements
* - run scheduler ever 60 sec
- trigger all enabled events
- enqueue if now >= next time execution since last one
* Update task-runner.md
* fixed tests
* fix triggering with now = True
* modified sobstitution to cron_map
modified annually label to annual
* ability to use labels defined in cron_map in cron string definition