[nanny] Store proxy in HKEY_USERS instead HKEY_CURRENT_USER
- From: Roberto Majadas <telemaco src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [nanny] Store proxy in HKEY_USERS instead HKEY_CURRENT_USER
- Date: Sun, 23 Jan 2011 18:05:33 +0000 (UTC)
commit edcb9837b15f9c2398f8f9ac0ca295c415c116d5
Author: Roberto Majadas <roberto majadas openshine com>
Date: Fri Oct 29 17:24:22 2010 +0200
Store proxy in HKEY_USERS instead HKEY_CURRENT_USER
daemon/src/Win32UsersManager.py | 10 ++++++++
daemon/src/Win32WebContentFiltering.py | 39 +++++++++++++++++++++++++++-----
2 files changed, 43 insertions(+), 6 deletions(-)
---
diff --git a/daemon/src/Win32UsersManager.py b/daemon/src/Win32UsersManager.py
index e22de9d..dadcd5a 100644
--- a/daemon/src/Win32UsersManager.py
+++ b/daemon/src/Win32UsersManager.py
@@ -31,6 +31,9 @@ class Win32UsersManager:
def __init__(self):
self.last_time = None
self.users = None
+ self.uid_sid = {}
+
+ self.get_users()
def get_users (self):
if self.last_time != None and time.time() - self.last_time <= 60 :
@@ -45,6 +48,7 @@ class Win32UsersManager:
for result in qry:
uid = str(result.SID).split("-")[-1]
if int(uid) >= 1000 and result.Name != "HomeGroupUser$" :
+ self.uid_sid[int(uid)] = str(result.SID)
users.append((uid, unicode(result.Name), unicode(result.FullName)))
self.last_time = time.time()
self.users = users
@@ -58,3 +62,9 @@ class Win32UsersManager:
return True
return False
+
+ def get_sid_from_uid (self, uid):
+ if int(uid) in self.uid_sid.keys() :
+ return self.uid_sid[int(uid)]
+ else:
+ return None
diff --git a/daemon/src/Win32WebContentFiltering.py b/daemon/src/Win32WebContentFiltering.py
index af9d168..05ca05f 100644
--- a/daemon/src/Win32WebContentFiltering.py
+++ b/daemon/src/Win32WebContentFiltering.py
@@ -154,8 +154,17 @@ class Win32WebContentFiltering(gobject.GObject) :
return True
def __set_proxy_settings(self, enable, http_proxy_server='') :
- root = _winreg.HKEY_CURRENT_USER
- proxy_path = r"Software\Microsoft\Windows\CurrentVersion\Internet Settings"
+ root = _winreg.HKEY_USERS
+ session_uid = int(self.quarterback.win32top.get_current_user_session())
+ if session_uid == 0 :
+ print "[W32WebContentFiltering] session 0 (__set_proxy_settings)"
+ return
+ user_sid = self.quarterback.usersmanager.get_sid_from_uid(session_uid)
+ if user_sid == None :
+ print "[W32WebContentFiltering] USER SID = None (__set_proxy_settings)"
+ return
+
+ proxy_path = r"%s\Software\Microsoft\Windows\CurrentVersion\Internet Settings" % user_sid
hKey = _winreg.CreateKey (root, proxy_path)
@@ -196,8 +205,17 @@ class Win32WebContentFiltering(gobject.GObject) :
_winreg.CloseKey(hKey)
def __get_proxy_info(self):
- root = _winreg.HKEY_CURRENT_USER
- proxy_path = r"Software\Microsoft\Windows\CurrentVersion\Internet Settings"
+ root = _winreg.HKEY_USERS
+ session_uid = int(self.quarterback.win32top.get_current_user_session())
+ if session_uid == 0 :
+ print "[W32WebContentFiltering] session 0 (__get_proxy_info)"
+ return
+ user_sid = self.quarterback.usersmanager.get_sid_from_uid(session_uid)
+ if user_sid == None :
+ print "[W32WebContentFiltering] USER SID = None (__get_proxy_info)"
+ return
+
+ proxy_path = r"%s\Software\Microsoft\Windows\CurrentVersion\Internet Settings" % user_sid
hKey = _winreg.OpenKey (root, proxy_path)
is_enabled = 0
@@ -222,8 +240,17 @@ class Win32WebContentFiltering(gobject.GObject) :
return is_enabled, http_server
def __show_proxy_settings(self):
- root = _winreg.HKEY_CURRENT_USER
- proxy_path = r"Software\Microsoft\Windows\CurrentVersion\Internet Settings"
+ root = _winreg.HKEY_USERS
+ session_uid = int(self.quarterback.win32top.get_current_user_session())
+ if session_uid == 0 :
+ print "[W32WebContentFiltering] session 0 (__show_proxy_settings)"
+ return
+ user_sid = self.quarterback.usersmanager.get_sid_from_uid(session_uid)
+ if user_sid == None :
+ print "[W32WebContentFiltering] USER SID = None (__show_proxy_settings)"
+ return
+
+ proxy_path = r"%s\Software\Microsoft\Windows\CurrentVersion\Internet Settings" % user_sid
hKey = _winreg.OpenKey (root, proxy_path)
def get_reg_info(name):
[
Date Prev][
Date Next] [
Thread Prev][
Thread Next]
[
Thread Index]
[
Date Index]
[
Author Index]