| 
									
										
										
										
											2023-07-16 13:09:15 +00:00
										 |  |  | <?php | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | return [ | 
					
						
							|  |  |  |     'mastodon' => [ | 
					
						
							|  |  |  |         'enabled' => env('PF_LOGIN_WITH_MASTODON_ENABLED', false), | 
					
						
							| 
									
										
										
										
											2023-09-27 07:33:39 +00:00
										 |  |  |         'ignore_closed_state' => env('PF_LOGIN_WITH_MASTODON_ENABLED_SKIP_CLOSED', false), | 
					
						
							| 
									
										
										
										
											2023-07-16 13:09:15 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |         'contraints' => [ | 
					
						
							|  |  |  |             /* | 
					
						
							|  |  |  |              *   Skip email verification | 
					
						
							|  |  |  |              * | 
					
						
							|  |  |  |              *   To improve the onboarding experience, you can opt to skip the email | 
					
						
							|  |  |  |              *   verification process and automatically verify their email | 
					
						
							|  |  |  |              */ | 
					
						
							|  |  |  |             'skip_email_verification' => env('PF_LOGIN_WITH_MASTODON_SKIP_EMAIL', true), | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         'domains' => [ | 
					
						
							|  |  |  |             'default' => 'mastodon.social,mastodon.online,mstdn.social,mas.to', | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             /* | 
					
						
							|  |  |  |              *   Custom mastodon domains | 
					
						
							|  |  |  |              * | 
					
						
							|  |  |  |              *   Define a comma separated list of custom domains to allow | 
					
						
							|  |  |  |              */ | 
					
						
							|  |  |  |             'custom' => env('PF_LOGIN_WITH_MASTODON_DOMAINS'), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |             /* | 
					
						
							|  |  |  |              *   Use only default domains | 
					
						
							|  |  |  |              * | 
					
						
							|  |  |  |              *   Allow Sign-in with Mastodon using only the default domains | 
					
						
							|  |  |  |              */ | 
					
						
							| 
									
										
										
										
											2023-07-17 04:54:02 +00:00
										 |  |  |             'only_default' => env('PF_LOGIN_WITH_MASTODON_ONLY_DEFAULT', false), | 
					
						
							| 
									
										
										
										
											2023-07-16 13:09:15 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |             /* | 
					
						
							|  |  |  |              *   Use only custom domains | 
					
						
							|  |  |  |              * | 
					
						
							|  |  |  |              *   Allow Sign-in with Mastodon using only the custom domains | 
					
						
							|  |  |  |              *   you define, in comma separated format | 
					
						
							|  |  |  |              */ | 
					
						
							|  |  |  |             'only_custom' => env('PF_LOGIN_WITH_MASTODON_ONLY_CUSTOM', false), | 
					
						
							|  |  |  |         ], | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         'max_uses' => [ | 
					
						
							|  |  |  |             /* | 
					
						
							|  |  |  |              *   Max Uses | 
					
						
							|  |  |  |              * | 
					
						
							|  |  |  |              *   Using a centralized service operated by pixelfed.org that tracks mastodon imports, | 
					
						
							|  |  |  |              *   you can set a limit of how many times a mastodon account can be imported across | 
					
						
							|  |  |  |              *   all known and reporting Pixelfed instances to prevent the same masto account from | 
					
						
							|  |  |  |              *   abusing this | 
					
						
							|  |  |  |              */ | 
					
						
							|  |  |  |             'enabled' => env('PF_LOGIN_WITH_MASTODON_ENFORCE_MAX_USES', true), | 
					
						
							|  |  |  |             'limit' => env('PF_LOGIN_WITH_MASTODON_MAX_USES_LIMIT', 3) | 
					
						
							|  |  |  |         ] | 
					
						
							|  |  |  |     ], | 
					
						
							| 
									
										
											  
											
												Staging (#5978)
* Added current title as value for input so that the current value remains stored by default
* Added parameter 'show_legal_notice_link' => (bool) config_cache('instance.has_legal_notice'),
* Added conditional display of a link to legal notice if the page is active
* Added key 'legalNotice'
* feat translate story
* translate auth
- register
- login
* add remove follow
* Update ApiV1Controller.php
Co-Authored-By: Mathieu <385764+Casmo@users.noreply.github.com>
* New translations web.php (Chinese Simplified)
[ci skip]
* Added current title as value for input so that the current value remains stored by default
* Added parameter 'show_legal_notice_link' => (bool) config_cache('instance.has_legal_notice'),
* Added conditional display of a link to legal notice if the page is active
* Added key 'legalNotice'
* add missing key
* add missing keys
* New translations web.php (Portuguese, Brazilian)
[ci skip]
* New translations web.php (Turkish)
[ci skip]
* New translations web.php (Italian)
[ci skip]
* translate custom  filter
* New translations web.php (Italian)
[ci skip]
* use configured alt text length limit when uploading multiple photos
* in notifications sidebar, show popover on shared posts too, not just liked posts
* use case insensitive search when tagging accounts
* New translations web.php (Portuguese, Brazilian)
[ci skip]
* Generic OIDC Support
* Everything should be configurable by env variables
* Basic request tests
* Fixes for items highlighted by review.ai
* Consider using `hash_equals()` instead of `==` when comparing the state values to prevent timing attacks:
`abort_unless(hash_equals($request->input('state'), $request->session()->pull('oauth2state')), 400, 'invalid
state');`
* For better data integrity, consider adding a foreign key constraint to the user_id column: `$table-
>foreign('user_id')->references('id')->on('users')->onDelete('cascade');`
* Does the OIDC provider guarantee that the username field exists in the userInfo data? Consider adding a
null check or fallback: `$userInfoData[config('remote-auth.oidc.field_username')] ?? null`
* field isnt accessTokenResourceOwnerId but responseResourceOwnerId
* New translations web.php (Dutch)
[ci skip]
* Fix components
* Update LandingService and Config util to properly support the legal_notice setting
* Update footer to use legalNotice i18n
* Update i18n
* Update sidebar with gap padding for footer links
* Update compiled assets
* Update i18n json
* Update OIDC config with comments, and disable tests as we dont have db tests configured
* Update remove_from_followers api endpoint
* Update i18n
* Update compiled assets
* Update changelog
* New supported formats, Preserve ICC Color Profiles, libvips support
Update image pipeline to handle avif, heic and webp and preserve ICC color profiles and added libvips support.
* Fix tests
* Update CHANGELOG.md
---------
Co-authored-by: Samy Elshamy <elshamy@coderbutze.de>
Co-authored-by: Felipe Mateus <eu@felipemateus.com>
Co-authored-by: Mathieu <385764+Casmo@users.noreply.github.com>
Co-authored-by: Mackenzie Morgan <macoafi@gmail.com>
Co-authored-by: Gavin Mogan <git@gavinmogan.com>
											
										 
											2025-05-13 08:25:23 +00:00
										 |  |  | 
 | 
					
						
							|  |  |  |     'oidc' => [ | 
					
						
							|  |  |  |         /* | 
					
						
							|  |  |  |          *   Enable OIDC authentication | 
					
						
							|  |  |  |          * | 
					
						
							|  |  |  |          *   Enable Sign-in with OpenID Connect (OIDC) authentication providers | 
					
						
							|  |  |  |          */ | 
					
						
							|  |  |  |         'enabled' => env('PF_OIDC_ENABLED', false), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /* | 
					
						
							|  |  |  |          *   Client ID | 
					
						
							|  |  |  |          * | 
					
						
							|  |  |  |          *   The client ID provided by your OIDC provider | 
					
						
							|  |  |  |          */ | 
					
						
							|  |  |  |         'clientId' => env('PF_OIDC_CLIENT_ID', false), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /* | 
					
						
							|  |  |  |          *   Client Secret | 
					
						
							|  |  |  |          * | 
					
						
							|  |  |  |          *   The client secret provided by your OIDC provider | 
					
						
							|  |  |  |          */ | 
					
						
							|  |  |  |         'clientSecret' => env('PF_OIDC_CLIENT_SECRET', false), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /* | 
					
						
							|  |  |  |          *   OAuth Scopes | 
					
						
							|  |  |  |          * | 
					
						
							|  |  |  |          *   The scopes to request from the OIDC provider, typically including | 
					
						
							|  |  |  |          *   'openid' (required), 'profile', and 'email' for basic user information | 
					
						
							|  |  |  |          */ | 
					
						
							|  |  |  |         'scopes' =>  env('PF_OIDC_SCOPES', 'openid profile email'), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /* | 
					
						
							|  |  |  |          *   Authorization URL | 
					
						
							|  |  |  |          * | 
					
						
							|  |  |  |          *   The endpoint used to start the OIDC authentication flow | 
					
						
							|  |  |  |          */ | 
					
						
							|  |  |  |         'authorizeURL' => env('PF_OIDC_AUTHORIZE_URL', ''), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /* | 
					
						
							|  |  |  |          *   Token URL | 
					
						
							|  |  |  |          * | 
					
						
							|  |  |  |          *   The endpoint used to exchange the authorization code for an access token | 
					
						
							|  |  |  |          */ | 
					
						
							|  |  |  |         'tokenURL' => env('PF_OIDC_TOKEN_URL', ''), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /* | 
					
						
							|  |  |  |          *   Profile URL | 
					
						
							|  |  |  |          * | 
					
						
							|  |  |  |          *   The endpoint used to retrieve user information with a valid access token | 
					
						
							|  |  |  |          */ | 
					
						
							|  |  |  |         'profileURL' => env('PF_OIDC_PROFILE_URL', ''), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /* | 
					
						
							|  |  |  |          *   Logout URL | 
					
						
							|  |  |  |          * | 
					
						
							|  |  |  |          *   The endpoint used to log the user out of the OIDC provider | 
					
						
							|  |  |  |          */ | 
					
						
							|  |  |  |         'logoutURL' => env('PF_OIDC_LOGOUT_URL', ''), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /* | 
					
						
							|  |  |  |          *   Username Field | 
					
						
							|  |  |  |          * | 
					
						
							|  |  |  |          *   The field from the OIDC profile response to use as the username | 
					
						
							|  |  |  |          *   Default is 'preferred_username' but can be changed based on your provider | 
					
						
							|  |  |  |          */ | 
					
						
							|  |  |  |         'field_username' => env('PF_OIDC_USERNAME_FIELD', "preferred_username"), | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  |         /* | 
					
						
							|  |  |  |          *   ID Field | 
					
						
							|  |  |  |          * | 
					
						
							|  |  |  |          *   The field from the OIDC profile response to use as the unique identifier | 
					
						
							|  |  |  |          *   Default is 'sub' (subject) which is standard in OIDC implementations | 
					
						
							|  |  |  |          */ | 
					
						
							|  |  |  |         'field_id' => env('PF_OIDC_FIELD_ID', 'sub'), | 
					
						
							|  |  |  |     ], | 
					
						
							| 
									
										
										
										
											2023-07-16 13:09:15 +00:00
										 |  |  | ]; |