Update desktop

atratsevskiy
parent cc47f62358
commit 6e1ca58e20

@ -1,6 +1,7 @@
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-r4.patch 7785 SHA256 3b9b7c16457e40196fb9c89be8270fcfa3caa9066ea03a531dcbe93425cf26f5 SHA512 106fffe62f1d48787874f3f6a91844b577fba10990aa0e4358810c25e58bb05d1ac0ee86fb7fcc641e7ff2bfb243e87637403ab4df52c3bbf25d8eaf0beafb77 WHIRLPOOL 8771a923aec78392ea192349042f7a95222f4ccd3b6a0f15853877ca81d7458721996904086434c8b2e8f746427d46c7b1f00b6fa088d0ffdee773a38437d211
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
@ -9,6 +10,7 @@ EBUILD calculate-desktop-3.1.3.ebuild 686 SHA256 ec60521da0de7477ff78c0f70d0c5e3
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-r4.ebuild 822 SHA256 570bc4db7b382e96e60bcb16d422d9dc8c1dac9e93cc69fcc11b950b66be36d1 SHA512 4e7f0679af029ba650c28917d9261b4cd62abcfe6a8f216f4db1c66ee9a21bc4e9869ac41d4f712911a81aee70b98f302bc4e4a81b22dfc4ca2dabb2c16a026c WHIRLPOOL 093e90e815250385465ae4f2a6b2577301a00a7d5d95801a26abac088f722b80d5f3cffc45d545a86476bc1ce6017b9ec39fb0982c35ad28aa2869ab848f07e6
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-r4.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..34b2e4b 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[-1]) \
+ 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

@ -6,6 +6,7 @@ EBUILD calculate-utilities-2.2.31-r15.ebuild 675 SHA256 c833c507b1bd62e0b2090f98
EBUILD calculate-utilities-2.2.9999.ebuild 842 SHA256 56d97b7d2ce11d23b25d9036b4e2ee196b547ce1d11b0cc349a8205515b66bf1 SHA512 fc7802b92ade52210fa7381b55c48638da6d9adee6d2f03f18d6bdd0050756089b3ca8de944f4e865517554523b40737abe9f22587ecae74079eec563f80868b WHIRLPOOL f1382f0629a8dae37aaecf40cb8cbc3682bde3b43e92c9c6a84cda75897dc5d5de043233fb7a3f929749520b05fe3af94187c7a3ccdae4e252e83699d871f225
EBUILD calculate-utilities-3.1.3-r9.ebuild 767 SHA256 a1a93ab24ec697f520cf5ab19223915b0af298bcec5435d41e692ffb617902c9 SHA512 bb69723f6357ecf5153b0aa6cb5b0109c536c2474a66006df17796f77a6e7d27cc637185a75e13c9b389888ce642c6925cf2006f54bbf389c2322f6265ff7fb7 WHIRLPOOL 383d081d86935ea916761e62b8795c1354bc938249979e61d28112b77058a4c61b0225012f30edb1fe235a2e06267028fe4f0668d789e10f42a8db368de3b452
EBUILD calculate-utilities-3.1.5-r1.ebuild 755 SHA256 4debfe03bbb90ef10f3f4aef084957a61b0c6b5efb0c89faf17593c48b0b79de SHA512 6c54d46bb3cf8507329b1f8d157f9ff954932040404c02b431c94844b8dbe03f996095e2e1a98ac6f54ef724cc5a8b280973c24360ebcd045f9de8a4bc30e4da WHIRLPOOL ac069a3c862b2fc788f7b8d5198c58ee0279f8ff7db61b1149ff0831ffdc29e4342991571bc2bd2f6759b28c49d7cd3c0b80dd6b909db647d05de8652e8a581b
EBUILD calculate-utilities-3.1.5-r10.ebuild 767 SHA256 bcd17266b0f5445c455ec4018aa029371a78a70aa1afed5b9c1934a0c21f8b34 SHA512 b1f5da217ab76d94f8f0470fee3f595ba7d6b35dfd743c7c52dd2a35354773d74b500bc60e759d01c8fec4d3c7e3326e6af5390f69f425714f82670de7ff8b5c WHIRLPOOL 21aa75058b96f20d10550e4f7743fca3a6a60bf6bbdcf276dc2ae450821db1ad7e4c771af68673b351ae30b9d02d64decd47e7d2f52f0f9889f96766c390e1ed
EBUILD calculate-utilities-3.1.5-r2.ebuild 758 SHA256 d2c738de96bc208b18c532df00f87b8f28c02984c1a70239d7d4ca542a05a1f6 SHA512 0d75d3c305704084efdc71a60d11d22434c3e158e881df9c4420cde56a09dff0a551185aca8d51fdd56189e372fc95de269658d6cc0c8e8a1f3331dafa9fdc03 WHIRLPOOL 1fea249c2076670f266842798a0561e1acdb721f52f2a79f80a52f4b2f6d42f5fe62754f4b7a5d11265af4e66cf038ae4254f9f0b13a2720565e0eecba12e6d7
EBUILD calculate-utilities-3.1.5-r3.ebuild 761 SHA256 9b97a2a3b45b65da291bf4845ed2b4b022a43b656dc402d5f5cfc78f1d5a44ec SHA512 fb6a0a35db4d9059bf24d88875b3f49bc8b255b018e2be02acd2cabcbb12830aecd30b1d6774f94fa079ffa370292c543bd6c7cc93c9eb2fc41280a2a03ac2d2 WHIRLPOOL 736bd31de1e7af15b3e35ee7cdee54fb6a656d988980b82d04cb2b6063ccd7eec5cde2e61a247c8d5392a3de213ca4783a750dcde5b8100cca98dbe1d02600bb
EBUILD calculate-utilities-3.1.5-r4.ebuild 764 SHA256 7e538d36e0b2fe880717dafd7c1335b18b0f1104ad1b81159cf4b8e7d33b6523 SHA512 bdc639603a5b0b756d080bdcc9130cc3afb70952d159fafd0c2a10348771bb12ed3cd65e5a6242174e6e1c2f6a844471d08f828ab46433304871beed9b76ed42 WHIRLPOOL c87d413a58d98f31bf058e4871fb91ddfe26f9d62c00a947a78ae3114f330896935795809f311a5fa9a211702384a12c3ec6fad1fbf9d845b068b9198f38d5d2

@ -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-r5
=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-r4 )
cl_consolegui? ( =sys-apps/calculate-console-gui-3.1.5 )
cl_console? ( =sys-apps/calculate-console-3.1.5 )
"
Loading…
Cancel
Save