Addressing issues from group code review

Этот коммит содержится в:
=Corey Hulen
2015-10-22 09:36:46 -07:00
родитель 54894e90ac
Коммит cbbee5cadb
3 изменённых файлов: 29 добавлений и 28 удалений

Просмотреть файл

@@ -429,26 +429,15 @@ func Login(c *Context, w http.ResponseWriter, r *http.Request, user *model.User,
w.Header().Set(model.HEADER_TOKEN, session.Token)
multiToken := ""
if originalMultiSessionCookie, err := r.Cookie(model.SESSION_COOKIE_TOKEN); err == nil {
multiToken = originalMultiSessionCookie.Value
}
// Attempt to clean all the old tokens or duplicate tokens
if len(multiToken) > 0 {
tokens := strings.Split(multiToken, " ")
multiToken = ""
seen := make(map[string]string)
seen[session.TeamId] = session.TeamId
for _, token := range tokens {
if sr := <-Srv.Store.Session().Get(token); sr.Err == nil {
s := sr.Data.(*model.Session)
if !s.IsExpired() && seen[s.TeamId] == "" {
multiToken += " " + token
seen[s.TeamId] = s.TeamId
}
}
tokens := GetMultiSessionCookie(r)
multiToken = ""
seen := make(map[string]string)
seen[session.TeamId] = session.TeamId
for _, token := range tokens {
s := GetSession(token)
if s != nil && !s.IsExpired() && seen[s.TeamId] == "" {
multiToken += " " + token
seen[s.TeamId] = s.TeamId
}
}

Просмотреть файл

@@ -23,6 +23,7 @@ class BrowserStoreClass {
this.getLastServerVersion = this.getLastServerVersion.bind(this);
this.setLastServerVersion = this.setLastServerVersion.bind(this);
this.clear = this.clear.bind(this);
this.clearAll = this.clearAll.bind(this);
var currentVersion = sessionStorage.getItem('storage_version');
if (currentVersion !== global.window.mm_config.Version) {
@@ -57,13 +58,14 @@ class BrowserStoreClass {
setGlobalItem(name, value) {
try {
if (this.isLocalStorageSupported()) {
localStorage.setItem(name, JSON.stringify(value));
localStorage.setItem(getPrefix() + name, JSON.stringify(value));
} else {
sessionStorage.setItem(name, JSON.stringify(value));
sessionStorage.setItem(getPrefix() + name, JSON.stringify(value));
}
} catch (err) {
console.log('An error occurred while setting local storage, clearing all props'); //eslint-disable-line no-console
localStorage.clear();
sessionStorage.clear();
window.location.href = window.location.href;
}
}
@@ -72,9 +74,9 @@ class BrowserStoreClass {
var result = null;
try {
if (this.isLocalStorageSupported()) {
result = JSON.parse(localStorage.getItem(name));
result = JSON.parse(getPrefix() + localStorage.getItem(name));
} else {
result = JSON.parse(sessionStorage.getItem(name));
result = JSON.parse(getPrefix() + sessionStorage.getItem(name));
}
} catch (err) {
result = null;
@@ -89,9 +91,9 @@ class BrowserStoreClass {
removeGlobalItem(name) {
if (this.isLocalStorageSupported()) {
localStorage.removeItem(name);
localStorage.removeItem(getPrefix() + name);
} else {
sessionStorage.removeItem(name);
sessionStorage.removeItem(getPrefix() + name);
}
}
@@ -110,7 +112,13 @@ class BrowserStoreClass {
actionOnGlobalItemsWithPrefix(prefix, action) {
var globalPrefix = getPrefix();
var globalPrefixiLen = globalPrefix.length;
for (var key in localStorage) {
var storage = sessionStorage;
if (this.isLocalStorageSupported()) {
storage = localStorage;
}
for (var key in storage) {
if (key.lastIndexOf(globalPrefix + prefix, 0) === 0) {
var userkey = key.substring(globalPrefixiLen);
action(userkey, this.getGlobalItem(key));
@@ -133,6 +141,11 @@ class BrowserStoreClass {
sessionStorage.clear();
}
clearAll() {
sessionStorage.clear();
localStorage.clear();
}
isLocalStorageSupported() {
try {
sessionStorage.setItem('testSession', '1');

Просмотреть файл

@@ -1026,7 +1026,6 @@ func incomingWebhook(c *api.Context, w http.ResponseWriter, r *http.Request) {
// create a mock session
c.Session = model.Session{UserId: hook.UserId, TeamId: hook.TeamId, IsOAuth: false}
c.SessionTokenIndex = 0
if !c.HasPermissionsToChannel(pchan, "createIncomingHook") && channel.Type != model.CHANNEL_OPEN {
c.Err = model.NewAppError("incomingWebhook", "Inappropriate channel permissions", "")