You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
calculate-utils-3-client/pym/client/wsdl_client.py

194 lines
9.2 KiB

9 years ago
# -*- coding: utf-8 -*-
# Copyright 2012-2016 Mir Calculate. http://www.calculate-linux.org
12 years ago
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
# http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.
import sys
12 years ago
from calculate.lib.datavars import VariableError, DataVarsError
from calculate.core.server.func import WsdlBase
from calculate.desktop.desktop import DesktopError
from client import ClientError
from calculate.lib.utils.samba import SambaError
from utils.cl_client import ClClientAction
from utils.cl_passwd import ClPasswdAction
from utils.cl_client_sync import (ClClientSyncLoginAction,
ClClientSyncLogoutAction)
import calculate.desktop.desktop as desktop
import calculate.client.client as client
12 years ago
from calculate.lib.cl_lang import setLocalTranslate, getLazyLocalTranslate
12 years ago
9 years ago
_ = lambda x: x
setLocalTranslate('cl_client3', sys.modules[__name__])
12 years ago
__ = getLazyLocalTranslate(_)
class Wsdl(WsdlBase):
methods = [
#
# ввести машину в домен или вывести
#
{
# идентификатор метода
'method_name': "client",
# категория метода
'category': __('Client'),
# заголовок метода
'title': __("Domain"),
# иконка для графической консоли
'image': 'calculate-client,network-server,network-workgroup',
# метод присутствует в графической консоли
'gui': True,
# консольная команда
'command': 'cl-client',
# права для запуска метода
'rights': ['domain'],
# объект содержащий модули для действия
'logic': {'Desktop': desktop.Desktop,
'Client': client.Client},
# описание действия
'action': ClClientAction,
# объект переменных
'datavars': "client",
'native_error': (VariableError, DataVarsError,
SambaError,
ClientError, DesktopError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'domain',
9 years ago
},
'guivars': {'cl_localhost_set!': lambda dv: (
"on" if dv.Get('cl_remote_host') == '' else 'off')},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Domain"),
normal=(
9 years ago
'cl_localhost_set',
'cl_remote_host_new',
'cl_remote_pw'),
expert=('cl_client_mount_set',
'cl_templates_locate',
'cl_verbose_set',
'cl_dispatch_conf'),
next_label=_("Execute"))]},
#
# подключить удаленные ресурсы пользователя
#
{
# идентификатор метода
'method_name': "client_sync_login",
# категория метода
'category': __('Client'),
# заголовок метода
'title': __("Domain User Login"),
# иконка для графической консоли
'image': 'calculate-client-sync-login,application-other',
# метод не присутствует в графической консоли
'gui': False,
# консольная команда
'command': 'cl-client-sync-login',
# права для запуска метода
'rights': ['domainuser'],
# объект содержащий модули для действия
'logic': {'Desktop': desktop.Desktop,
'Client': client.Client},
# описание действия
'action': ClClientSyncLoginAction,
# объект переменных
'datavars': "client",
'native_error': (VariableError, DataVarsError,
SambaError,
ClientError, DesktopError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'login'},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Domain user login"),
normal=('ur_login', 'cl_client_sync'),
expert=('cl_client_ignore_errors_set',),
next_label=_("Execute"))]},
#
# отключить удаленные ресурсы пользователя
#
{
# идентификатор метода
'method_name': "client_sync_logout",
# категория метода
'category': __('Client'),
# заголовок метода
'title': __("Domain User Logout"),
# иконка для графической консоли
'image': 'calculate-client-sync-logout,application-other',
# метод не присутствует в графической консоли
'gui': False,
# консольная команда
'command': 'cl-client-sync-logout',
# права для запуска метода
'rights': ['domainuser'],
# объект содержащий модули для действия
'logic': {'Desktop': desktop.Desktop,
'Client': client.Client},
# описание действия
'action': ClClientSyncLogoutAction,
# объект переменных
'datavars': "client",
'native_error': (VariableError, DataVarsError,
SambaError,
ClientError, DesktopError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'logout'},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Domain user logout"),
normal=('ur_login', 'cl_client_sync'),
next_label=_("Execute"))]},
#
# сменить пароль доменного пользователя
#
{
# идентификатор метода
'method_name': "client_passwd",
# категория метода
'category': __('Client'),
# заголовок метода
'title': __("Password Modification"),
# иконка для графической консоли
'image': 'calculate-client-passwd,preferences-system-privacy,system-users',
# метод присутствует в графической консоли
'gui': True,
# пользовательский метода
'user': True,
# консольная команда
'command': 'cl-passwd',
# права для запуска метода
'rights': ['password'],
# объект содержащий модули для действия
'logic': {'Desktop': desktop.Desktop,
'Client': client.Client},
# описание действия
'action': ClPasswdAction,
# объект переменных
'datavars': "client",
'native_error': (VariableError, DataVarsError,
SambaError,
ClientError, DesktopError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': 'passwd'},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Password modification"),
normal=('cl_client_login', 'ur_user_pw',
'ur_user_new_pw'),
next_label=_("Save"))]},
]