Update desktop

atratsevskiy
parent 77443e958d
commit daec6ac25d

@ -1,5 +1,6 @@
AUX calculate-desktop-3.1.5-r1.patch 7623 SHA256 e355242dfff72f8e5596f2e37d338510e089ff20f7fcbf0968c37c3e431d6adf SHA512 2711cd1d463fc0fdab3792a0a475447e80dfdc4a8db573198f0ffe868b62c01abfcf2a6413af63e8a9c3c64b89e2985c4f4bf03c6d638bbccce89fc70ea6611f WHIRLPOOL fbd93b6f8e72c1a802016051f0e4ed1bce04b8bc79587680a3c7bfb8f8c0900df614334fcf3bb8663aad3d94d9dd87b4431161b2dbff543e38a5584feafb1c27
AUX calculate-desktop-3.1.5-r2.patch 7785 SHA256 49fa8387149d4872cb34a34d1873ab03a0978b6a7925917c74c3aaf4a26c2040 SHA512 cf6335cbd60f0674c7e2ccace2b79a60e07251b43cf6ded4ce17bc6d432513d065400a7c6bc80380335d27a94e160babb999ba6fc1c1fbb6e4893cf3ce6686ed WHIRLPOOL 62b51956b23c08817f62c714f520ccdc6efd25e31234100a921ccfc01947f04446807c46a2f9fbef1f4b3c3733b073dbc883a8483843bcb7b4c69575629625be
AUX calculate-desktop-3.1.5-r3.patch 7785 SHA256 452ba03b62dfa1d4dc299a5b77483a6b60dd987e432905ece597c8b35e421eb9 SHA512 c06800e5f28590687cd2efad649580db02f024364983182471f40a06b9f890092666c1bb1f3363db4b82f67cd7e11005ff7212b723e9015310e6933f169232b3 WHIRLPOOL d9bd3c26b418d30f696b0d5ff756ae54022f7c5a0e7a3117038a985d8d439dd747741a3795712f7f2420bcc60f005f53db7f2660606436ba491c4f1bb497bbbf
AUX calculate-desktop-3.1.5_beta1-r1.patch 738 SHA256 eef93b7c4925f12e69d328e6b4ae92f0c0db04ddedf4cfad2db0198cfb633771 SHA512 63c288004c714b7061584411c34a0b817223c51cd811f38c8770829a0d9a6d7e9ff81d990b9acd39205b9977f5bc5e52ae6cfe314041619dc4c830bdd4accd78 WHIRLPOOL 3b1f1e0de4dbbfc5e88f9e18ca0b92a9f86b8b52a780bcc8d1b7d7f7968ea7f630aaf52b19e29fd12ae3d16aca5b1d800d62fe78f6ce7d7040fd5a2080567d21
DIST calculate-desktop-3.1.3.tar.bz2 13377 SHA256 a54dd4b784e21cf89cd3368c47f8966e007c13e052423543b2e2c795e207e1e8 SHA512 c90b5a04bf2d938944e5f24217114b055ec558d7d9342ecfef6762df4cb1f9313c5ff3550c0a0eb8dffd507d03317291e8008f752fc60100fa77e3ee6711757d WHIRLPOOL a888ade088cdd04da76907b4d44437c478b40f046ea7849d4f5baa82b5c7ed235dd52e80a779fb32f498a6333ae89a7cb6e911a364d1953878c2fd326ee6a4de
DIST calculate-desktop-3.1.5.tar.bz2 13368 SHA256 58630f5f47b5f5ffcc137a32a95b4077ac540c38ed619ab0bb5a3db51e1757f4 SHA512 2ea99d923a43de91a9791dfa71cc546af3f6ffba31859b895d7e03e1975fdcd43a63ef220eeefaee444f43eb33970a52f223dcbe420b3ab208c902f67ba7bbf1 WHIRLPOOL 418949fe17a2b0d9178a017a761e8cd9c2f1f926384d5c784e638598618f6f6f4ae36c469717adabbc9deacb32692a4fa05ed8cef5f477d14eba156257debbc9
@ -7,6 +8,7 @@ DIST calculate-desktop-3.1.5_beta1.tar.bz2 13361 SHA256 8316e0c539222370c1544263
EBUILD calculate-desktop-3.1.3.ebuild 686 SHA256 ec60521da0de7477ff78c0f70d0c5e3b8c89572e792103c3444ebaf35e268b54 SHA512 68417e15dfab162d78da5ffa3dabcaac735592565ae048703810b2de33ce2f8081da94bc724ab432f7f34afed78174a770a19db34d93a17ee7edfabd164b70f4 WHIRLPOOL 09a3100a822c52ca7704479bb7b89d34e288d4a8d759e442c8405d8bcd705442783eb057a1bd4abb39419eb75d11a664b68d78fdae0d117d06c3cee174564d8c
EBUILD calculate-desktop-3.1.5-r1.ebuild 822 SHA256 11d5239a44dce5568fb9ec95bcfc785c84f7ea491498e07dbf18e6d758e6bc98 SHA512 e2990b1943b41c2a9da2416c7d0fe5599812f94b6b16976d2f5ae6b7823cd4e549b83c9a06a9d39246f2bafe6ddcbc1c0a01b9d9b986abdd6c1bad583a85e631 WHIRLPOOL 5fb18f20b904acb0e3ffac858e7804c23a2fc1616f6358a32cd859b97419fb52eafe3c4f19cb9f710fb07c4b842f144f44f3b8311f6acc49c5470b3d513da3a3
EBUILD calculate-desktop-3.1.5-r2.ebuild 822 SHA256 e6e164213556ee9f6f6b9617d1133e80cc76e44fa4f2430fd41370c79614506a SHA512 cd1b8f57377a93f682eb71da5e511c5c2b3d476485abe4e155052ccef43281ce88e4aa5bb54b3d48f9cf8eec861a7f0d14d458621567878dcc993d22a768746f WHIRLPOOL 22343c9e8f73ae7a341f3fc923359a23bdb1f3a5ba925e4122fd86c513239b9344d92b81fb2cbad24c3798a0d1de8fa973452286a45d3fe4e82e897c6cd1ad9f
EBUILD calculate-desktop-3.1.5-r3.ebuild 822 SHA256 2f0c05db5b08a46e12ec146b2316e3555fcbf57769f1670954af4dd68a4d74aa SHA512 2a10049a0985ba013ccf7d24570f23ef65ab3d8277dd30cad4ecf49f6b7bb66c7540f1ff9bf509bf5eba7844f1f035de2ca6b9b9b7d46c82f9000cbb68df56bd WHIRLPOOL a1e682b49bbba359f0c8dc56ea77159616f6d085d8ede1a95a4577171a2048a781c01a199a40e53607235a085f8a8aa23261b1d7521b7a6fde851202bf98c5b5
EBUILD calculate-desktop-3.1.5.ebuild 685 SHA256 bc401b9d898e12e1bfd1359c4ed692dc826d87dd315522b28a403a4967042f93 SHA512 98a8b59029c9f0d3b1e5142cee74830ff60db9167c747263397b368b4fcbb34481d257de741c6f221f6109c73fc3dfb9cdb4e386456ab5ab966ad8c976e54a0f WHIRLPOOL c581e732b387004e344c26c672f94fff74ffc88ea7e7cc3a9e507565ffc7da2c979870cb7a71da93ab91e30dacf9c0fb60ea17a3ffc659b1d9c4d636f22a66dd
EBUILD calculate-desktop-3.1.5_beta1-r1.ebuild 834 SHA256 f979e2995a8116df661dce2a34bdd40f026c591ed31d6a48ddb3b78611e5fcbb SHA512 e659b9608218926ceba193ec62043c7ae8450e8becd0bbe53090f07ff2bc9f67065682691bec08bcacd4d9969ef87ac34038fb2bf8983a82cb5b01eb92390494 WHIRLPOOL d25ff40d9a616e5e8d3010c924aeb629b1c08782327991b006fec8fe24c58369f0e71fc619ed78b579ef8a7552ce66c2fac2364e63a6cb59cf5f70b0f91331ec
EBUILD calculate-desktop-3.1.9999.ebuild 976 SHA256 405de66b0f54804d4bc025fe786c21ca1a040d6a25928a535efbf84cacd7f505 SHA512 69ebfdc4c04f7c236f728c9938a5538b3822369cc1e1de2593a6e83178b5441ea2e37068ffcd9cf17aa92bcf00ee133ee98da0be5a5f591d69755e1159eeadac WHIRLPOOL c61f805379983ca23af188ff60a99511251a8afb27b75d0c1f08595012a579c42c2ef36603d837865a155706780ba413f0cac74457425eea0e0a59488e3dfda2

@ -0,0 +1,34 @@
# Copyright 1999-2012 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI="3"
SUPPORT_PYTHON_ABIS="1"
PYTHON_DEPEND="2:2.7"
RESTRICT_PYTHON_ABIS="2.4 2.5 2.6 3.*"
inherit distutils eutils
SRC_URI="ftp://ftp.calculate.ru/pub/calculate/calculate3/${PN}/${P}.tar.bz2"
DESCRIPTION="The program of the desktop configuration Calculate Linux"
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
LICENSE="Apache-2.0"
SLOT="3"
KEYWORDS="amd64 x86"
IUSE=""
DEPEND="~sys-apps/calculate-core-3.1.5
>=dev-python/python-ldap-2.0[ssl]
media-gfx/feh
x11-apps/xmessage
!<sys-apps/calculate-desktop-3.1.0_alpha1"
RDEPEND="${DEPEND}"
src_unpack() {
unpack "${A}"
cd "${S}"
# apply revision changes
epatch "${FILESDIR}/calculate-desktop-3.1.5-r3.patch"
}

@ -0,0 +1,197 @@
diff --git desktop/cl_desktop.py desktop/cl_desktop.py
index 9cfa6ef..c417f5e 100644
--- desktop/cl_desktop.py
+++ desktop/cl_desktop.py
@@ -25,7 +25,8 @@ import traceback
from datavars import DataVarsDesktop, DataVars, __version__,__app__
from calculate.lib.cl_template import Template, ProgressTemplate,TemplatesError
-from calculate.lib.utils.files import runOsCommand, isMount
+from calculate.lib.utils.files import runOsCommand, isMount,process, \
+ getRunCommands
from calculate.lib.utils.common import getpathenv,appendProgramToEnvFile, \
removeProgramToEnvFile
from calculate.core.server.func import safetyWrapper
@@ -33,6 +34,7 @@ from calculate.core.server.func import safetyWrapper
from calculate.lib.cl_lang import setLocalTranslate,getLazyLocalTranslate
setLocalTranslate('cl_desktop3',sys.modules[__name__])
__ = getLazyLocalTranslate(_)
+from itertools import ifilter
class DesktopError(Exception):
"""Desktop Error"""
@@ -237,3 +239,54 @@ class Desktop:
return False
return True
+ @safetyWrapper(native_errors=(TemplatesError,DesktopError),
+ man_int=__("Logout manually interrupted"),
+ post_action=umountUserRes,
+ success_message=__("The user logged out from the session!"),
+ failed_message=__("Unable to logout the user"))
+ def userLogout(self, datavars=None):
+ """
+ Raise user logout throught dbus
+ """
+ self.initVars(datavars)
+ if not self.clVars.Get('ur_login') in \
+ self.clVars.Get('cl_desktop_online_user'):
+ raise DesktopError(_("X session users not found"))
+ urLogin = self.clVars.Get('ur_login')
+ display = self.clVars.Select('cl_desktop_online_display',
+ where='cl_desktop_online_user',eq=urLogin,limit=1)
+ session = self.clVars.Get('cl_desktop_xsession')
+ if session == 'xfce':
+ logoutCommand = "org.xfce.SessionManager " \
+ "/org/xfce/SessionManager Logout False False"
+ elif session == 'kde':
+ logoutCommand = "org.kde.ksmserver /KSMServer logout 0 0 0"
+ elif session == 'gnome':
+ logoutCommand = "org.gnome.SessionManager " \
+ "/org/gnome/SessionManager Logout 1"
+ else:
+ raise DesktopError(_("Unable detect X session"))
+ if process("su",urLogin,"-c",
+ ("DISPLAY=:%s /usr/bin/qdbus "%display)+logoutCommand).failed():
+ raise DesktopError(_("Unable send logout command"))
+ for i in range(0,20):
+ if filter(lambda x: "xdm/xdm\x00--logout" in x,
+ getRunCommands()):
+ break
+ time.sleep(0.5)
+ if filter(lambda x: "xdm/xdm\x00--logout" in x,
+ getRunCommands()):
+ self.startTask(_("Waiting for completion of the user logout"))
+ for i in range(0,300):
+ if not filter(lambda x: "xdm/xdm\x00--logout" in x,
+ getRunCommands()):
+ return True
+ time.sleep(1)
+ self.endTask()
+ else:
+ raise DesktopError(_("Unable to wait for completion "
+ "of the user logout"))
+ if self.clVars.Get('ur_login') in \
+ self.clVars.Get('cl_desktop_online_user'):
+ raise DesktopError(_("Wrong logout"))
+ return True
diff --git desktop/cl_wsdl_desktop.py desktop/cl_wsdl_desktop.py
index e65b02f..2e5f09d 100644
--- desktop/cl_wsdl_desktop.py
+++ desktop/cl_wsdl_desktop.py
@@ -79,3 +79,34 @@ class Wsdl:
view = ViewInfo(dv,viewparams=params)
self.set_cache(sid, 'desktop', "vars",dv,smart=False)
return view
+
+ @rpc(Integer, DesktopInfo, _returns = Array(ReturnedMessage))
+ @core_method(category=__('Desktop'),title=__('Logout user'),
+ image='system-log-out',
+ gui=True,command='cl-desktop-logout',
+ rights=['userconfigure'])
+ def desktop_logout(self, sid, info):
+ return self.callMethod(sid,info,method_name="desktop_logout",
+ logicClass=Desktop,
+ method="userLogout")
+
+ def desktop_logout_vars(self,dv=None):
+ if not dv:
+ dv = DataVarsDesktop()
+ dv.importDesktop()
+ dv.flIniFile()
+ dv.addGroup(None,
+ normal=('ur_login',),
+ next_label=_("Logout"),)
+ return dv
+
+ @rpc(Integer, ViewParams,_returns = ViewInfo)
+ def desktop_logout_view (self, sid, params):
+ dv = self.get_cache(sid,"desktop_logout","vars")
+ if not dv:
+ dv = self.desktop_logout_vars()
+ else:
+ dv.processRefresh()
+ view = ViewInfo(dv,viewparams=params)
+ self.set_cache(sid, 'desktop_logout', "vars",dv,smart=False)
+ return view
diff --git desktop/variables/desktop.py desktop/variables/desktop.py
index 3a92ccb..28436c4 100644
--- desktop/variables/desktop.py
+++ desktop/variables/desktop.py
@@ -1,8 +1,11 @@
import os
import sys
+import re
from os import path
-from calculate.lib.datavars import Variable,VariableError,ReadonlyVariable
-from calculate.lib.utils.files import readLinesFile
+from calculate.lib.datavars import Variable,VariableError,ReadonlyVariable, \
+ ReadonlyTableVariable,FieldValue
+from calculate.lib.utils.files import readLinesFile,process
+from itertools import *
from calculate.lib.cl_lang import setLocalTranslate
setLocalTranslate('cl_desktop3',sys.modules[__name__])
@@ -151,3 +154,62 @@ class VariableClDesktopXfceMixer(ReadonlyVariable):
return "\n".join(
map(lambda x:' <value type="string" value="%s" />'%x,
self.Get('cl_desktop_gst_data').get('channels',[])))
+
+class VariableClDesktopOnlineData(ReadonlyTableVariable):
+ """
+ Information about online users
+ """
+ source = ['cl_desktop_online_user',
+ 'cl_desktop_online_display']
+
+ reDisplay = re.compile(r"^\(?:(\d+.?\d*)")
+
+ def _getDisplay(self,*args):
+ """
+ Get DISPLAY from args
+ """
+ for arg in map(self.reDisplay.search,args):
+ if arg:
+ return arg.group(1)
+ return ""
+
+ def get(self,hr=False):
+ xSession = 0
+ foundTwoSession = False
+ resWho = process("who")
+ xData = [[]]
+ if resWho.success():
+ listProcessing = lambda x: (x[0], x[1], x[4])\
+ if len(x)==5 else []
+ xData = map(lambda x:x[1].next(),
+ groupby(
+ sorted(
+ filter(lambda x: x[0]!="root",
+ map(lambda x: (x[0],self._getDisplay(x[1],x[2])),
+ filter(lambda x: x and\
+ (x[2].startswith("(:") or \
+ x[1].startswith(":")),
+ map(lambda x: listProcessing(\
+ filter(lambda y: y, x.split(" "))),
+ resWho)))),
+ key=lambda x:x[0]),
+ lambda x:x[0]))
+ return xData
+
+ setValue = Variable.setValue
+
+class VariableClDesktopOnlineUser(FieldValue,ReadonlyVariable):
+ """
+ User name
+ """
+ type = "list"
+ source_variable = "cl_desktop_online_data"
+ column = 0
+
+class VariableClDesktopOnlineDisplay(FieldValue,ReadonlyVariable):
+ """
+ Display for user
+ """
+ type = "list"
+ source_variable = "cl_desktop_online_data"
+ column = 1

@ -12,6 +12,7 @@ EBUILD calculate-utilities-3.1.5-r4.ebuild 764 SHA256 7e538d36e0b2fe880717dafd7c
EBUILD calculate-utilities-3.1.5-r5.ebuild 764 SHA256 7f0b1e95fa4709b01b85d46edf2dd548c73c4aaca3efc45820943ff80fd4e20c SHA512 d03de503c540f31888747e1b664502ebe4f3667fca277156d9d3babbedf996a9e42df087a2783a0efd2f6ae3068d7111a98ac2c23b12c2564d470b806d290520 WHIRLPOOL 77f719e710686069f7e26fe8bc205a337e9141e5834dadc3d9ccab5fbc78d0e71450ef49b25a506219c084c8e9e91787689b6406d8dffc1e3a75425ee8587d54
EBUILD calculate-utilities-3.1.5-r6.ebuild 767 SHA256 e140bfb26e714c9f8527d8608284d53b1f3be8980048ad004c0a0f42f95ff836 SHA512 134751059c32eea80264d48de46a7dba47412fe609ee8cbe41909a1b254a6076b1a04b76998afb6e472bc1f170e0cfa35c5ab37a69d6a555611d6ac85567e1f4 WHIRLPOOL f07775f0809194863d90ed5a9fceef896579510fab50cc98ec575969dd85868c232da3aa4161b0295be4d8a198bb1655a457b11983a5fcc65b99c3a2089a04c2
EBUILD calculate-utilities-3.1.5-r7.ebuild 767 SHA256 de14af91b9fe716cdde5d249666725d5d884a2456d89d70d31400863a5c18930 SHA512 b41be06b1cca0cbb66647dbd5e64e20922d1034bda879a36f6d0369cb856941d3d89d02e2b4562c597d69c370dacb6c4895182955de744e02b12bbc6aac55329 WHIRLPOOL dd51fbb5dc316a8056b8197e5f89ec2666f9e2f802989d4e74deb60d33013ea127ad6dcca1479ccd08e7d9de0433de4314fd7308e236d12ff4b656c612f678e8
EBUILD calculate-utilities-3.1.5-r8.ebuild 767 SHA256 52d25447a854d89509576853cb5f097e34bddcb9b72e64bf612d157973c7a380 SHA512 3d80aeb244df102b979feb4eaa90c17ce05dc83210b03f45d73ddcc2e8699683422ee0b4e516aca9984d75a8f766dc3f27f443b7f1cd01138c0ed7eb413e1594 WHIRLPOOL 2284f6aa1ee10d855c83281eaa85a8e552ab03674015e5bc502d4895ce6445a7be77a25f46ab1514ffcc294166fe68ed5a24998801c54b9ac989c9761438083f
EBUILD calculate-utilities-3.1.5.ebuild 749 SHA256 33d775d77afd4c72e6035a4105b7182f9043b7cfe228a76bcda180562f28864b SHA512 a661b81f97b2f1d58ace25c3d8da54ee004c5eb3a04455c9c3539165247a62967611ae74248280bd9ad1c1557cc3b2f309b541e1e7a29829d42b38619adbf9b1 WHIRLPOOL cc53e64b421ad6be525afd795bfe45b1cbba429f6f42960c5981ab4dd32823c12daf1733aa8a7f37bb3860832e9db3b3e13fba20b7c2b8a6476f34135943a1a5
EBUILD calculate-utilities-3.1.5_beta1-r5.ebuild 815 SHA256 988ca320e5abf595ff6b6f41b3f8a3ff94ae9dc61f8747ea89786ea576a1e111 SHA512 90609affca9300ded42e30be1fe4a08c4c10aaccfe4a69eb93d2a00e8faafc9e5adb7006e03896258f6064265798717f038bd7699c3725f9c874fc1a43767472 WHIRLPOOL 92bc0007ae4e0cb9523a627cb458e4c90db1200637dc1f6c36f5c2cd3c3247033a852ec4dca1d65dfacc7c2a98e8c45630a2e300eb7b3e19a2a84314d7bf0d98
EBUILD calculate-utilities-3.1.5_beta1-r6.ebuild 815 SHA256 f8e21f39250e63b2e9591ccb655a69ec7d59ce5c92363b716a9b710b8d2f0501 SHA512 e6da5224fec7711ae0f4f1d9431ef93710065652c7f129aa8abad5ae4bdee627c4e3de863afcf46d23094390c62b413c67d69bd1da5dfa78426008312767d8f8 WHIRLPOOL f79a8b0aeb30043db411fa3618cdaeec973865c5c8d6c8cbbab0f58373c3d37847897b24db94a7626ea33dc5a2edcb14553bfe51e22ff886481f91888fdc8f2f

@ -0,0 +1,26 @@
# Copyright 1999-2011 Gentoo Foundation
# Distributed under the terms of the GNU General Public License v2
# $Header: $
EAPI=4
DESCRIPTION="Calculate Utilities meta package"
HOMEPAGE="http://www.calculate-linux.org/main/en/calculate2"
SRC_URI=""
LICENSE="Apache-2.0"
SLOT="3"
KEYWORDS="amd64 x86"
IUSE="cl_consolegui cl_client cl_desktop cl_console"
RDEPEND="${RDEPEND}
=sys-apps/calculate-install-3.1.5-r4
=sys-apps/calculate-i18n-3.1.5-r1
=sys-apps/calculate-lib-3.1.5-r1
=sys-apps/calculate-core-3.1.5-r1
=sys-apps/calculate-update-3.1.5
cl_client? ( =sys-apps/calculate-client-3.1.5-r1 )
cl_desktop? ( =sys-apps/calculate-desktop-3.1.5-r3 )
cl_consolegui? ( =sys-apps/calculate-console-gui-3.1.5 )
cl_console? ( =sys-apps/calculate-console-3.1.5 )
"
Loading…
Cancel
Save