79 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
			
		
		
	
	
			79 lines
		
	
	
		
			2.3 KiB
		
	
	
	
		
			PHP
		
	
	
	
	
	
| <?php
 | |
| 
 | |
| /**
 | |
|  * Cloudron SSO
 | |
|  *
 | |
|  * This plugin provides default settings for Cloudron SSO
 | |
|  *
 | |
|  * @package   Cloudron SSO
 | |
|  * @category  General
 | |
|  * @author    Cloudron
 | |
|  * @copyright 2024 Cloudron
 | |
|  * @license   http://www.gnu.org/licenses/gpl-2.0.txt GPL-2.0+
 | |
|  * @link      https://git.cloudron.io/cloudron/wordpress-managed-app
 | |
|  *
 | |
|  * @wordpress-plugin
 | |
|  * Plugin Name:       Cloudron SSO
 | |
|  * Plugin URI:        https://git.cloudron.io/cloudron/wordpress-managed-app
 | |
|  * Description:       Cloudron SSO Settings
 | |
|  * Version:           1.0.0
 | |
|  * Requires at least: 5.0
 | |
|  * Requires PHP:      7.4
 | |
|  * Author:            Cloudron
 | |
|  * Author URI:        http://cloudron.io
 | |
|  * Text Domain:       cloudron-sso
 | |
|  * Domain Path:       /languages
 | |
|  * License:           GPL-2.0+
 | |
|  * License URI:       http://www.gnu.org/licenses/gpl-2.0.txt
 | |
|  * Requires Plugins:  openid-connect-generic
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * openid-connect-generic plugin tweaks
 | |
|  */
 | |
| 
 | |
| /**
 | |
|  * Change login button text
 | |
|  */
 | |
| add_filter('openid-connect-generic-login-button-text', function( $text ) {
 | |
|     $text = __('Login with Cloudron');
 | |
|     
 | |
|     return $text;
 | |
| });
 | |
| 
 | |
| /**
 | |
|  * Set a default role on OIDC user creating
 | |
|  */
 | |
| add_filter('openid-connect-generic-alter-user-data', function( $user_data, $user_claim ) {
 | |
|     // Don't register any user with their real email address. Create a fake internal address.
 | |
|     if ( empty( $user_data['role'] ) ) {
 | |
|         $settings = get_option( 'openid_connect_generic_settings', [] );
 | |
|         $user_data['role'] = isset( $settings['default_role'] ) && ! empty( $settings['default_role'] ) ? $settings['default_role'] : 'editor';
 | |
|     }
 | |
| 
 | |
|     return $user_data;
 | |
| }, 10, 2);
 | |
| 
 | |
| /**
 | |
|  * Add default role select box on the settings page of openid-connect-generic plugin
 | |
|  */
 | |
| add_filter('openid-connect-generic-settings-fields', function( $fields ) {
 | |
| 
 | |
|     $editable_roles = wp_roles()->roles;
 | |
|     $roles = [];
 | |
|     foreach ($editable_roles as $role => $details) {
 | |
|         $roles[ esc_attr( $role ) ] = translate_user_role( $details['name'] );
 | |
|     }
 | |
| 
 | |
|     // A select field for default user role
 | |
|     $fields['default_role'] = array(
 | |
|         'title' => __( 'Default user role', 'cloudron-sso' ),
 | |
|         'description' => __( 'A role set to OIDC users.', 'cloudron-sso' ),
 | |
|         'type' => 'select',
 | |
|         'options' => $roles,
 | |
|         'section' => 'user_settings',
 | |
|     );
 | |
| 
 | |
|     return $fields;
 | |
| });
 |