Skip to content

Commit

Permalink
Added a site setting to hide 'Already have an account? Sign in' (#5985)
Browse files Browse the repository at this point in the history
* Added a site setting to hide 'Already have an account? Sign in'

* Eslint
  • Loading branch information
farhatahmad authored Jan 30, 2025
1 parent 5e1dbb4 commit f9309d9
Show file tree
Hide file tree
Showing 7 changed files with 47 additions and 5 deletions.
4 changes: 3 additions & 1 deletion app/assets/locales/en.json
Original file line number Diff line number Diff line change
Expand Up @@ -296,7 +296,9 @@
"allow_users_to_share_rooms": "Allow Users to Share Rooms",
"allow_users_to_share_rooms_description": "Setting to disabled will remove the button from the room options dropdown, preventing users from sharing rooms",
"allow_users_to_preupload_presentation": "Allow Users to Preupload Presentations",
"allow_users_to_preupload_presentation_description": "Users can preupload a presentation to be used as the default presentation for that specific room",
"allow_users_to_preupload_presentation_description": "Users can preupload a presentation to be used as the default presentation for that specific room", "allow_users_to_preupload_presentation": "Allow Users to Preupload Presentations",
"show_sign_in_on_room_join": "Show Sign In Link on Room Join",
"show_sign_in_on_room_join_description": "If the user is not signed in, a sign-in link appears at the bottom of the card when entering a room",
"default_visibility": "Default Recording Visibility",
"default_visibility_description": "All newly created recordings will have this visibility by default",
"session_timeout": "Session Timeout",
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,9 @@ import useRoles from '../../../../hooks/queries/admin/roles/useRoles';
export default function Registration() {
const { t } = useTranslation();
const { data: env } = useEnv();
const { data: siteSettings } = useSiteSettings(['RoleMapping', 'DefaultRole', 'ResyncOnLogin', 'RegistrationMethod', 'AllowedDomains']);
const { data: siteSettings } = useSiteSettings(
['RoleMapping', 'DefaultRole', 'ResyncOnLogin', 'SignInOnRoomJoin', 'RegistrationMethod', 'AllowedDomains'],
);
const { data: roles } = useRoles();
const updateRegistrationMethod = useUpdateSiteSetting('RegistrationMethod');
const updateDefaultRole = useUpdateSiteSetting('DefaultRole');
Expand Down Expand Up @@ -82,6 +84,17 @@ export default function Registration() {
}
</SettingSelect>

<SettingsRow
name="SignInOnRoomJoin"
title={t('admin.site_settings.settings.show_sign_in_on_room_join')}
description={(
<p className="text-muted">
{t('admin.site_settings.settings.show_sign_in_on_room_join_description')}
</p>
)}
value={siteSettings?.SignInOnRoomJoin}
/>

<Row className="mb-3">
<strong> { t('admin.site_settings.registration.role_mapping_by_email') } </strong>
<p className="text-muted"> { t('admin.site_settings.registration.role_mapping_by_email_description') } </p>
Expand Down
4 changes: 3 additions & 1 deletion app/javascript/components/rooms/room/join/JoinCard.jsx
Original file line number Diff line number Diff line change
Expand Up @@ -44,6 +44,7 @@ import ButtonLink from '../../../shared_components/utilities/ButtonLink';
import Title from '../../../shared_components/utilities/Title';
import useRoomConfigValue from '../../../../hooks/queries/rooms/useRoomConfigValue';
import usePublicRecordings from '../../../../hooks/queries/recordings/usePublicRecordings';
import useSiteSetting from '../../../../hooks/queries/site_settings/useSiteSetting';

export default function JoinCard() {
const { t } = useTranslation();
Expand All @@ -58,6 +59,7 @@ export default function JoinCard() {

const { data: env } = useEnv();
const { data: recordValue } = useRoomConfigValue('record');
const { data: signInOnRoomJoin } = useSiteSetting('SignInOnRoomJoin');

const { methods, fields } = useRoomJoinForm();

Expand Down Expand Up @@ -272,7 +274,7 @@ export default function JoinCard() {
)}
</Row>
<Row>
{!currentUser?.signed_in && (
{ signInOnRoomJoin && !currentUser?.signed_in && (
env?.EXTERNAL_AUTH ? (
<Stack direction="horizontal" className="d-flex justify-content-center text-muted mt-3"> {t('authentication.already_have_account')}
<RegularForm action={process.env.OMNIAUTH_PATH} method="POST" data-turbo="false">
Expand Down
3 changes: 2 additions & 1 deletion app/services/tenant_setup.rb
Original file line number Diff line number Diff line change
Expand Up @@ -57,7 +57,8 @@ def create_site_settings
{ setting: Setting.find_by(name: 'DefaultRecordingVisibility'), provider: @provider, value: 'Published' },
{ setting: Setting.find_by(name: 'Maintenance'), provider: @provider, value: '' },
{ setting: Setting.find_by(name: 'SessionTimeout'), provider: @provider, value: '1' },
{ setting: Setting.find_by(name: 'AllowedDomains'), value: '', provider: @provider }
{ setting: Setting.find_by(name: 'AllowedDomains'), value: '', provider: @provider },
{ setting: Setting.find_by(name: 'SignInOnRoomJoin'), value: 'true', provider: @provider }
]
end

Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,23 @@
# frozen_string_literal: true

class AddSignInOnRoomJoinToSiteSettings < ActiveRecord::Migration[7.1]
def up
setting = Setting.find_or_create_by(name: 'SignInOnRoomJoin')

SiteSetting.create!(setting:, value: 'true', provider: 'greenlight') unless SiteSetting.exists?(setting:, provider: 'greenlight')

Tenant.find_each do |tenant|
SiteSetting.create!(setting:, value: 'true', provider: tenant.name) unless SiteSetting.exists?(setting:, provider: tenant.name)
end
end

def down
Tenant.find_each do |tenant|
SiteSetting.find_by(setting: Setting.find_by(name: 'SignInOnRoomJoin'), provider: tenant.name)&.destroy
end

SiteSetting.find_by(setting: Setting.find_by(name: 'SignInOnRoomJoin'), provider: 'greenlight')&.destroy

Setting.find_by(name: 'SignInOnRoomJoin')&.destroy
end
end
2 changes: 1 addition & 1 deletion db/data_schema.rb
Original file line number Diff line number Diff line change
@@ -1 +1 @@
DataMigrate::Data.define(version: 20240812210436)
DataMigrate::Data.define(version: 20250130160334)
1 change: 1 addition & 0 deletions spec/controllers/admin/tenants_controller_spec.rb
Original file line number Diff line number Diff line change
Expand Up @@ -147,6 +147,7 @@ def create_settings_permissions_meetingoptions
Setting.find_or_create_by(name: 'Maintenance')
Setting.find_or_create_by(name: 'SessionTimeout')
Setting.find_or_create_by(name: 'AllowedDomains')
Setting.find_or_create_by(name: 'SignInOnRoomJoin')

Permission.find_or_create_by(name: 'CreateRoom')
Permission.find_or_create_by(name: 'ManageUsers')
Expand Down

0 comments on commit f9309d9

Please sign in to comment.