forked from External/greenlight
Compare commits
3 Commits
translatio
...
translatio
Author | SHA1 | Date | |
---|---|---|---|
00f470b1d0 | |||
1296d0657f | |||
3b7b45cc03 |
1
Gemfile
1
Gemfile
@ -50,6 +50,7 @@ gem 'sprockets', '< 4.0.0'
|
|||||||
gem 'omniauth'
|
gem 'omniauth'
|
||||||
gem 'omniauth-twitter'
|
gem 'omniauth-twitter'
|
||||||
gem 'omniauth-google-oauth2'
|
gem 'omniauth-google-oauth2'
|
||||||
|
gem 'omniauth_openid_connect'
|
||||||
gem 'omniauth-bn-launcher', '~> 0.1.3'
|
gem 'omniauth-bn-launcher', '~> 0.1.3'
|
||||||
gem 'net-ldap'
|
gem 'net-ldap'
|
||||||
gem 'bn-ldap-authentication', '~> 0.1.4'
|
gem 'bn-ldap-authentication', '~> 0.1.4'
|
||||||
|
49
Gemfile.lock
49
Gemfile.lock
@ -68,8 +68,10 @@ GEM
|
|||||||
tzinfo (~> 1.1)
|
tzinfo (~> 1.1)
|
||||||
addressable (2.7.0)
|
addressable (2.7.0)
|
||||||
public_suffix (>= 2.0.2, < 5.0)
|
public_suffix (>= 2.0.2, < 5.0)
|
||||||
|
aes_key_wrap (1.1.0)
|
||||||
arel (9.0.0)
|
arel (9.0.0)
|
||||||
ast (2.4.0)
|
ast (2.4.0)
|
||||||
|
attr_required (1.0.1)
|
||||||
autoprefixer-rails (9.7.6)
|
autoprefixer-rails (9.7.6)
|
||||||
execjs
|
execjs
|
||||||
aws-eventstream (1.1.0)
|
aws-eventstream (1.1.0)
|
||||||
@ -89,6 +91,7 @@ GEM
|
|||||||
aws-sigv4 (1.2.1)
|
aws-sigv4 (1.2.1)
|
||||||
aws-eventstream (~> 1, >= 1.0.2)
|
aws-eventstream (~> 1, >= 1.0.2)
|
||||||
bcrypt (3.1.13)
|
bcrypt (3.1.13)
|
||||||
|
bindata (2.4.8)
|
||||||
bindex (0.8.1)
|
bindex (0.8.1)
|
||||||
bn-ldap-authentication (0.1.4)
|
bn-ldap-authentication (0.1.4)
|
||||||
net-ldap (~> 0)
|
net-ldap (~> 0)
|
||||||
@ -191,6 +194,10 @@ GEM
|
|||||||
jquery-ui-rails (6.0.1)
|
jquery-ui-rails (6.0.1)
|
||||||
railties (>= 3.2.16)
|
railties (>= 3.2.16)
|
||||||
json (2.3.0)
|
json (2.3.0)
|
||||||
|
json-jwt (1.13.0)
|
||||||
|
activesupport (>= 4.2)
|
||||||
|
aes_key_wrap
|
||||||
|
bindata
|
||||||
jwt (2.2.1)
|
jwt (2.2.1)
|
||||||
listen (3.0.8)
|
listen (3.0.8)
|
||||||
rb-fsevent (~> 0.9, >= 0.9.4)
|
rb-fsevent (~> 0.9, >= 0.9.4)
|
||||||
@ -211,7 +218,7 @@ GEM
|
|||||||
method_source (1.0.0)
|
method_source (1.0.0)
|
||||||
mimemagic (0.3.5)
|
mimemagic (0.3.5)
|
||||||
mini_mime (1.0.2)
|
mini_mime (1.0.2)
|
||||||
mini_portile2 (2.4.0)
|
mini_portile2 (2.5.0)
|
||||||
minitest (5.14.2)
|
minitest (5.14.2)
|
||||||
msgpack (1.3.3)
|
msgpack (1.3.3)
|
||||||
multi_json (1.14.1)
|
multi_json (1.14.1)
|
||||||
@ -219,8 +226,9 @@ GEM
|
|||||||
multipart-post (2.1.1)
|
multipart-post (2.1.1)
|
||||||
net-ldap (0.16.2)
|
net-ldap (0.16.2)
|
||||||
nio4r (2.5.4)
|
nio4r (2.5.4)
|
||||||
nokogiri (1.10.10)
|
nokogiri (1.11.1)
|
||||||
mini_portile2 (~> 2.4.0)
|
mini_portile2 (~> 2.5.0)
|
||||||
|
racc (~> 1.4)
|
||||||
oauth (0.5.4)
|
oauth (0.5.4)
|
||||||
oauth2 (1.4.4)
|
oauth2 (1.4.4)
|
||||||
faraday (>= 0.8, < 2.0)
|
faraday (>= 0.8, < 2.0)
|
||||||
@ -250,6 +258,20 @@ GEM
|
|||||||
omniauth-twitter (1.4.0)
|
omniauth-twitter (1.4.0)
|
||||||
omniauth-oauth (~> 1.1)
|
omniauth-oauth (~> 1.1)
|
||||||
rack
|
rack
|
||||||
|
omniauth_openid_connect (0.3.5)
|
||||||
|
addressable (~> 2.5)
|
||||||
|
omniauth (~> 1.9)
|
||||||
|
openid_connect (~> 1.1)
|
||||||
|
openid_connect (1.2.0)
|
||||||
|
activemodel
|
||||||
|
attr_required (>= 1.0.0)
|
||||||
|
json-jwt (>= 1.5.0)
|
||||||
|
rack-oauth2 (>= 1.6.1)
|
||||||
|
swd (>= 1.0.0)
|
||||||
|
tzinfo
|
||||||
|
validate_email
|
||||||
|
validate_url
|
||||||
|
webfinger (>= 1.0.1)
|
||||||
os (1.1.0)
|
os (1.1.0)
|
||||||
pagy (3.8.1)
|
pagy (3.8.1)
|
||||||
parallel (1.19.1)
|
parallel (1.19.1)
|
||||||
@ -262,7 +284,14 @@ GEM
|
|||||||
popper_js (1.16.0)
|
popper_js (1.16.0)
|
||||||
public_suffix (4.0.5)
|
public_suffix (4.0.5)
|
||||||
puma (3.12.6)
|
puma (3.12.6)
|
||||||
|
racc (1.5.2)
|
||||||
rack (2.2.3)
|
rack (2.2.3)
|
||||||
|
rack-oauth2 (1.16.0)
|
||||||
|
activesupport
|
||||||
|
attr_required
|
||||||
|
httpclient
|
||||||
|
json-jwt (>= 1.11.0)
|
||||||
|
rack (>= 2.1.0)
|
||||||
rack-test (1.1.0)
|
rack-test (1.1.0)
|
||||||
rack (>= 1.0, < 3)
|
rack (>= 1.0, < 3)
|
||||||
rails (5.2.4.4)
|
rails (5.2.4.4)
|
||||||
@ -376,6 +405,10 @@ GEM
|
|||||||
activesupport (>= 4.0)
|
activesupport (>= 4.0)
|
||||||
sprockets (>= 3.0.0)
|
sprockets (>= 3.0.0)
|
||||||
sqlite3 (1.3.13)
|
sqlite3 (1.3.13)
|
||||||
|
swd (1.2.0)
|
||||||
|
activesupport (>= 3)
|
||||||
|
attr_required (>= 0.0.5)
|
||||||
|
httpclient (>= 2.4)
|
||||||
sync (0.5.0)
|
sync (0.5.0)
|
||||||
syslog_protocol (0.9.2)
|
syslog_protocol (0.9.2)
|
||||||
term-ansicolor (1.7.1)
|
term-ansicolor (1.7.1)
|
||||||
@ -396,11 +429,20 @@ GEM
|
|||||||
uglifier (4.2.0)
|
uglifier (4.2.0)
|
||||||
execjs (>= 0.3.0, < 3)
|
execjs (>= 0.3.0, < 3)
|
||||||
unicode-display_width (1.7.0)
|
unicode-display_width (1.7.0)
|
||||||
|
validate_email (0.1.6)
|
||||||
|
activemodel (>= 3.0)
|
||||||
|
mail (>= 2.2.5)
|
||||||
|
validate_url (1.0.13)
|
||||||
|
activemodel (>= 3.0.0)
|
||||||
|
public_suffix
|
||||||
web-console (3.7.0)
|
web-console (3.7.0)
|
||||||
actionview (>= 5.0)
|
actionview (>= 5.0)
|
||||||
activemodel (>= 5.0)
|
activemodel (>= 5.0)
|
||||||
bindex (>= 0.4.0)
|
bindex (>= 0.4.0)
|
||||||
railties (>= 5.0)
|
railties (>= 5.0)
|
||||||
|
webfinger (1.1.0)
|
||||||
|
activesupport
|
||||||
|
httpclient (>= 2.4)
|
||||||
webmock (3.8.3)
|
webmock (3.8.3)
|
||||||
addressable (>= 2.3.6)
|
addressable (>= 2.3.6)
|
||||||
crack (>= 0.3.2)
|
crack (>= 0.3.2)
|
||||||
@ -444,6 +486,7 @@ DEPENDENCIES
|
|||||||
omniauth-bn-office365 (~> 0.1.1)
|
omniauth-bn-office365 (~> 0.1.1)
|
||||||
omniauth-google-oauth2
|
omniauth-google-oauth2
|
||||||
omniauth-twitter
|
omniauth-twitter
|
||||||
|
omniauth_openid_connect
|
||||||
pagy
|
pagy
|
||||||
pg (~> 0.18)
|
pg (~> 0.18)
|
||||||
pluck_to_hash (~> 1.0.2)
|
pluck_to_hash (~> 1.0.2)
|
||||||
|
@ -7,7 +7,7 @@
|
|||||||
|
|
||||||
Greenlight is a simple front-end interface for your BigBlueButton server. At its heart, Greenlight provides a minimalistic web-based application that allows users to:
|
Greenlight is a simple front-end interface for your BigBlueButton server. At its heart, Greenlight provides a minimalistic web-based application that allows users to:
|
||||||
|
|
||||||
* Signup/Login with Google, Office365, or through the application itself.
|
* Signup/Login with Google, Office365, OpenID Connect, or through the application itself.
|
||||||
* Manage your account settings and user preferences.
|
* Manage your account settings and user preferences.
|
||||||
* Create and manage your own personal rooms ([BigBlueButton](https://github.com/bigbluebutton/bigbluebutton) sessions).
|
* Create and manage your own personal rooms ([BigBlueButton](https://github.com/bigbluebutton/bigbluebutton) sessions).
|
||||||
* Invite others to your room using a simple URL.
|
* Invite others to your room using a simple URL.
|
||||||
@ -34,4 +34,3 @@ Greenlight is built using Ruby on Rails. Many developers already know Rails well
|
|||||||
We invite you to build upon Greenlight and help make it better. See [Contributing to BigBlueButton](http://docs.bigbluebutton.org/support/faq.html#contributing-to-bigbluebutton).
|
We invite you to build upon Greenlight and help make it better. See [Contributing to BigBlueButton](http://docs.bigbluebutton.org/support/faq.html#contributing-to-bigbluebutton).
|
||||||
|
|
||||||
We invite your feedback, questions, and suggests about Greenlight too. Please post them to the [developer mailing list](https://groups.google.com/forum/#!forum/bigbluebutton-dev).
|
We invite your feedback, questions, and suggests about Greenlight too. Please post them to the [developer mailing list](https://groups.google.com/forum/#!forum/bigbluebutton-dev).
|
||||||
|
|
||||||
|
BIN
app/assets/images/openid-logo.png
Normal file
BIN
app/assets/images/openid-logo.png
Normal file
Binary file not shown.
After Width: | Height: | Size: 20 KiB |
@ -155,6 +155,17 @@
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
.customBtn-openid_connect {
|
||||||
|
@extend .customBtn;
|
||||||
|
background: #ef8e1f;
|
||||||
|
|
||||||
|
.customBtn-image {
|
||||||
|
background: #ffffff image-url("openid-logo.png") no-repeat left top;
|
||||||
|
background-size: 18px 18px;
|
||||||
|
padding:10px 10px 10px 10px;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
.signin-button {
|
.signin-button {
|
||||||
font-size: 16px;
|
font-size: 16px;
|
||||||
}
|
}
|
||||||
|
@ -22,7 +22,7 @@ require 'uri'
|
|||||||
module ApplicationHelper
|
module ApplicationHelper
|
||||||
# Determines which providers can show a login button in the login modal.
|
# Determines which providers can show a login button in the login modal.
|
||||||
def iconset_providers
|
def iconset_providers
|
||||||
providers = configured_providers & [:google, :twitter, :office365, :ldap]
|
providers = configured_providers & [:google, :twitter, :office365, :openid_connect, :ldap]
|
||||||
|
|
||||||
providers.delete(:twitter) if session[:old_twitter_user_id]
|
providers.delete(:twitter) if session[:old_twitter_user_id]
|
||||||
|
|
||||||
|
@ -16,6 +16,9 @@ Rails.application.config.omniauth_twitter = ENV['TWITTER_ID'].present? && ENV['T
|
|||||||
Rails.application.config.omniauth_google = ENV['GOOGLE_OAUTH2_ID'].present? && ENV['GOOGLE_OAUTH2_SECRET'].present?
|
Rails.application.config.omniauth_google = ENV['GOOGLE_OAUTH2_ID'].present? && ENV['GOOGLE_OAUTH2_SECRET'].present?
|
||||||
Rails.application.config.omniauth_office365 = ENV['OFFICE365_KEY'].present? &&
|
Rails.application.config.omniauth_office365 = ENV['OFFICE365_KEY'].present? &&
|
||||||
ENV['OFFICE365_SECRET'].present?
|
ENV['OFFICE365_SECRET'].present?
|
||||||
|
Rails.application.config.omniauth_openid_connect = ENV['OPENID_CONNECT_CLIENT_ID'].present? &&
|
||||||
|
ENV['OPENID_CONNECT_CLIENT_SECRET'].present? &&
|
||||||
|
ENV['OPENID_CONNECT_ISSUER'].present?
|
||||||
|
|
||||||
SETUP_PROC = lambda do |env|
|
SETUP_PROC = lambda do |env|
|
||||||
OmniauthOptions.omniauth_options env
|
OmniauthOptions.omniauth_options env
|
||||||
@ -59,6 +62,42 @@ Rails.application.config.middleware.use OmniAuth::Builder do
|
|||||||
redirect_uri: redirect,
|
redirect_uri: redirect,
|
||||||
setup: SETUP_PROC
|
setup: SETUP_PROC
|
||||||
end
|
end
|
||||||
|
if Rails.configuration.omniauth_openid_connect
|
||||||
|
Rails.application.config.providers << :openid_connect
|
||||||
|
|
||||||
|
redirect = ENV['OAUTH2_REDIRECT'].present? ? File.join(ENV['OAUTH2_REDIRECT'], "auth", "openid_connect", "callback") : nil
|
||||||
|
|
||||||
|
provider :openid_connect,
|
||||||
|
issuer: ENV["OPENID_CONNECT_ISSUER"],
|
||||||
|
discovery: true,
|
||||||
|
scope: [:email, :profile],
|
||||||
|
response_type: :code,
|
||||||
|
uid_field: ENV["OPENID_CONNECT_UID_FIELD"] || "preferred_username",
|
||||||
|
client_options: {
|
||||||
|
identifier: ENV['OPENID_CONNECT_CLIENT_ID'],
|
||||||
|
secret: ENV['OPENID_CONNECT_CLIENT_SECRET'],
|
||||||
|
redirect_uri: redirect
|
||||||
|
},
|
||||||
|
setup: SETUP_PROC
|
||||||
|
end
|
||||||
|
if Rails.configuration.omniauth_openid_connect
|
||||||
|
Rails.application.config.providers << :openid_connect
|
||||||
|
|
||||||
|
redirect = ENV['OAUTH2_REDIRECT'].present? ? File.join(ENV['OAUTH2_REDIRECT'], "auth", "openid_connect", "callback") : nil
|
||||||
|
|
||||||
|
provider :openid_connect,
|
||||||
|
issuer: ENV["OPENID_CONNECT_ISSUER"],
|
||||||
|
discovery: true,
|
||||||
|
scope: [:email, :profile],
|
||||||
|
response_type: :code,
|
||||||
|
uid_field: ENV["OPENID_CONNECT_UID_FIELD"] || "preferred_username",
|
||||||
|
client_options: {
|
||||||
|
identifier: ENV['OPENID_CONNECT_CLIENT_ID'],
|
||||||
|
secret: ENV['OPENID_CONNECT_CLIENT_SECRET'],
|
||||||
|
redirect_uri: redirect
|
||||||
|
},
|
||||||
|
setup: SETUP_PROC
|
||||||
|
end
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
@ -36,25 +36,12 @@ ar:
|
|||||||
enabled: مفعل
|
enabled: مفعل
|
||||||
info: السماح للمستخدمين المصادق عليهم فقط بالانضمام إلى غرفة
|
info: السماح للمستخدمين المصادق عليهم فقط بالانضمام إلى غرفة
|
||||||
title: طلب مصادقة للغرف
|
title: طلب مصادقة للغرف
|
||||||
user-info: يجب عليك تسجيل الدخول أعلاه للانضمام إلى هذه الغرفة.
|
user-info: يجب تسجيل الدخول للانضمام إلى هذه الغرفة
|
||||||
branding:
|
branding:
|
||||||
change: تغيير الصورة
|
change: تغيير الصورة
|
||||||
info: تغيير صورة العلامة التجارية التي تظهر في الزاوية العلوية اليمنى
|
info: تغيير صورة العلامة التجارية التي تظهر في الزاوية العلوية اليمنى
|
||||||
placeholder: رابط الصورة...
|
placeholder: رابط الصورة...
|
||||||
title: صورة العلامة التجارية
|
title: صورة العلامة التجارية
|
||||||
invalid: URL غير صالح
|
|
||||||
legal:
|
|
||||||
change: تغيير URL
|
|
||||||
info: قم بتغيير رابط الشروط الذي يظهر في أسفل الصفحة
|
|
||||||
placeholder: عنوان URL الشروط ...
|
|
||||||
title: الشروط
|
|
||||||
invalid: URL غير صالح
|
|
||||||
privpolicy:
|
|
||||||
change: تغيير URL
|
|
||||||
info: غيّر رابط سياسة الخصوصية الذي يظهر أسفل الصفحة
|
|
||||||
placeholder: URL سياسة الخصوصية...
|
|
||||||
title: سياسة الخصوصية
|
|
||||||
invalid: URL غير صالح
|
|
||||||
cache:
|
cache:
|
||||||
info: مسح ذاكرة التخزين المؤقت الخاصة بالمزود الذي يؤدي إلى طلب جديد للمعلومات المحدثة
|
info: مسح ذاكرة التخزين المؤقت الخاصة بالمزود الذي يؤدي إلى طلب جديد للمعلومات المحدثة
|
||||||
title: مسح ذاكرة التخزين المؤقت لمزود الخدمة
|
title: مسح ذاكرة التخزين المؤقت لمزود الخدمة
|
||||||
@ -69,10 +56,6 @@ ar:
|
|||||||
regular: الأساسي
|
regular: الأساسي
|
||||||
lighten: الفاتح
|
lighten: الفاتح
|
||||||
darken: معتم
|
darken: معتم
|
||||||
email_mapping:
|
|
||||||
info: تعيين دور المستخدم باستعمال بريده الإلكتروني. يجب أن يكون بالتنسيق email1 = role1 ، email2 = role2
|
|
||||||
title: تعيين الدور بالبريد الإلكتروني
|
|
||||||
update:
|
|
||||||
log_level:
|
log_level:
|
||||||
title: مستوى السجل
|
title: مستوى السجل
|
||||||
information: تغيير مستوى السجل للنشر بأكمله
|
information: تغيير مستوى السجل للنشر بأكمله
|
||||||
@ -86,18 +69,6 @@ ar:
|
|||||||
info: ضبط الظهور الافتراضي للتسجيلات الجديدة
|
info: ضبط الظهور الافتراضي للتسجيلات الجديدة
|
||||||
title: تسجيل الظهور الافتراضي
|
title: تسجيل الظهور الافتراضي
|
||||||
warning: سيتم تطبيق هذه الإعدادات فقط على الغرف التي لا تعمل حاليا
|
warning: سيتم تطبيق هذه الإعدادات فقط على الغرف التي لا تعمل حاليا
|
||||||
require_consent:
|
|
||||||
info: يتيح هذا الإعداد إعداد الغرفة الذي يسمح لمالكي الغرفة بتحديد الغرف التي يمكن تسجيلها. يجب على المستخدمين الذين ينضمون إلى غرفة مسجلة الموافقة قبل الانضمام.
|
|
||||||
title: تتطلب موافقة مالك الغرفة والمنضم على التسجيل
|
|
||||||
maintenance_banner:
|
|
||||||
info: يعرض لافتة لإعلام المستخدم بالصيانة المجدولة
|
|
||||||
title: لافتة الصيانة
|
|
||||||
display: ضبط
|
|
||||||
clear: مسح
|
|
||||||
time: "مثال: التحديث مجدول في 13 ديسمبر @ 23:00 بالتوقيت الشرقي. قد يواجه المستخدمون مشاكل في تسجيل الدخول."
|
|
||||||
preupload:
|
|
||||||
info: يمكن للمستخدمين تحميل عرض تقديمي مسبق لاستخدامه كعرض تقديمي افتراضي لتلك الغرفة المحددة
|
|
||||||
title: السماح للمستخدمين بتحميل العروض التقديمية مسبقًا
|
|
||||||
registration:
|
registration:
|
||||||
info: تغيير طريقة تسجيل المستخدمين على الموقع
|
info: تغيير طريقة تسجيل المستخدمين على الموقع
|
||||||
title: طريقة التسجيل
|
title: طريقة التسجيل
|
||||||
@ -112,11 +83,6 @@ ar:
|
|||||||
info: سيؤدي التعطيل إلى إزالة الأيقونة من القائمة المنسدلة لخيارات الغرفة، وبذلك لن يتمكن المستخدمون من مشاركة الغرف
|
info: سيؤدي التعطيل إلى إزالة الأيقونة من القائمة المنسدلة لخيارات الغرفة، وبذلك لن يتمكن المستخدمون من مشاركة الغرف
|
||||||
title: السماح للمستخدمين بمشاركة الغرف
|
title: السماح للمستخدمين بمشاركة الغرف
|
||||||
subtitle: تخصيص Greenlight
|
subtitle: تخصيص Greenlight
|
||||||
tabs:
|
|
||||||
appearance: المظهر
|
|
||||||
administration: الادارة
|
|
||||||
registration: التسجيل
|
|
||||||
settings: إعدادات
|
|
||||||
title: إعدادات الموقع
|
title: إعدادات الموقع
|
||||||
flash:
|
flash:
|
||||||
approved: تمت الموافقة على المستخدم بنجاح.
|
approved: تمت الموافقة على المستخدم بنجاح.
|
||||||
@ -134,7 +100,6 @@ ar:
|
|||||||
registration_method_updated: تم تحديث طريقة التسجيل بنجاح
|
registration_method_updated: تم تحديث طريقة التسجيل بنجاح
|
||||||
reset_password: تم إرسال بريد الكتروني للمستخدم لإعادة ضبط كلمة المرور الخاصة به (نأمل مراجعة مجلد البريد المزعج في حال عدم وصوله إلى صندوق الوارد)
|
reset_password: تم إرسال بريد الكتروني للمستخدم لإعادة ضبط كلمة المرور الخاصة به (نأمل مراجعة مجلد البريد المزعج في حال عدم وصوله إلى صندوق الوارد)
|
||||||
restored: تمت استعادة المستخدم بنجاح
|
restored: تمت استعادة المستخدم بنجاح
|
||||||
room_configuration: تم تغيير إعدادات الغرفة بنجاح
|
|
||||||
settings: تم تغيير إعدادات الموقع بنجاح
|
settings: تم تغيير إعدادات الموقع بنجاح
|
||||||
unauthorized: غير مصرح لك بتنفيذ إجراءات على هذا المستخدم
|
unauthorized: غير مصرح لك بتنفيذ إجراءات على هذا المستخدم
|
||||||
recordings:
|
recordings:
|
||||||
@ -161,32 +126,12 @@ ar:
|
|||||||
colour:
|
colour:
|
||||||
title: لون الدور
|
title: لون الدور
|
||||||
info: تعيين اللون الذي سيرتبط بالدور
|
info: تعيين اللون الذي سيرتبط بالدور
|
||||||
room_configuration:
|
|
||||||
title: إعدادات الغرفة
|
|
||||||
mute:
|
|
||||||
info: كتم صوت المستخدم تلقائيًا عند انضمامه إلى اجتماع BigBlueButton
|
|
||||||
require_moderator:
|
|
||||||
info: ينبه مشرف اجتماع BigBlueButton عندما يحاول المستخدم الانضمام. إذا تمت الموافقة على المستخدم ، فسيتمكن من الانضمام إلى الاجتماع.
|
|
||||||
allow_any:
|
|
||||||
info: يسمح لأي مستخدم ببدء الاجتماع في أي وقت. بشكل افتراضي ، يمكن لمالك الغرفة فقط بدء الاجتماع.
|
|
||||||
all_moderator:
|
|
||||||
info: يمنح جميع المستخدمين امتيازات المشرف في BigBlueButton عند انضمامهم إلى الاجتماع.
|
|
||||||
recordings:
|
|
||||||
info: يسمح لمالكي الغرفة بتحديد ما إذا كانوا يريدون خيار تسجيل غرفة أم لا. في حالة التمكين ، لا يزال يتعين على المشرف النقر على الزر "تسجيل" بمجرد بدء الاجتماع.
|
|
||||||
options:
|
|
||||||
disabled: معطل
|
|
||||||
enabled: ممكّن دائمًا
|
|
||||||
optional: اختياري
|
|
||||||
rooms:
|
rooms:
|
||||||
timeout: "نظرًا لانتهاء مهلة طلب الخادم %{server} ، فقد لا تكون معلومات الحالة والمشاركين دقيقة"
|
|
||||||
title: غرف الخادم
|
title: غرف الخادم
|
||||||
table:
|
table:
|
||||||
ended: "انتهت: %{session}"
|
|
||||||
id: المعرف
|
id: المعرف
|
||||||
not_running: لا يعمل
|
not_running: لا يعمل
|
||||||
participants: المشاركون
|
|
||||||
running: يعمل
|
running: يعمل
|
||||||
started: "بدأت: %{session}"
|
|
||||||
status: حالة
|
status: حالة
|
||||||
view: عرض
|
view: عرض
|
||||||
title: إعدادات المؤسسة
|
title: إعدادات المؤسسة
|
||||||
@ -201,21 +146,18 @@ ar:
|
|||||||
delete: حذف
|
delete: حذف
|
||||||
edit: تحرير
|
edit: تحرير
|
||||||
edit_roles: تعديل أدوار المستخدم
|
edit_roles: تعديل أدوار المستخدم
|
||||||
merge: دمج
|
|
||||||
perm_delete: حذف بشكل دائم
|
perm_delete: حذف بشكل دائم
|
||||||
unban: إلغاء حظر المستخدم
|
unban: إلغاء حظر المستخدم
|
||||||
undelete: تراجع عن الحذف
|
undelete: تراجع عن الحذف
|
||||||
table:
|
table:
|
||||||
authenticator: المصادق
|
authenticator: المصادق
|
||||||
created: انشاء
|
created: انشاء
|
||||||
time: وقت الإرسال
|
|
||||||
name: الاسم
|
name: الاسم
|
||||||
not_found: لا يوجد مستخدم يطابق بحثك
|
not_found: لا يوجد مستخدم يطابق بحثك
|
||||||
no_users: لم يتم العثور على أي مستخدمين
|
no_users: لم يتم العثور على أي مستخدمين
|
||||||
role: الدور
|
role: الدور
|
||||||
uid: معرف المستخدم
|
uid: معرف المستخدم
|
||||||
username: اسم المستخدم
|
username: اسم المستخدم
|
||||||
valid: صالح
|
|
||||||
title: إدارة المستخدمين
|
title: إدارة المستخدمين
|
||||||
add_to_google_calendar: "إضافة إلى تقويم Google"
|
add_to_google_calendar: "إضافة إلى تقويم Google"
|
||||||
bigbluebutton: BigBlueButton
|
bigbluebutton: BigBlueButton
|
||||||
@ -286,8 +228,6 @@ ar:
|
|||||||
designs: تصاميم مخصصة
|
designs: تصاميم مخصصة
|
||||||
authentication: مصادقة المستخدم
|
authentication: مصادقة المستخدم
|
||||||
footer:
|
footer:
|
||||||
legal: الشروط
|
|
||||||
privpolicy: سياسة الخصوصية
|
|
||||||
powered_by: "مشغل بواسطة%{href}."
|
powered_by: "مشغل بواسطة%{href}."
|
||||||
forgot_password:
|
forgot_password:
|
||||||
subtitle: هل نسيت كلمة المرور
|
subtitle: هل نسيت كلمة المرور
|
||||||
@ -377,6 +317,8 @@ ar:
|
|||||||
verify_text: 'للتحقق من حسابك ، اتبع هذا الرابط بالنقر عليه: %{url}'
|
verify_text: 'للتحقق من حسابك ، اتبع هذا الرابط بالنقر عليه: %{url}'
|
||||||
verify_link: التحقق من الحساب
|
verify_link: التحقق من الحساب
|
||||||
thanks: شكرا لانضمامك ونتمنى لك يوماً موفقاً.
|
thanks: شكرا لانضمامك ونتمنى لك يوماً موفقاً.
|
||||||
|
maintenance:
|
||||||
|
window_alert: "نافذة الصيانة المجدولة لـ %{date}"
|
||||||
max_concurrent: وصلت إلى الحد الأقصى لعدد الجلسات المتزامنة المسموح بها!
|
max_concurrent: وصلت إلى الحد الأقصى لعدد الجلسات المتزامنة المسموح بها!
|
||||||
merged: المدمجة
|
merged: المدمجة
|
||||||
modal:
|
modal:
|
||||||
@ -401,10 +343,6 @@ ar:
|
|||||||
keep: في الواقع ، سأحافظ عليه.
|
keep: في الواقع ، سأحافظ عليه.
|
||||||
delete_warning: سيؤدي ذلك إلى إلغاء تنشيط حساب المستخدم. يمكن العثور على جميع المستخدمين غير النشطين تحت علامة تبويب المحذوفات.
|
delete_warning: سيؤدي ذلك إلى إلغاء تنشيط حساب المستخدم. يمكن العثور على جميع المستخدمين غير النشطين تحت علامة تبويب المحذوفات.
|
||||||
warning: هذا القرار نهائي.<b>لن</b> تكون قادرًا على استعادة البيانات المرتبطة.
|
warning: هذا القرار نهائي.<b>لن</b> تكون قادرًا على استعادة البيانات المرتبطة.
|
||||||
delete_rec:
|
|
||||||
delete: أنا متأكد ، احذف هذا التسجيل.
|
|
||||||
header: هل أنت متأكد أنك تريد حذف هذا التسجيل؟
|
|
||||||
warning: <b>لن</b> تتمكن من استعادة هذا التسجيل
|
|
||||||
delete_room:
|
delete_room:
|
||||||
confirm: "هل أنت متأكد أنك تريد حذف %{room}؟"
|
confirm: "هل أنت متأكد أنك تريد حذف %{room}؟"
|
||||||
delete: أنا متأكد قم بحذف هذه الغرفة.
|
delete: أنا متأكد قم بحذف هذه الغرفة.
|
||||||
@ -412,7 +350,7 @@ ar:
|
|||||||
warning: <b>لن</b> تكون قادراً على استعادة هذه الغرفة
|
warning: <b>لن</b> تكون قادراً على استعادة هذه الغرفة
|
||||||
recording_warning: "أو أي من التسجيلات المرتبطة بـ %{recordings_num} الخاصة به."
|
recording_warning: "أو أي من التسجيلات المرتبطة بـ %{recordings_num} الخاصة به."
|
||||||
invite_user:
|
invite_user:
|
||||||
email_placeholder: أدخل عناوين البريد الإلكتروني للمستخدمين (مفصولة بالفارزة)
|
email_placeholder: أدخل عناوين البريد لالكتروني للمستخدمين (استخدم الفاصلة للفصل بينها)
|
||||||
footer: سوف يتلقى المستخدم رسالة بريد إلكتروني مع تعليمات حول كيفية الاشتراك
|
footer: سوف يتلقى المستخدم رسالة بريد إلكتروني مع تعليمات حول كيفية الاشتراك
|
||||||
send: إرسال دعوة
|
send: إرسال دعوة
|
||||||
title: دعوة المستخدم
|
title: دعوة المستخدم
|
||||||
@ -420,14 +358,6 @@ ar:
|
|||||||
or: أو
|
or: أو
|
||||||
with: "الدخول بـ %{provider}"
|
with: "الدخول بـ %{provider}"
|
||||||
forgot_password: هل نسيت كلمة المرور؟
|
forgot_password: هل نسيت كلمة المرور؟
|
||||||
preupload:
|
|
||||||
change: استبدال العرض التقديمي
|
|
||||||
choose: اختر ملف...
|
|
||||||
current: "العرض التقديمي الحالي:"
|
|
||||||
footer: اعتمادًا على حجم العرض التقديمي ، قد يتطلب تحميله وقتًا إضافيًا قبل استخدامه.
|
|
||||||
invalid: حجم / نوع الملف غير صالح. يرجى الاطلاع على القيود أدناه.
|
|
||||||
title: أضف العرض التقديمي
|
|
||||||
use: استخدم العرض التقديمي
|
|
||||||
rename_recording:
|
rename_recording:
|
||||||
remove_shared:
|
remove_shared:
|
||||||
title: هل أنت متأكد من رغبتك في إزالة هذه الغرفة من قائمة الغرف الخاصة بك؟
|
title: هل أنت متأكد من رغبتك في إزالة هذه الغرفة من قائمة الغرف الخاصة بك؟
|
||||||
@ -442,7 +372,6 @@ ar:
|
|||||||
require_approval: يلزم موافقة المشرف قبل الانضمام
|
require_approval: يلزم موافقة المشرف قبل الانضمام
|
||||||
start: السماح لأي مستخدم ببدء اللقاء
|
start: السماح لأي مستخدم ببدء اللقاء
|
||||||
footer_text: يمكن إجراء التعديل على غرفتك في أي وقت.
|
footer_text: يمكن إجراء التعديل على غرفتك في أي وقت.
|
||||||
recording: السماح بتسجيل الغرفة
|
|
||||||
rename_room:
|
rename_room:
|
||||||
name_placeholder: أدخل اسم غرفة جديدة ...
|
name_placeholder: أدخل اسم غرفة جديدة ...
|
||||||
share_access:
|
share_access:
|
||||||
@ -522,7 +451,6 @@ ar:
|
|||||||
remove: إزالة
|
remove: إزالة
|
||||||
rename: إعادة تسمية
|
rename: إعادة تسمية
|
||||||
reset_password:
|
reset_password:
|
||||||
invalid_token: رمز إعادة تعيين كلمة المرور غير صالح. يرجى محاولة إعادة تعيين كلمة المرور الخاصة بك مرة أخرى.
|
|
||||||
subtitle: إعادة تعيين كلمة المرور
|
subtitle: إعادة تعيين كلمة المرور
|
||||||
password: كلمة المرور الجديدة
|
password: كلمة المرور الجديدة
|
||||||
confirm: تأكيد كلمة المرور الجديدة
|
confirm: تأكيد كلمة المرور الجديدة
|
||||||
@ -537,8 +465,6 @@ ar:
|
|||||||
user: مستخدم
|
user: مستخدم
|
||||||
room:
|
room:
|
||||||
access_code_required: الرجاء إدخال رمز وصول ساري المفعول للانضمام إلى الغرفة
|
access_code_required: الرجاء إدخال رمز وصول ساري المفعول للانضمام إلى الغرفة
|
||||||
add_presentation: أضف العرض التقديمي
|
|
||||||
copy_access: نسخ رمز الوصول
|
|
||||||
create_room: إنشاء غرفة
|
create_room: إنشاء غرفة
|
||||||
create_room_error: حدث خطأ أثناء إنشاء الغرفة
|
create_room_error: حدث خطأ أثناء إنشاء الغرفة
|
||||||
create_room_success: تم إنشاء الغرفة بنجاح
|
create_room_success: تم إنشاء الغرفة بنجاح
|
||||||
@ -548,9 +474,7 @@ ar:
|
|||||||
fail: "فشل في حذف الغرفة (%{error})"
|
fail: "فشل في حذف الغرفة (%{error})"
|
||||||
enter_the_access_code: أدخل رمز الوصول لهذه الغرفة
|
enter_the_access_code: أدخل رمز الوصول لهذه الغرفة
|
||||||
invalid_provider: لقد أدخلت رابطًا غير صالح. يرجى التحقق من عنوان URL والمحاولة مرة أخرى.
|
invalid_provider: لقد أدخلت رابطًا غير صالح. يرجى التحقق من عنوان URL والمحاولة مرة أخرى.
|
||||||
invitation_description: "لقد تمت دعوتك للانضمام إلى %{name} باستخدام BigBlueButton. للانضمام ، انقر فوق الارتباط أعلاه وأدخل اسمك."
|
|
||||||
invited: لقد تمت دعوتك للانضمام
|
invited: لقد تمت دعوتك للانضمام
|
||||||
recording_present: أقر بأنه سيتم تسجيل هذه الجلسة. قد يشمل ذلك صوتي وفيديو إذا تم تمكينه.
|
|
||||||
invite_participants: دعوة المشاركين
|
invite_participants: دعوة المشاركين
|
||||||
join: انضم
|
join: انضم
|
||||||
last_session: "الجلسة الأخيرة في %{session}"
|
last_session: "الجلسة الأخيرة في %{session}"
|
||||||
@ -567,10 +491,6 @@ ar:
|
|||||||
recent_rooms: الانتقال إلى الغرفة التي تم الانضمام إليها مؤخرًا
|
recent_rooms: الانتقال إلى الغرفة التي تم الانضمام إليها مؤخرًا
|
||||||
title: الانضمام إلى الغرفة
|
title: الانضمام إلى الغرفة
|
||||||
no_sessions: ما زالت هذه الغرفة لا تحتوي على جلسات.
|
no_sessions: ما زالت هذه الغرفة لا تحتوي على جلسات.
|
||||||
preupload_success: تمت إضافة العرض بنجاح
|
|
||||||
preupload_error: حدث خطأ أثناء تحديث عرض الغرفة
|
|
||||||
preupload_remove_success: تمت إزالة العرض التقديمي بنجاح
|
|
||||||
preupload_remove_error: حدث خطأ أثناء إزالة عرض الغرفة
|
|
||||||
recordings: التسجيلات الخاصة بالغرفة
|
recordings: التسجيلات الخاصة بالغرفة
|
||||||
room_limit: وصلت إلى الحد الأقصى لعدد الغرف المسموح بها
|
room_limit: وصلت إلى الحد الأقصى لعدد الغرف المسموح بها
|
||||||
room_limit_exceeded: "لقد تجاوزت عدد الغرف المسموح بها. يرجى حذف %{difference} غرفة للدخول إلى هذه الغرفة."
|
room_limit_exceeded: "لقد تجاوزت عدد الغرف المسموح بها. يرجى حذف %{difference} غرفة للدخول إلى هذه الغرفة."
|
||||||
@ -583,7 +503,6 @@ ar:
|
|||||||
shared_access_success: تمت مشاركة الغرفة بنجاح
|
shared_access_success: تمت مشاركة الغرفة بنجاح
|
||||||
shared_access_error: هناك خطأ في مشاركة الغرفة
|
shared_access_error: هناك خطأ في مشاركة الغرفة
|
||||||
start: بداية
|
start: بداية
|
||||||
search: البحث عن غرفة ...
|
|
||||||
unavailable: هذه الغرفة غير متاح حاليًا نظرًا لعدم التحقق من البريد الإلكتروني للمالك.
|
unavailable: هذه الغرفة غير متاح حاليًا نظرًا لعدم التحقق من البريد الإلكتروني للمالك.
|
||||||
update_settings_error: حدث خطأ أثناء تحديث إعدادات الغرفة
|
update_settings_error: حدث خطأ أثناء تحديث إعدادات الغرفة
|
||||||
update_settings_success: تم تحديث إعدادات الغرفة بنجاح
|
update_settings_success: تم تحديث إعدادات الغرفة بنجاح
|
||||||
@ -592,15 +511,14 @@ ar:
|
|||||||
auto: ستنضم تلقائيًا عندما يبدأ الاجتماع.
|
auto: ستنضم تلقائيًا عندما يبدأ الاجتماع.
|
||||||
settings:
|
settings:
|
||||||
account:
|
account:
|
||||||
fullname: الاسم الكامل
|
fullname: الاسم كاملاً
|
||||||
language: لغة
|
language: لغة
|
||||||
provider: مزود
|
provider: مزود
|
||||||
image: صورة
|
image: صورة
|
||||||
image_url: عنوان URL لصورة الملف الشخصي
|
image_url: عنوان URL لصورة الملف الشخصي
|
||||||
roles: دور المستخدم
|
roles: أدوار المستخدم
|
||||||
subtitle: قم بتحديث معلومات حسابك
|
subtitle: قم بتحديث معلومات حسابك
|
||||||
title: معلومات الحساب
|
title: معلومات الحساب
|
||||||
reset_password: إعادة تعيين كلمة مرور المستخدم
|
|
||||||
delete:
|
delete:
|
||||||
button: نعم ، أرغب في حذف حسابي.
|
button: نعم ، أرغب في حذف حسابي.
|
||||||
disclaimer: إذا اخترت حذف حسابك . <b>لا</b> يمكن استرداده. ستتم إزالة جميع المعلومات المتعلقة بحسابك ، بما في ذلك الإعدادات والغرف والتسجيل.
|
disclaimer: إذا اخترت حذف حسابك . <b>لا</b> يمكن استرداده. ستتم إزالة جميع المعلومات المتعلقة بحسابك ، بما في ذلك الإعدادات والغرف والتسجيل.
|
||||||
|
@ -477,6 +477,7 @@ de_DE:
|
|||||||
office365: Office 365
|
office365: Office 365
|
||||||
twitter: Twitter
|
twitter: Twitter
|
||||||
ldap: LDAP
|
ldap: LDAP
|
||||||
|
openid_connect: OpenID Connect
|
||||||
recaptcha:
|
recaptcha:
|
||||||
errors:
|
errors:
|
||||||
recaptcha_unreachable: "Ups, es war nicht möglich die reCAPTCHA Antwort zu überprüfen. Bitte versuchen Sie es nochmals."
|
recaptcha_unreachable: "Ups, es war nicht möglich die reCAPTCHA Antwort zu überprüfen. Bitte versuchen Sie es nochmals."
|
||||||
|
@ -478,6 +478,7 @@ en:
|
|||||||
office365: Office 365
|
office365: Office 365
|
||||||
twitter: Twitter
|
twitter: Twitter
|
||||||
ldap: LDAP
|
ldap: LDAP
|
||||||
|
openid_connect: OpenID Connect
|
||||||
recaptcha:
|
recaptcha:
|
||||||
errors:
|
errors:
|
||||||
recaptcha_unreachable: Oops, we failed to validate your reCAPTCHA response. Please try again.
|
recaptcha_unreachable: Oops, we failed to validate your reCAPTCHA response. Please try again.
|
||||||
|
@ -477,6 +477,7 @@ gl:
|
|||||||
office365: Office 365
|
office365: Office 365
|
||||||
twitter: Twitter
|
twitter: Twitter
|
||||||
ldap: LDAP
|
ldap: LDAP
|
||||||
|
openid_connect: Conectar con OpenID
|
||||||
recaptcha:
|
recaptcha:
|
||||||
errors:
|
errors:
|
||||||
recaptcha_unreachable: Ouh! non podemos validar a resposta de reCAPTCHA. Tenteo de novo.
|
recaptcha_unreachable: Ouh! non podemos validar a resposta de reCAPTCHA. Tenteo de novo.
|
||||||
|
@ -37,6 +37,8 @@ module OmniauthOptions
|
|||||||
set_hd(env, ENV['GOOGLE_OAUTH2_HD'])
|
set_hd(env, ENV['GOOGLE_OAUTH2_HD'])
|
||||||
elsif env['omniauth.strategy'].options[:name] == "office365"
|
elsif env['omniauth.strategy'].options[:name] == "office365"
|
||||||
set_hd(env, ENV['OFFICE365_HD'])
|
set_hd(env, ENV['OFFICE365_HD'])
|
||||||
|
elsif env['omniauth.strategy'].options[:name] == "openid_connect"
|
||||||
|
set_hd(env, ENV['OPENID_CONNECT_HD'])
|
||||||
end
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
|
12
sample.env
12
sample.env
@ -51,6 +51,18 @@ OFFICE365_KEY=
|
|||||||
OFFICE365_SECRET=
|
OFFICE365_SECRET=
|
||||||
OFFICE365_HD=
|
OFFICE365_HD=
|
||||||
|
|
||||||
|
# OpenID Connect Provider (optional)
|
||||||
|
#
|
||||||
|
# For in-depth steps on setting up a OpenID Connect Login Provider, see:
|
||||||
|
#
|
||||||
|
# https://docs.bigbluebutton.org/greenlight/gl-config.html#openid-connect
|
||||||
|
#
|
||||||
|
OPENID_CONNECT_CLIENT_ID=
|
||||||
|
OPENID_CONNECT_CLIENT_SECRET=
|
||||||
|
OPENID_CONNECT_ISSUER=
|
||||||
|
OPENID_CONNECT_HD=
|
||||||
|
OPENID_CONNECT_UID_FIELD=
|
||||||
|
|
||||||
# OAUTH2_REDIRECT allows you to specify the redirect_url passed to oauth on sign in.
|
# OAUTH2_REDIRECT allows you to specify the redirect_url passed to oauth on sign in.
|
||||||
# It is useful for cases when Greenlight is deployed behind a Network Load Balancer or proxy
|
# It is useful for cases when Greenlight is deployed behind a Network Load Balancer or proxy
|
||||||
OAUTH2_REDIRECT=
|
OAUTH2_REDIRECT=
|
||||||
|
Reference in New Issue
Block a user