forked from External/greenlight
Merge v2.7-alpha (#1951)
* Fix wrong conditional (reported by LGTM) (#1477)
Signed-off-by: Stefan Weil <sw@weilnetz.de>
Co-authored-by: Ahmad Farhat <ahmad.af.farhat@gmail.com>
* Bump rack from 2.2.2 to 2.2.3 (#1839)
Bumps [rack](https://github.com/rack/rack) from 2.2.2 to 2.2.3.
- [Release notes](https://github.com/rack/rack/releases)
- [Changelog](https://github.com/rack/rack/blob/master/CHANGELOG.md)
- [Commits](https://github.com/rack/rack/compare/v2.2.2...2.2.3)
Signed-off-by: dependabot[bot] <support@github.com>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
* [FIX] Unable to edit long recording names #1776 (#1780)
* Allow to set a filter for LDAP authentication
* [FIX] Unable to edit long recording names #1776
Co-authored-by: François Ménabé <francois.menabe@unistra.fr>
Co-authored-by: farhatahmad <ahmad.af.farhat@gmail.com>
* Desgin for Manage Users Tabs (#1777)
* Update _subtitle.html.erb
* Update _manage_users_tags.html.erb
* Update admins.scss
* Update _primary_themes.scss
* Update _manage_users_tags.html.erb
* Minor style changes to manage users (#1845)
* Maintenance banner moved to admin site (#1775)
* initial
* finish
* travis fixes
* travis again
* not required
* Co-authored-by: Tobias Fiebig <t.fiebig@tudelft.nl> (#1296)
Co-authored-by: Ahmad Farhat <ahmad.af.farhat@gmail.com>
* Enhance Room OpenGraph Metadata (#1601)
* Revert "Enhance Room OpenGraph Metadata (#1601)" (#1852)
This reverts commit 3b007c233a
.
* GRN2-xx: Tab title now displays the current page name (#1853)
* Tab title now displays the current page name
* Added page title for the rest of the pages
* Split Site Settings into 3 different tabs (#1858)
* Split Site Settings into 3 different tabs
* Fix copyright
* Added redirect to correct tab
* Make sure settings are displaying when they should
* Update en.yml (#1857)
* Build images for alpha branches (#1867)
* Upgraded jquery to latest version (#1896)
* Added favicon tag (#1898)
* Fixed XSS issue with role name (#1899)
* Update path for coloring redirect (#1908)
* Added a fourth section to the room uid (#1910)
* Fixed issue with insecure room sharing removal (#1914)
* Fixes typo (#1917)
Fixes typo: successfully was written incorrect.
* Fixed order of rooms in server rooms (#1915)
* Change default room sort to latest activity (#1919)
* GRN2-xx: Small changes/improvements to the recording settings (#1851)
* Small changes/improvements to the recording settings
* Replaced room warning with info flash
* Added global setting to enable/disable the recording consent feature
* Replace Legal with Terms (#1931)
* Added a more friendly OpenGraph description when invited to join a room (#1932)
* Fixed issue causing maintenance banner not to hide correctly (#1933)
* Hide recording menu and recording list when it is disabled (#1935)
* Hide recording menu and recording list when it is disabled
* Hide recording list when disabled
* GRN2-xx: Added an auto-refresh after 2 mins while waiting for room to start (#1947)
* Added an auto-refresh after 2 mins while waiting for room to start
* Fixed random issue with test case
* GRN2-xx: Added ability to preupload presentations to rooms (#1895)
* Added ability to preupload presentations to rooms (#1868)
* Added setting to site settings and allowed admins to change the presentation
* Added AWS S3 and GCS Storage ENV variables
* Added check to ensure file extension is correct
* Added icon to remove presentation
* Added testcases for preupload
* Add nginx redirect to solve issue with relative root
* Record title, instead of room name, in the popup (#1924)
* Update _public_recording_row.html.erb
* Update _recording_row.html.erb
Co-authored-by: Stefan Weil <sw@weilnetz.de>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: beckerr-rzht <beckerr@hochschule-trier.de>
Co-authored-by: François Ménabé <francois.menabe@unistra.fr>
Co-authored-by: MrKeksi <mrkeksi@users.noreply.github.com>
Co-authored-by: yanosz <yanosz@users.noreply.github.com>
Co-authored-by: Moritz Schlarb <moschlar@metalabs.de>
Co-authored-by: chronikum <34622984+chronikum@users.noreply.github.com>
Co-authored-by: Mitsutaka Sato <miztaka@honestyworks.jp>
Co-authored-by: hiroshisuga <45039819+hiroshisuga@users.noreply.github.com>
This commit is contained in:
@ -28,7 +28,7 @@ class Ability
|
||||
highest_role = user.role
|
||||
if highest_role.get_permission("can_edit_site_settings")
|
||||
can [:site_settings, :room_configuration, :update_settings,
|
||||
:update_room_configuration, :coloring, :registration_method], :admin
|
||||
:update_room_configuration, :coloring, :registration_method, :log_level], :admin
|
||||
end
|
||||
|
||||
if highest_role.get_permission("can_edit_roles")
|
||||
|
@ -23,11 +23,15 @@ class Room < ApplicationRecord
|
||||
|
||||
before_create :setup
|
||||
|
||||
before_destroy :destroy_presentation
|
||||
|
||||
validates :name, presence: true
|
||||
|
||||
belongs_to :owner, class_name: 'User', foreign_key: :user_id
|
||||
has_many :shared_access
|
||||
|
||||
has_one_attached :presentation
|
||||
|
||||
def self.admins_search(string)
|
||||
active_database = Rails.configuration.database_configuration[Rails.env]["adapter"]
|
||||
# Postgres requires created_at to be cast to a string
|
||||
@ -51,6 +55,8 @@ class Room < ApplicationRecord
|
||||
# Rely on manual ordering if trying to sort by status
|
||||
return order_by_status(table, running_ids) if column == "status"
|
||||
|
||||
return table.order("COALESCE(rooms.last_session,rooms.created_at) DESC") if column == "created_at"
|
||||
|
||||
return table.order(Arel.sql("rooms.#{column} #{direction}")) if table.column_names.include?(column)
|
||||
|
||||
return table.order(Arel.sql("#{column} #{direction}")) if column == "users.name"
|
||||
@ -86,15 +92,17 @@ class Room < ApplicationRecord
|
||||
def self.order_by_status(table, ids)
|
||||
return table if ids.blank?
|
||||
|
||||
order_string = "CASE bbb_id "
|
||||
# Get active rooms first
|
||||
active_rooms = table.where(bbb_id: ids)
|
||||
|
||||
ids.each_with_index do |id, index|
|
||||
order_string += "WHEN '#{id}' THEN #{index} "
|
||||
end
|
||||
# Get other rooms sorted by last session date || created at date (whichever is higher)
|
||||
inactive_rooms = table.where.not(bbb_id: ids).order("COALESCE(rooms.last_session,rooms.created_at) DESC")
|
||||
|
||||
order_string += "ELSE #{ids.length} END"
|
||||
active_rooms + inactive_rooms
|
||||
end
|
||||
|
||||
table.order(Arel.sql(order_string))
|
||||
def recording_enabled?
|
||||
JSON.parse(room_settings)["recording"]
|
||||
end
|
||||
|
||||
private
|
||||
@ -110,9 +118,9 @@ class Room < ApplicationRecord
|
||||
# Generates a fully random room uid.
|
||||
def random_room_uid
|
||||
# 6 character long random string of chars from a..z and 0..9
|
||||
full_chunk = SecureRandom.alphanumeric(6).downcase
|
||||
full_chunk = SecureRandom.alphanumeric(9).downcase
|
||||
|
||||
[owner.name_chunk, full_chunk[0..2], full_chunk[3..5]].join("-")
|
||||
[owner.name_chunk, full_chunk[0..2], full_chunk[3..5], full_chunk[6..8]].join("-")
|
||||
end
|
||||
|
||||
# Generates a unique bbb_id based on uuid.
|
||||
@ -122,4 +130,9 @@ class Room < ApplicationRecord
|
||||
break bbb_id unless Room.exists?(bbb_id: bbb_id)
|
||||
end
|
||||
end
|
||||
|
||||
# Before destroying the room, make sure you also destroy the presentation attached
|
||||
def destroy_presentation
|
||||
presentation.purge if presentation.attached?
|
||||
end
|
||||
end
|
||||
|
@ -58,10 +58,14 @@ class Setting < ApplicationRecord
|
||||
Rails.configuration.registration_method_default
|
||||
when "Room Authentication"
|
||||
false
|
||||
when "Require Recording Consent"
|
||||
Rails.configuration.require_consent_default
|
||||
when "Room Limit"
|
||||
Rails.configuration.number_of_rooms_default
|
||||
when "Shared Access"
|
||||
Rails.configuration.shared_access_default
|
||||
when "Preupload Presentation"
|
||||
Rails.configuration.preupload_presentation_default
|
||||
when "Room Configuration Mute On Join"
|
||||
room_config_setting("mute-on-join")
|
||||
when "Room Configuration Require Moderator"
|
||||
@ -70,6 +74,8 @@ class Setting < ApplicationRecord
|
||||
room_config_setting("anyone-can-start")
|
||||
when "Room Configuration All Join Moderator"
|
||||
room_config_setting("all-join-moderator")
|
||||
when "Room Configuration Recording"
|
||||
room_config_setting("recording")
|
||||
end
|
||||
end
|
||||
|
||||
|
Reference in New Issue
Block a user