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>
|
||||
|
||||
* 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
|
||||
"showCompletedTaskls" to 0 when the ShowCompletedTasks settings
|
||||
variable is not available.
|
||||
|
|
|
@ -12,10 +12,8 @@ if __name__ == "__main__":
|
|||
|
||||
loader = unittest.TestLoader()
|
||||
modules = []
|
||||
# Duplicated from UIxPreferences.m
|
||||
languages = ["Czech", "Dutch", "English", "French",
|
||||
"German", "Hungarian", "Italian", "BrazilianPortuguese", "Norwegian",
|
||||
"Polish", "Russian", "Spanish", "Swedish", "Ukrainian", "Welsh"]
|
||||
|
||||
languages = preferences.SOGoSupportedLanguages
|
||||
|
||||
# We can disable testing all languages
|
||||
testLanguages = False
|
||||
|
@ -39,15 +37,15 @@ if __name__ == "__main__":
|
|||
if testLanguages:
|
||||
prefs = preferences.preferences()
|
||||
# Get the current language
|
||||
userLanguageString = prefs.get ("Language")
|
||||
userLanguageString = prefs.get ("SOGoLanguage")
|
||||
if userLanguageString:
|
||||
userLanguage = languages.index (userLanguageString)
|
||||
else:
|
||||
userLanguage = 2
|
||||
userLanguage = languages.index ("English")
|
||||
|
||||
for i in range (0, len (languages)):
|
||||
try:
|
||||
prefs.set ("language", i)
|
||||
prefs.set ("SOGoLanguage", i)
|
||||
except Exception, inst:
|
||||
print '-' * 60
|
||||
traceback.print_exc ()
|
||||
|
@ -58,7 +56,7 @@ if __name__ == "__main__":
|
|||
runner.verbosity = 2
|
||||
runner.run(suite)
|
||||
# Revert to the original language
|
||||
prefs.set ("language", userLanguage)
|
||||
prefs.set ("SOGoLanguage", userLanguage)
|
||||
else:
|
||||
runner.run(suite)
|
||||
|
||||
|
|
|
@ -4,6 +4,12 @@ import urllib
|
|||
import base64
|
||||
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):
|
||||
cookie = None
|
||||
|
@ -32,19 +38,17 @@ class preferences:
|
|||
self.login = otherLogin
|
||||
self.passw = otherPassword
|
||||
|
||||
self.client = webdavlib.WebDAVClient(hostname, port,
|
||||
self.login, self.passw)
|
||||
self.client = webdavlib.WebDAVClient(hostname, port)
|
||||
|
||||
authString = \
|
||||
base64.urlsafe_b64encode (username+":"+password).replace("=", "%3D")
|
||||
self.cookie = \
|
||||
"0xHIGHFLYxSOGo=basic%%20%s;%%20SOGo=6C0F6C0F014AC60ED5" % authString
|
||||
authCookie = sogoLogin.getAuthCookie(hostname, port, username, password)
|
||||
self.cookie = authCookie
|
||||
|
||||
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):
|
||||
formKey = self.preferencesMap[preference]
|
||||
content = "%s=%s" % (formKey, value)
|
||||
content = "%s=%s&hasChanged=1" % (formKey, value)
|
||||
url = "/SOGo/so/%s/preferences" % self.login
|
||||
|
||||
post = HTTPPreferencesPOST (url, content)
|
||||
|
@ -74,4 +78,4 @@ class preferences:
|
|||
# Simple main to test this class
|
||||
if __name__ == "__main__":
|
||||
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