summaryrefslogtreecommitdiffstats
path: root/utils/config.go
diff options
context:
space:
mode:
author=Corey Hulen <corey@hulen.com>2015-09-15 18:59:14 -0700
committer=Corey Hulen <corey@hulen.com>2015-09-15 18:59:14 -0700
commitb2a679c25da42c4665059965830858da4f0ec238 (patch)
tree831b04b0453a67dc291e08e091ffdb497d187922 /utils/config.go
parent788fc4373b8d22930b3420f7906e626e2bd63394 (diff)
downloadchat-b2a679c25da42c4665059965830858da4f0ec238.tar.gz
chat-b2a679c25da42c4665059965830858da4f0ec238.tar.bz2
chat-b2a679c25da42c4665059965830858da4f0ec238.zip
PLT-93 cleaing up client side configs
Diffstat (limited to 'utils/config.go')
-rw-r--r--utils/config.go54
1 files changed, 42 insertions, 12 deletions
diff --git a/utils/config.go b/utils/config.go
index a1d282c29..eb78cd08a 100644
--- a/utils/config.go
+++ b/utils/config.go
@@ -4,10 +4,13 @@
package utils
import (
- l4g "code.google.com/p/log4go"
"encoding/json"
+ "fmt"
"os"
"path/filepath"
+ "strconv"
+
+ l4g "code.google.com/p/log4go"
)
const (
@@ -109,15 +112,15 @@ type PrivacySettings struct {
ShowFullName bool
}
+type ClientSettings struct {
+ SegmentDeveloperKey string
+ GoogleDeveloperKey string
+}
+
type TeamSettings struct {
MaxUsersPerTeam int
AllowPublicLink bool
AllowValetDefault bool
- TermsLink string
- PrivacyLink string
- AboutLink string
- HelpLink string
- ReportProblemLink string
TourLink string
DefaultThemeColor string
DisableTeamCreation bool
@@ -133,6 +136,7 @@ type Config struct {
EmailSettings EmailSettings
RateLimitSettings RateLimitSettings
PrivacySettings PrivacySettings
+ ClientSettings ClientSettings
TeamSettings TeamSettings
SSOSettings map[string]SSOSetting
}
@@ -147,6 +151,8 @@ func (o *Config) ToJson() string {
}
var Cfg *Config = &Config{}
+var CfgLastModified int64 = 0
+var ClientProperties map[string]string = map[string]string{}
var SanitizeOptions map[string]bool = map[string]bool{}
func FindConfigFile(fileName string) string {
@@ -242,22 +248,46 @@ func LoadConfig(fileName string) {
panic("Error decoding config file=" + fileName + ", err=" + err.Error())
}
+ if info, err := file.Stat(); err != nil {
+ panic("Error getting config info file=" + fileName + ", err=" + err.Error())
+ } else {
+ CfgLastModified = info.ModTime().Unix()
+ }
+
configureLog(&config.LogSettings)
Cfg = &config
- SanitizeOptions = getSanitizeOptions()
+ SanitizeOptions = getSanitizeOptions(Cfg)
+ ClientProperties = getClientProperties(Cfg)
}
-func getSanitizeOptions() map[string]bool {
+func getSanitizeOptions(c *Config) map[string]bool {
options := map[string]bool{}
- options["fullname"] = Cfg.PrivacySettings.ShowFullName
- options["email"] = Cfg.PrivacySettings.ShowEmailAddress
- options["skypeid"] = Cfg.PrivacySettings.ShowSkypeId
- options["phonenumber"] = Cfg.PrivacySettings.ShowPhoneNumber
+ options["fullname"] = c.PrivacySettings.ShowFullName
+ options["email"] = c.PrivacySettings.ShowEmailAddress
+ options["skypeid"] = c.PrivacySettings.ShowSkypeId
+ options["phonenumber"] = c.PrivacySettings.ShowPhoneNumber
return options
}
+func getClientProperties(c *Config) map[string]string {
+ props := make(map[string]string)
+
+ props["Version"] = c.ServiceSettings.Version
+ props["SiteName"] = c.ServiceSettings.SiteName
+ props["ByPassEmail"] = strconv.FormatBool(c.EmailSettings.ByPassEmail)
+ props["ShowEmailAddress"] = strconv.FormatBool(c.PrivacySettings.ShowEmailAddress)
+ props["AllowPublicLink"] = strconv.FormatBool(c.TeamSettings.AllowPublicLink)
+ props["SegmentDeveloperKey"] = c.ClientSettings.SegmentDeveloperKey
+ props["GoogleDeveloperKey"] = c.ClientSettings.GoogleDeveloperKey
+ props["AnalyticsUrl"] = c.ServiceSettings.AnalyticsUrl
+ props["ProfileHeight"] = fmt.Sprintf("%v", c.ImageSettings.ProfileHeight)
+ props["ProfileWidth"] = fmt.Sprintf("%v", c.ImageSettings.ProfileWidth)
+
+ return props
+}
+
func IsS3Configured() bool {
if Cfg.AWSSettings.S3AccessKeyId == "" || Cfg.AWSSettings.S3SecretAccessKey == "" || Cfg.AWSSettings.S3Region == "" || Cfg.AWSSettings.S3Bucket == "" {
return false