Monotone-Parent: 7ee997ad520d61e48d2f051e02d433791c47fd08
Monotone-Revision: c37895534ea03712cf65f5760bc535177a041d99 Monotone-Author: wsourdeau@inverse.ca Monotone-Date: 2011-04-01T19:43:11 Monotone-Branch: ca.inverse.sogomaint-2.0.2
parent
87f516c874
commit
4e13c0b73c
|
@ -1,5 +1,14 @@
|
||||||
2011-04-01 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
2011-04-01 Wolfgang Sourdeau <wsourdeau@inverse.ca>
|
||||||
|
|
||||||
|
* Tests/Integration/all.py: (from Jean Raby) make use of the
|
||||||
|
"SOGoLanguage" defaults key rather than the old "Language" one.
|
||||||
|
|
||||||
|
* Tests/Integration/sogoLogin.py: (from Jean Raby) new
|
||||||
|
authentication module, required to the new session-based code.
|
||||||
|
|
||||||
|
* Tests/Integration/preferences.py: (from Jean Raby) derive
|
||||||
|
authentication cookie from the new sogoLogin module.
|
||||||
|
|
||||||
* UI/WebServerResources/SchedulerUI.js (initCalendars): initialize
|
* UI/WebServerResources/SchedulerUI.js (initCalendars): initialize
|
||||||
"showCompletedTaskls" to 0 when the ShowCompletedTasks settings
|
"showCompletedTaskls" to 0 when the ShowCompletedTasks settings
|
||||||
variable is not available.
|
variable is not available.
|
||||||
|
|
|
@ -12,10 +12,8 @@ if __name__ == "__main__":
|
||||||
|
|
||||||
loader = unittest.TestLoader()
|
loader = unittest.TestLoader()
|
||||||
modules = []
|
modules = []
|
||||||
# Duplicated from UIxPreferences.m
|
|
||||||
languages = ["Czech", "Dutch", "English", "French",
|
languages = preferences.SOGoSupportedLanguages
|
||||||
"German", "Hungarian", "Italian", "BrazilianPortuguese", "Norwegian",
|
|
||||||
"Polish", "Russian", "Spanish", "Swedish", "Ukrainian", "Welsh"]
|
|
||||||
|
|
||||||
# We can disable testing all languages
|
# We can disable testing all languages
|
||||||
testLanguages = False
|
testLanguages = False
|
||||||
|
@ -39,15 +37,15 @@ if __name__ == "__main__":
|
||||||
if testLanguages:
|
if testLanguages:
|
||||||
prefs = preferences.preferences()
|
prefs = preferences.preferences()
|
||||||
# Get the current language
|
# Get the current language
|
||||||
userLanguageString = prefs.get ("Language")
|
userLanguageString = prefs.get ("SOGoLanguage")
|
||||||
if userLanguageString:
|
if userLanguageString:
|
||||||
userLanguage = languages.index (userLanguageString)
|
userLanguage = languages.index (userLanguageString)
|
||||||
else:
|
else:
|
||||||
userLanguage = 2
|
userLanguage = languages.index ("English")
|
||||||
|
|
||||||
for i in range (0, len (languages)):
|
for i in range (0, len (languages)):
|
||||||
try:
|
try:
|
||||||
prefs.set ("language", i)
|
prefs.set ("SOGoLanguage", i)
|
||||||
except Exception, inst:
|
except Exception, inst:
|
||||||
print '-' * 60
|
print '-' * 60
|
||||||
traceback.print_exc ()
|
traceback.print_exc ()
|
||||||
|
@ -58,7 +56,7 @@ if __name__ == "__main__":
|
||||||
runner.verbosity = 2
|
runner.verbosity = 2
|
||||||
runner.run(suite)
|
runner.run(suite)
|
||||||
# Revert to the original language
|
# Revert to the original language
|
||||||
prefs.set ("language", userLanguage)
|
prefs.set ("SOGoLanguage", userLanguage)
|
||||||
else:
|
else:
|
||||||
runner.run(suite)
|
runner.run(suite)
|
||||||
|
|
||||||
|
|
|
@ -4,6 +4,12 @@ import urllib
|
||||||
import base64
|
import base64
|
||||||
import simplejson
|
import simplejson
|
||||||
|
|
||||||
|
import sogoLogin
|
||||||
|
|
||||||
|
SOGoSupportedLanguages = [ "Catalan", "Czech", "Welsh", "English", "Spanish",
|
||||||
|
"French", "German", "Italian", "Hungarian",
|
||||||
|
"Dutch", "BrazilianPortuguese", "Norwegian", "Polish",
|
||||||
|
"Russian", "Ukrainian", "Swedish" ]
|
||||||
|
|
||||||
class HTTPPreferencesPOST (webdavlib.HTTPPOST):
|
class HTTPPreferencesPOST (webdavlib.HTTPPOST):
|
||||||
cookie = None
|
cookie = None
|
||||||
|
@ -32,19 +38,17 @@ class preferences:
|
||||||
self.login = otherLogin
|
self.login = otherLogin
|
||||||
self.passw = otherPassword
|
self.passw = otherPassword
|
||||||
|
|
||||||
self.client = webdavlib.WebDAVClient(hostname, port,
|
self.client = webdavlib.WebDAVClient(hostname, port)
|
||||||
self.login, self.passw)
|
|
||||||
|
|
||||||
authString = \
|
authCookie = sogoLogin.getAuthCookie(hostname, port, username, password)
|
||||||
base64.urlsafe_b64encode (username+":"+password).replace("=", "%3D")
|
self.cookie = authCookie
|
||||||
self.cookie = \
|
|
||||||
"0xHIGHFLYxSOGo=basic%%20%s;%%20SOGo=6C0F6C0F014AC60ED5" % authString
|
|
||||||
|
|
||||||
self.preferencesMap = {"language": "2.1.0.3.0.1.3.1.1.3.1.2"}
|
self.preferencesMap = {"SOGoLanguage": "2.1.0.3.0.1.4.3.1.3.1.1.2"}
|
||||||
|
# Duplicated from SOGoDefaults.plist
|
||||||
|
|
||||||
def set(self, preference, value):
|
def set(self, preference, value):
|
||||||
formKey = self.preferencesMap[preference]
|
formKey = self.preferencesMap[preference]
|
||||||
content = "%s=%s" % (formKey, value)
|
content = "%s=%s&hasChanged=1" % (formKey, value)
|
||||||
url = "/SOGo/so/%s/preferences" % self.login
|
url = "/SOGo/so/%s/preferences" % self.login
|
||||||
|
|
||||||
post = HTTPPreferencesPOST (url, content)
|
post = HTTPPreferencesPOST (url, content)
|
||||||
|
@ -74,4 +78,4 @@ class preferences:
|
||||||
# Simple main to test this class
|
# Simple main to test this class
|
||||||
if __name__ == "__main__":
|
if __name__ == "__main__":
|
||||||
p = preferences ()
|
p = preferences ()
|
||||||
p.set ("language", 6)
|
p.set ("SOGoLanguage", SOGoSupportedLanguages.index("French"))
|
||||||
|
|
|
@ -0,0 +1,29 @@
|
||||||
|
#!/usr/bin/python
|
||||||
|
|
||||||
|
from config import hostname, port, username, password
|
||||||
|
import webdavlib
|
||||||
|
import urllib
|
||||||
|
import urllib2
|
||||||
|
import base64
|
||||||
|
import simplejson
|
||||||
|
import cookielib
|
||||||
|
|
||||||
|
def getAuthCookie(hostname, port, username, password) :
|
||||||
|
cjar = cookielib.CookieJar();
|
||||||
|
opener = urllib2.build_opener(urllib2.HTTPCookieProcessor(cjar))
|
||||||
|
urllib2.install_opener(opener)
|
||||||
|
|
||||||
|
creds = urllib.urlencode([("userName",username), ("password", password)])
|
||||||
|
req = urllib2.Request("http://%s/SOGo/connect" % hostname, creds)
|
||||||
|
|
||||||
|
fd = urllib2.urlopen(req)
|
||||||
|
#print fd.info()
|
||||||
|
|
||||||
|
for cookie in cjar :
|
||||||
|
if cookie.name == "0xHIGHFLYxSOGo":
|
||||||
|
authinfo = cookie.value
|
||||||
|
break
|
||||||
|
|
||||||
|
return "0xHIGHFLYxSOGo="+authinfo
|
||||||
|
if __name__ == "__main__" :
|
||||||
|
getAuthCookie()
|
Loading…
Reference in New Issue