Исправление calculate-desktop.

atratsevskiy
Mike khiretskiy 11 years ago
parent e9d07b523b
commit d6f544007b

@ -1,5 +1,6 @@
AUX calculate-desktop-3.1.6-r4.patch 7626 SHA256 090e972f5ffd59d874c5eb107d423c36d878082d3a929c6a2272d8ab7694de0d SHA512 b404f912d84b83defab928dc9b12e518c791cb413b3a0bad032639baed07e489284d7be99cae73c2eb8e5fd963a4033da371e63dab1b4fd166bc807db9e0ad8a WHIRLPOOL 90548428c83ff76874a453de9315cb6ff05f4dbdbc29a5e8839c5dfef404c24cf5d968ed014fd6903d0902baef8c4ef1bbe5e4db22c0e0fcfc1ad422201888ad
AUX calculate-desktop-3.1.8-r3.patch 4821 SHA256 1e7477931c02cb32e1f5d1db3165dba7bd35b5a69b4b12f45faf3a26491d4b5d SHA512 48ce6d9d1df282bc61eb5244f24526aae54a5b5c3108d9763573905a07ccf164c135e454bf2ecd5e009cf4d45d68c1c56f816dcc2312362c85434a69b814aa6c WHIRLPOOL 788e1508d5967c6916e76b8b812d6da9ea24ea84f2d955e1b8101a706c255a0a02ffeaf16448eec32c8dda8406de985b33804c56112f8336b1f0ba00a326d7e8
AUX calculate-desktop-3.1.8-r4.patch 4821 SHA256 1e7477931c02cb32e1f5d1db3165dba7bd35b5a69b4b12f45faf3a26491d4b5d SHA512 48ce6d9d1df282bc61eb5244f24526aae54a5b5c3108d9763573905a07ccf164c135e454bf2ecd5e009cf4d45d68c1c56f816dcc2312362c85434a69b814aa6c WHIRLPOOL 788e1508d5967c6916e76b8b812d6da9ea24ea84f2d955e1b8101a706c255a0a02ffeaf16448eec32c8dda8406de985b33804c56112f8336b1f0ba00a326d7e8
DIST calculate-desktop-3.1.6.tar.bz2 15486 SHA256 46782f98e36239851cbc6c4f51003b0eccd319cb86f9eccfce3b87009b217954 SHA512 61ce9a4df56a2f745ea754aba6284c3a23cd7268424c4f4a18bc0ed11d39b8c0fbacf59c7c49aa68addb16ecaa16640ac0ba430aef22ab9b186b8f7e7d63e0b4 WHIRLPOOL d039df01e9abb76590dc72212719579dab14db9398d8a961f8c82c88e6ac1b65787dc70713bc593782b8582f1e2d12e7bbb1c216b92b7b2f47581916bd394812
DIST calculate-desktop-3.1.8.tar.bz2 16696 SHA256 c90ad97383b0c7810cbac6d9f1eaf754377f407758a4df4fe7ba3acfbb3b83ca SHA512 58bf9f98d86433a5c2ae3e8d5db0a825d60740b616b59077754568b4857a1dc2cdcc818ccbafa6a3f0b0eb67a7ebc017063756a425f556e43cce7bc063074bbe WHIRLPOOL 9f05c320e93f8ce73012a1faa3ab540d8eba8e12b5d18c656eddd320ca2cdcf99e0145925258486568c7e1b5aa9c5bd95732d4ad6919c16687152f2ff8f4858a
EBUILD calculate-desktop-3.1.6-r4.ebuild 900 SHA256 e69d0b1cde60700746805cf20ddf5e470c760596c22b122908eb1e3a55d0afdf SHA512 db0e6b9970dd207ac86dec7ca76ce65c28dfbf67d757bc2d9a6126874b8ff6caa497e1eb4c3564307aa195413ae64836655d7660cd664028f025ba2bf2da25de WHIRLPOOL 91c6b4e96b100b2c7c1cc7ba8ee27b52382ef465f08949ad44e3898de208d56eedbdf06952ab2012bf5c64d0e5486089139adc45fec7ffb079b1750ad83b1433

@ -0,0 +1,139 @@
diff --git desktop/variables/desktop.py desktop/variables/desktop.py
index f7337ef..30ae7bb 100644
--- desktop/variables/desktop.py
+++ desktop/variables/desktop.py
@@ -40,39 +40,50 @@ class VariableUrJidHost(ReadonlyVariable):
return userJid.partition('@')[2]
return ""
-class VariableUrDomainSet(ReadonlyVariable):
+class DomainInfoHelper:
"""
- Flag for determining domain user or local
+ Вспомогательный класс для определения доменный ли пользователь
"""
- type = "bool"
-
def getUserDataInFile(self, login, filePasswd):
return filter(lambda x: x[0]==login,
map(lambda x: x.strip().split(':'),
readLinesFile(filePasswd)))
- def get(self):
- ret = "off"
- userName = self.Get("ur_login")
+ def isDomainUser(self,userName):
if userName:
try:
passwdUserData = self.getUserDataInFile(userName, "/etc/passwd")
except:
- return ret
+ return False
if passwdUserData:
passwdUserData = passwdUserData[0]
try:
cacheUserData = self.getUserDataInFile(userName,
"/var/lib/calculate/calculate-client/cache/passwd")
except:
- return ret
+ return False
if cacheUserData:
cacheUserData = cacheUserData[0]
if cacheUserData == passwdUserData:
- ret = "on"
+ return True
else:
- ret = "on"
- return ret
+ return True
+ return False
+
+
+class VariableUrDomainSet(ReadonlyVariable,DomainInfoHelper):
+ """
+ Flag for determining domain user or local
+ """
+ type = "bool"
+
+ def getUserDataInFile(self, login, filePasswd):
+ return filter(lambda x: x[0]==login,
+ map(lambda x: x.strip().split(':'),
+ readLinesFile(filePasswd)))
+
+ def get(self):
+ return "on" if self.isDomainUser(self.Get('ur_login')) else "off"
class VariableClDesktopXsession(ReadonlyVariable):
"""
@@ -177,12 +188,14 @@ class VariableClDesktopXfceMixer(ReadonlyVariable):
map(lambda x:' <value type="string" value="%s" />'%x,
self.Get('cl_desktop_gst_data').get('channels',[])))
-class VariableClDesktopOnlineData(ReadonlyTableVariable):
+class VariableClDesktopOnlineData(ReadonlyTableVariable,DomainInfoHelper):
"""
Information about online users
"""
source = ['cl_desktop_online_user',
'cl_desktop_online_display',
+ 'cl_desktop_online_uid',
+ 'cl_desktop_online_domain_set',
'cl_desktop_online_count']
reDisplay = re.compile(r"^\(?:(\d+\.?\d*)")
@@ -196,6 +209,12 @@ class VariableClDesktopOnlineData(ReadonlyTableVariable):
return arg.group(1)
return ""
+ def get_user_uid(self,username):
+ try:
+ return str(pwd.getpwnam(username).pw_uid)
+ except:
+ return ""
+
def get(self,hr=False):
xSession = 0
foundTwoSession = False
@@ -216,7 +235,10 @@ class VariableClDesktopOnlineData(ReadonlyTableVariable):
resWho)))),
key=lambda x:x[0]),
lambda x:x[0])
- xData = map(lambda x:(x[0][0],x[0][1],len(x)),
+ xData = map(lambda x:(x[0][0],x[0][1],
+ self.get_user_uid(x[0][0]),
+ "on" if self.isDomainUser(x[0][0]) else "off",
+ len(x)),
map(lambda x:list(x[1]),
xData))
return xData
@@ -239,13 +261,29 @@ class VariableClDesktopOnlineDisplay(FieldValue,ReadonlyVariable):
source_variable = "cl_desktop_online_data"
column = 1
+class VariableClDesktopOnlineUid(FieldValue,ReadonlyVariable):
+ """
+ UID пользователя
+ """
+ type = "list"
+ source_variable = "cl_desktop_online_data"
+ column = 2
+
+class VariableClDesktopOnlineDomainSet(FieldValue,ReadonlyVariable):
+ """
+ Является ли пользователь доменным
+ """
+ type = "list"
+ source_variable = "cl_desktop_online_data"
+ column = 3
+
class VariableClDesktopOnlineCount(FieldValue,ReadonlyVariable):
"""
Количество сеансов пользователя
"""
type = "list"
source_variable = "cl_desktop_online_data"
- column = 2
+ column = 4
class VariableClDesktopLogin(VariableUrLogin):
"""
Loading…
Cancel
Save