blob: b65434942daeecaa51af43edc1e2834a805f11b3 [file] [log] [blame]
/*
* Licensed to the Apache Software Foundation (ASF) under one
* or more contributor license agreements. See the NOTICE file
* distributed with this work for additional information
* regarding copyright ownership. The ASF licenses this file
* to you under the Apache License, Version 2.0 (the
* "License") + you may not use this file except in compliance
* with the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing,
* software distributed under the License is distributed on an
* "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
* KIND, either express or implied. See the License for the
* specific language governing permissions and limitations
* under the License.
*/
package org.apache.openmeetings.util;
import static org.apache.wicket.csp.CSPDirectiveSrcValue.SELF;
import static org.apache.wicket.csp.CSPDirectiveSrcValue.STRICT_DYNAMIC;
import java.net.URI;
import java.net.URISyntaxException;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import com.github.openjson.JSONObject;
public class OpenmeetingsVariables {
private static final Logger log = LoggerFactory.getLogger(OpenmeetingsVariables.class);
public static final String ATTR_CLASS = "class";
public static final String ATTR_TITLE = "title";
public static final String ATTR_DISABLED = "disabled";
public static final String PARAM_USER_ID = "userId";
public static final String PARAM_STATUS = "status";
public static final String PARAM_SRC = "src";
public static final String PARAM__SRC = "_src";
public static final String CONFIG_CRYPT = "crypt.class.name";
public static final String CONFIG_DASHBOARD_SHOW_CHAT = "dashboard.show.chat";
public static final String CONFIG_DASHBOARD_SHOW_MYROOMS = "dashboard.show.myrooms";
public static final String CONFIG_DASHBOARD_SHOW_RSS = "dashboard.show.rssfeed";
public static final String CONFIG_DASHBOARD_RSS_FEED1 = "dashboard.rss.feed1";
public static final String CONFIG_DASHBOARD_RSS_FEED2 = "dashboard.rss.feed2";
public static final String CONFIG_DEFAULT_LANG = "default.lang.id";
public static final String CONFIG_DEFAULT_LANDING_ZONE = "default.landing.zone";
public static final String CONFIG_DEFAULT_LDAP_ID = "default.ldap.id";
public static final String CONFIG_DEFAULT_GROUP_ID = "default.group.id";
public static final String CONFIG_DEFAULT_TIMEZONE = "default.timezone";
public static final String CONFIG_REGISTER_FRONTEND = "allow.frontend.register";
public static final String CONFIG_REGISTER_SOAP = "allow.soap.register";
public static final String CONFIG_REGISTER_OAUTH = "allow.oauth.register";
public static final String CONFIG_MAX_UPLOAD_SIZE = "max.upload.size";
public static final String CONFIG_SIP_ENABLED = "sip.enable";
public static final String CONFIG_SIP_ROOM_PREFIX = "sip.room.prefix";
public static final String CONFIG_SIP_EXTEN_CONTEXT = "sip.exten.context";
public static final String CONFIG_LOGIN_MIN_LENGTH = "user.login.minimum.length";
public static final String CONFIG_PASS_MIN_LENGTH = "user.pass.minimum.length";
public static final String CONFIG_PASS_CHECK_UPPER = "user.pass.check.upper";
public static final String CONFIG_PASS_CHECK_DIGIT = "user.pass.check.digit";
public static final String CONFIG_PASS_CHECK_SPECIAL = "user.pass.check.special";
public static final String CONFIG_IGNORE_BAD_SSL = "oauth2.ignore.bad.ssl";
public static final String CONFIG_REDIRECT_URL_FOR_EXTERNAL = "redirect.url.for.external.users";
public static final String CONFIG_APPOINTMENT_REMINDER_MINUTES = "number.minutes.reminder.send";
public static final String CONFIG_APPOINTMENT_PRE_START_MINUTES = "appointment.pre.start.minutes";
public static final String CONFIG_APPLICATION_NAME = "application.name";
public static final String CONFIG_APPLICATION_BASE_URL = "application.base.url";
public static final String CONFIG_SCREENSHARING_QUALITY = "screensharing.default.quality";
public static final String CONFIG_SCREENSHARING_FPS = "screensharing.default.fps";
public static final String CONFIG_SCREENSHARING_FPS_SHOW = "screensharing.fps.show";
public static final String CONFIG_SCREENSHARING_ALLOW_REMOTE = "screensharing.allow.remote";
public static final String CONFIG_GOOGLE_ANALYTICS_CODE = "google.analytics.code";
public static final String CONFIG_SMTP_SERVER = "mail.smtp.server";
public static final String CONFIG_SMTP_PORT = "mail.smtp.port";
public static final String CONFIG_SMTP_USER = "mail.smtp.user";
public static final String CONFIG_SMTP_PASS = "mail.smtp.pass";
public static final String CONFIG_SMTP_SYSTEM_EMAIL = "mail.smtp.system.email";
public static final String CONFIG_SMTP_TLS = "mail.smtp.starttls.enable";
public static final String CONFIG_SMTP_SSL = "mail.smtp.ssl.enable";
public static final String CONFIG_SMTP_TIMEOUT_CON = "mail.smtp.connection.timeout";
public static final String CONFIG_SMTP_TIMEOUT = "mail.smtp.timeout";
public static final String CONFIG_PATH_IMAGEMAGIC = "path.imagemagick";
public static final String CONFIG_PATH_SOX = "path.sox";
public static final String CONFIG_PATH_FFMPEG = "path.ffmpeg";
public static final String CONFIG_PATH_OFFICE = "path.office";
public static final String CONFIG_DOCUMENT_DPI = "document.dpi";
public static final String CONFIG_DOCUMENT_QUALITY = "document.quality";
public static final String CONFIG_CAM_FPS = "cam.fps";
public static final String CONFIG_MIC_RATE = "mic.rate";
public static final String CONFIG_MIC_ECHO = "mic.echo.cancellation";
public static final String CONFIG_MIC_NOISE = "mic.noise.suppression";
public static final String CONFIG_EXT_PROCESS_TTL = "external.process.ttl";
public static final String CONFIG_EMAIL_AT_REGISTER = "send.email.at.register";
public static final String CONFIG_EMAIL_VERIFICATION = "send.email.with.verfication";
public static final String CONFIG_CALENDAR_ROOM_CAPACITY = "calendar.conference.rooms.default.size";
public static final String CONFIG_REPLY_TO_ORGANIZER = "inviter.email.as.replyto";
public static final String CONFIG_KEYCODE_ARRANGE = "video.arrange.keycode";
public static final String CONFIG_KEYCODE_MUTE_OTHERS = "mute.others.keycode";
public static final String CONFIG_KEYCODE_MUTE = "mute.keycode";
public static final String CONFIG_MYROOMS_ENABLED = "personal.rooms.enabled";
public static final String CONFIG_REMINDER_MESSAGE = "reminder.message";
public static final String CONFIG_MP4_AUDIO_RATE = "mp4.audio.rate";
public static final String CONFIG_MP4_AUDIO_BITRATE = "mp4.audio.bitrate";
public static final String CONFIG_MP4_VIDEO_PRESET = "mp4.video.preset";
public static final String CONFIG_REST_ALLOW_ORIGIN = "rest.allow.origin";
public static final String CONFIG_FNAME_MIN_LENGTH = "user.fname.minimum.length";
public static final String CONFIG_LNAME_MIN_LENGTH = "user.lname.minimum.length";
public static final String CONFIG_CHAT_SEND_ON_ENTER = "chat.send.on.enter";
public static final String CONFIG_DISPLAY_NAME_EDITABLE = "display.name.editable";
public static final String CONFIG_KEYCODE_QUICKPOLL = "start.quickpoll.keycode";
public static final String CONFIG_AUTO_OPEN_SHARING = "auto.open.sharing";
public static final String CONFIG_KEYCODE_ARRANGE_RESIZE = "video.arrange.resize.keycode";
public static final String CONFIG_CSP_FONT = "header.csp.font";
public static final String CONFIG_CSP_FRAME = "header.csp.frame";
public static final String CONFIG_CSP_IMAGE = "header.csp.image";
public static final String CONFIG_CSP_MEDIA = "header.csp.media";
public static final String CONFIG_CSP_SCRIPT = "header.csp.script";
public static final String CONFIG_CSP_STYLE = "header.csp.style";
public static final String CONFIG_CSP_ENABLED = "header.csp.enabled";
public static final String CONFIG_RECORDING_ENABLED = "recording.enabled";
public static final String CONFIG_THEME = "ui.theme";
public static final int RECENT_ROOMS_COUNT = 5;
public static final int USER_LOGIN_MINIMUM_LENGTH = 4;
public static final int USER_PASSWORD_MINIMUM_LENGTH = 8;
public static final String DEFAULT_APP_NAME = "OpenMeetings";
public static final String DEFAULT_CONTEXT_NAME = "openmeetings";
public static final long DEFAULT_MAX_UPLOAD_SIZE = 100 * 1024 * 1024L; // 100MB
public static final String DEFAULT_BASE_URL = "https://localhost:5443/openmeetings/";
public static final String DEFAULT_SIP_CONTEXT = "rooms";
public static final String DEFAULT_CSP_FONT = "https://fonts.gstatic.com";
public static final String DEFAULT_CSP_STYLE = "https://fonts.googleapis.com/css";
public static final String DEFAULT_CSP_DATA = SELF.getValue() + ",data:";
private static String cryptClassName = null;
private static String wicketApplicationName = null;
private static String applicationName = null;
private static int extProcessTtl = 20;
private static int minLoginLength = USER_LOGIN_MINIMUM_LENGTH;
private static int minPasswdLength = USER_PASSWORD_MINIMUM_LENGTH;
private static boolean pwdCheckUpper = true;
private static boolean pwdCheckDigit = true;
private static boolean pwdCheckSpecial = true;
private static JSONObject roomSettings = new JSONObject();
private static boolean initComplete = false;
private static long maxUploadSize = DEFAULT_MAX_UPLOAD_SIZE;
private static String baseUrl = DEFAULT_BASE_URL;
private static boolean sipEnabled = false;
private static String gaCode = null;
private static Long defaultLang = 1L;
private static Long defaultGroup = 1L;
private static int audioRate = 22050;
private static String audioBitrate = "32k";
private static String videoPreset = "medium";
private static String defaultTimezone = "Europe/Berlin";
private static String restAllowOrigin = null;
private static Class<?> appClass = null;
private static String sipContext = DEFAULT_SIP_CONTEXT;
private static int minFnameLength = USER_LOGIN_MINIMUM_LENGTH;
private static int minLnameLength = USER_LOGIN_MINIMUM_LENGTH;
private static boolean chatSendOnEnter = false;
private static boolean allowRegisterFrontend = false;
private static boolean allowRegisterSoap = false;
private static boolean allowRegisterOauth = false;
private static boolean sendVerificationEmail = false;
private static boolean sendRegisterEmail = false;
private static boolean displayNameEditable = false;
private static boolean myRoomsEnabled = true;
private static String cspFontSrc = DEFAULT_CSP_FONT;
private static String cspFrameSrc = SELF.getValue();
private static String cspImageSrc = DEFAULT_CSP_DATA;
private static String cspMediaSrc = DEFAULT_CSP_DATA;
private static String cspScriptSrc = STRICT_DYNAMIC.getValue();
private static String cspStyleSrc = DEFAULT_CSP_STYLE;
private static String smtpServer;
private static int smtpPort;
private static boolean smtpUseTls;
private static boolean smtpUseSsl;
private static String smtpUser;
private static String smtpPass;
private static int smtpTimeOut;
private static int smtpConnectionTimeOut;
private static String mailFrom;
private static boolean mailAddReplyTo;
private static int appointmentReminderMinutes = 15;
private static int appointmentPreStartMinutes = 5;
private static boolean recordingsEnabled = true;
private static String theme = "Sandstone";
private OpenmeetingsVariables() {}
public static String getApplicationName() {
return applicationName;
}
public static void setApplicationName(String name) {
applicationName = name;
}
public static JSONObject getRoomSettings() {
return new JSONObject(roomSettings.toString());
}
public static void setRoomSettings(JSONObject s) {
roomSettings = s;
}
public static String getCryptClassName() {
return cryptClassName;
}
public static void setCryptClassName(String name) {
cryptClassName = name;
}
public static int getExtProcessTtl() {
return extProcessTtl;
}
public static void setExtProcessTtl(int ttl) {
extProcessTtl = ttl;
}
public static boolean isInitComplete() {
return initComplete;
}
public static void setInitComplete(boolean complete) {
initComplete = complete;
}
public static String getWicketApplicationName() {
return wicketApplicationName;
}
public static void setWicketApplicationName(String name) {
wicketApplicationName = name;
}
/**
*
* @return returns the max upload size configured by max_upload_size config key
*/
public static long getMaxUploadSize() {
return maxUploadSize;
}
public static void setMaxUploadSize(long size) {
maxUploadSize = size;
}
public static String getBaseUrl() {
return baseUrl;
}
public static URI getWebappPath() {
try {
return URI.create(new URI(baseUrl + "/").normalize().getPath());
} catch (URISyntaxException e) {
log.warn("could not parse baseUrl");
return URI.create(DEFAULT_BASE_URL);
}
}
public static void setBaseUrl(String url) {
baseUrl = url;
}
public static boolean isSipEnabled() {
return sipEnabled;
}
public static void setSipEnabled(boolean enabled) {
sipEnabled = enabled;
}
public static String getGaCode() {
return gaCode;
}
public static void setGaCode(String code) {
gaCode = code;
}
public static Long getDefaultLang() {
return defaultLang;
}
public static void setDefaultLang(Long lang) {
defaultLang = lang;
}
public static int getAudioRate() {
return audioRate;
}
public static void setAudioRate(int rate) {
audioRate = rate;
}
public static String getAudioBitrate() {
return audioBitrate;
}
public static void setAudioBitrate(String bitrate) {
audioBitrate = bitrate;
}
public static String getVideoPreset() {
return videoPreset;
}
public static void setVideoPreset(String preset) {
videoPreset = preset;
}
public static String getDefaultTimezone() {
return defaultTimezone;
}
public static void setDefaultTimezone(String timezone) {
defaultTimezone = timezone;
}
public static String getRestAllowOrigin() {
return restAllowOrigin;
}
public static void setRestAllowOrigin(String allowOrigin) {
restAllowOrigin = allowOrigin;
}
public static synchronized Class<?> getAppClass() throws ClassNotFoundException {
if (appClass == null) {
//HACK to resolve package dependencies
appClass = Class.forName("org.apache.openmeetings.web.app.Application");
}
return appClass;
}
public static int getMinLoginLength() {
return minLoginLength;
}
public static void setMinLoginLength(int length) {
minLoginLength = length;
}
public static int getMinPasswdLength() {
return minPasswdLength;
}
public static void setMinPasswdLength(int length) {
minPasswdLength = length;
}
public static boolean isPwdCheckUpper() {
return pwdCheckUpper;
}
public static void setPwdCheckUpper(boolean check) {
pwdCheckUpper = check;
}
public static boolean isPwdCheckDigit() {
return pwdCheckDigit;
}
public static void setPwdCheckDigit(boolean check) {
pwdCheckDigit = check;
}
public static boolean isPwdCheckSpecial() {
return pwdCheckSpecial;
}
public static void setPwdCheckSpecial(boolean check) {
pwdCheckSpecial = check;
}
public static Long getDefaultGroup() {
return defaultGroup;
}
public static void setDefaultGroup(Long group) {
defaultGroup = group;
}
public static String getSipContext() {
return sipContext;
}
public static void setSipContext(String context) {
sipContext = context;
}
public static int getMinFnameLength() {
return minFnameLength;
}
public static void setMinFnameLength(int length) {
minFnameLength = length;
}
public static int getMinLnameLength() {
return minLnameLength;
}
public static void setMinLnameLength(int length) {
minLnameLength = length;
}
public static boolean isChatSendOnEnter() {
return chatSendOnEnter;
}
public static void setChatSendOnEnter(boolean sendOnEnter) {
chatSendOnEnter = sendOnEnter;
}
public static boolean isAllowRegisterFrontend() {
return allowRegisterFrontend;
}
public static void setAllowRegisterFrontend(boolean allow) {
allowRegisterFrontend = allow;
}
public static boolean isAllowRegisterSoap() {
return allowRegisterSoap;
}
public static void setAllowRegisterSoap(boolean allow) {
allowRegisterSoap = allow;
}
public static boolean isAllowRegisterOauth() {
return allowRegisterOauth;
}
public static void setAllowRegisterOauth(boolean allow) {
allowRegisterOauth = allow;
}
public static boolean isSendVerificationEmail() {
return sendVerificationEmail;
}
public static void setSendVerificationEmail(boolean send) {
sendVerificationEmail = send;
}
public static boolean isSendRegisterEmail() {
return sendRegisterEmail;
}
public static void setSendRegisterEmail(boolean send) {
sendRegisterEmail = send;
}
public static boolean isDisplayNameEditable() {
return displayNameEditable;
}
public static void setDisplayNameEditable(boolean editable) {
displayNameEditable = editable;
}
public static boolean isMyRoomsEnabled() {
return myRoomsEnabled;
}
public static void setMyRoomsEnabled(boolean enabled) {
myRoomsEnabled = enabled;
}
public static String getCspFontSrc() {
return cspFontSrc;
}
public static void setCspFontSrc(String src) {
cspFontSrc = src;
}
public static String getCspFrameSrc() {
return cspFrameSrc;
}
public static void setCspFrameSrc(String src) {
cspFrameSrc = src;
}
public static String getCspImageSrc() {
return cspImageSrc;
}
public static void setCspImageSrc(String src) {
cspImageSrc = src;
}
public static String getCspMediaSrc() {
return cspMediaSrc;
}
public static void setCspMediaSrc(String src) {
cspMediaSrc = src;
}
public static String getCspScriptSrc() {
return cspScriptSrc;
}
public static void setCspScriptSrc(String src) {
cspScriptSrc = src;
}
public static String getCspStyleSrc() {
return cspStyleSrc;
}
public static void setCspStyleSrc(String src) {
cspStyleSrc = src;
}
public static String getSmtpServer() {
return smtpServer;
}
public static void setSmtpServer(String server) {
smtpServer = server;
}
public static int getSmtpPort() {
return smtpPort;
}
public static void setSmtpPort(int port) {
smtpPort = port;
}
public static boolean isSmtpUseTls() {
return smtpUseTls;
}
public static void setSmtpUseTls(boolean useTls) {
smtpUseTls = useTls;
}
public static boolean isSmtpUseSsl() {
return smtpUseSsl;
}
public static void setSmtpUseSsl(boolean useSsl) {
smtpUseSsl = useSsl;
}
public static String getSmtpUser() {
return smtpUser;
}
public static void setSmtpUser(String user) {
smtpUser = user;
}
public static String getSmtpPass() {
return smtpPass;
}
public static void setSmtpPass(String pass) {
smtpPass = pass;
}
public static int getSmtpTimeOut() {
return smtpTimeOut;
}
public static void setSmtpTimeOut(int timeOut) {
smtpTimeOut = timeOut;
}
public static int getSmtpConnectionTimeOut() {
return smtpConnectionTimeOut;
}
public static void setSmtpConnectionTimeOut(int timeOut) {
smtpConnectionTimeOut = timeOut;
}
public static String getMailFrom() {
return mailFrom;
}
public static void setMailFrom(String from) {
mailFrom = from;
}
public static boolean isMailAddReplyTo() {
return mailAddReplyTo;
}
public static void setMailAddReplyTo(boolean addReplyTo) {
mailAddReplyTo = addReplyTo;
}
public static int getAppointmentPreStartMinutes() {
return appointmentPreStartMinutes;
}
public static void setAppointmentPreStartMinutes(int minutes) {
appointmentPreStartMinutes = minutes;
}
public static int getAppointmentReminderMinutes() {
return appointmentReminderMinutes;
}
public static void setAppointmentReminderMinutes(int minutes) {
appointmentReminderMinutes = minutes;
}
public static boolean isRecordingsEnabled() {
return recordingsEnabled;
}
public static void setRecordingsEnabled(boolean enabled) {
recordingsEnabled = enabled;
}
public static String getTheme() {
return theme;
}
public static void setTheme(String inTheme) {
theme = inTheme;
}
}