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-unix/pym/unix/wsdl_unix.py

657 lines
29 KiB

# -*- coding: utf-8 -*-
# Copyright 2016 Mir Calculate. http://www.calculate-linux.org
#
# 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
from calculate.lib.datavars import VariableError, DataVarsError
from calculate.core.server.func import WsdlBase, CustomButton
преди 8 години
from .unix import Unix, UnixError
from calculate.ldap.ldap import LdapError
преди 8 години
from calculate.unix.variables.action import Actions
from calculate.server.server import Server
преди 8 години
from calculate.server.variables.action import Actions as ServerActions
from utils.cl_unix_setup import ClUnixSetupAction
преди 8 години
from utils.cl_unix_useradd import ClUnixUseraddAction
from utils.cl_unix_usermod import ClUnixUsermodAction
from utils.cl_unix_userdel import ClUnixUserdelAction
from utils.cl_unix_passwd import ClUnixPasswdAction
from utils.cl_unix_groupadd import ClUnixGroupaddAction
from utils.cl_unix_groupmod import ClUnixGroupmodAction
from utils.cl_unix_groupdel import ClUnixGroupdelAction
from utils.cl_unix_groupshow import ClUnixGroupshowAction
from utils.cl_unix_usershow import ClUnixUsershowAction
from calculate.ldap.ldap import Ldap
_ = lambda x: x
from calculate.lib.cl_lang import setLocalTranslate, getLazyLocalTranslate
преди 8 години
setLocalTranslate('cl_unix3', sys.modules[__name__])
__ = getLazyLocalTranslate(_)
class Wsdl(WsdlBase):
methods = [
#
# Настроить службу
#
{
# идентификатор метода
преди 8 години
'method_name': Unix.Method.Setup,
# категория метода
преди 8 години
'category': __('Setup Server'),
# заголовок метода
преди 8 години
'title': __("Unix Accounts"),
# иконка для графической консоли
преди 8 години
'image': 'calculate-unix-setup,preferences-system-login,ooo-base,'
'office-database',
# метод присутствует в графической консоли
'gui': True,
# консольная команда
преди 8 години
'command': 'cl-unix-setup',
# права для запуска метода
преди 8 години
'rights': ['unix'],
# объект содержащий модули для действия
преди 8 години
'logic': {'Unix': Unix,
'Server': Server},
# описание действия
преди 8 години
'action': ClUnixSetupAction,
# объект переменных
преди 8 години
'datavars': "unix",
преди 8 години
'native_error': (
VariableError, DataVarsError, LdapError, UnixError),
# значения по умолчанию для переменных этого метода
преди 8 години
'setvars': {'cl_action!': ServerActions.Setup,
преди 8 години
'server.cl_server_name': Unix.service_name,
'cl_unix_action': Actions.Setup,
преди 8 години
'cl_autoupdate_set': 'on'
преди 8 години
# 'cl_dispatch_conf_default': "usenew"
преди 8 години
},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(
преди 7 години
_("Unix Accounts"),
преди 8 години
brief=(
'ldap.ld_base_dn',
'server.sr_ldap_set',
'server.sr_unix_set',
),
expert=('cl_unix_pw_generate_set',
'cl_unix_remove_set',
преди 8 години
'cl_verbose_set',),
hide=(),
преди 8 години
custom_buttons=[
CustomButton.run_method(
Unix.Method.Setup, "but0", _("Remove"),
CustomButton.Behavior.setvalue(
'cl_unix_remove_set', 'on'),
lambda Get: Get('server.sr_unix_set') == 'on'),
CustomButton.next_button("but1")
преди 8 години
]
преди 8 години
),
],
'depends': [Ldap.Method.Setup],
преди 7 години
'brief': {'next': __("Run"),
преди 7 години
'name': __("Setup Accounts Server"), }
преди 8 години
},
#
# Добавить пользователя
#
{
# идентификатор метода
'method_name': Unix.Method.UserAdd,
# заголовок метода
преди 7 години
'title': __("Add User"),
преди 8 години
# иконка для графической консоли
преди 8 години
'image': None,
преди 8 години
# метод присутствует в графической консоли
преди 8 години
'gui': True,
преди 8 години
# консольная команда
'command': 'cl-unix-useradd',
# права для запуска метода
'rights': ['unix'],
# объект содержащий модули для действия
'logic': {'Unix': Unix,
'Server': Server},
# описание действия
'action': ClUnixUseraddAction,
# объект переменных
'datavars': "unix",
'native_error': (
VariableError, DataVarsError, LdapError, UnixError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': ServerActions.Setup,
'server.cl_server_name': Unix.service_name,
'cl_unix_action': Actions.UserAdd,
'cl_autoupdate_set': 'on',
'ldap.cl_ldap_bind_dn!': '{ld_unix_bind_dn}',
преди 8 години
'ldap.cl_ldap_bind_pw!': '{ld_unix_pw}',
# 'cl_dispatch_conf_default': "usenew"
},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(
_("User"),
brief=('ur_unix_login',),
normal=(
'ur_unix_login',
'ur_unix_pw',
'ur_unix_comment',
'ur_unix_primary_group',
'ur_unix_groups',
),
expert=(
'ur_unix_uid',
'ur_unix_home_path',
'ur_unix_shell',
'ur_unix_create_home_set',
'ur_unix_visible_set',
'ur_unix_skel',
),
преди 7 години
next_label=_("Run")
преди 8 години
),
],
преди 8 години
'depends': [Unix.Method.Setup],
преди 8 години
},
#
# Добавить группу
#
{
# идентификатор метода
'method_name': Unix.Method.GroupAdd,
# заголовок метода
преди 7 години
'title': __("Add Group"),
преди 8 години
# иконка для графической консоли
преди 8 години
'image': None,
преди 8 години
# метод присутствует в графической консоли
преди 8 години
'gui': True,
преди 8 години
# консольная команда
'command': 'cl-unix-groupadd',
# права для запуска метода
'rights': ['unix'],
# объект содержащий модули для действия
'logic': {'Unix': Unix,
'Server': Server},
# описание действия
'action': ClUnixGroupaddAction,
# объект переменных
'datavars': "unix",
'native_error': (
VariableError, DataVarsError, LdapError, UnixError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': ServerActions.Setup,
'server.cl_server_name': Unix.service_name,
'cl_unix_action': Actions.GroupAdd,
'cl_autoupdate_set': 'on',
'ldap.cl_ldap_bind_dn!': '{ld_unix_bind_dn}',
преди 8 години
'ldap.cl_ldap_bind_pw!': '{ld_unix_pw}',
# 'cl_dispatch_conf_default': "usenew"
},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(
преди 7 години
_("Add New Group"),
преди 8 години
brief=(),
hide=('ur_unix_base_dir',),
normal=(
'ur_unix_group_name',
'ur_unix_group_id',
'ur_unix_group_comment',
),
expert=(),
преди 7 години
next_label=_("Run")
преди 8 години
),
],
преди 8 години
'depends': [Unix.Method.Setup],
преди 8 години
},
#
# Изменить параметры группы
#
{
# идентификатор метода
'method_name': Unix.Method.GroupMod,
# заголовок метода
преди 7 години
'title': __("Modify Group"),
преди 8 години
# иконка для графической консоли
преди 8 години
'image': None,
преди 8 години
# метод присутствует в графической консоли
преди 8 години
'gui': True,
преди 8 години
# консольная команда
'command': 'cl-unix-groupmod',
# права для запуска метода
'rights': ['unix'],
# объект содержащий модули для действия
'logic': {'Unix': Unix,
'Server': Server},
# описание действия
'action': ClUnixGroupmodAction,
# объект переменных
'datavars': "unix",
'native_error': (
VariableError, DataVarsError, LdapError, UnixError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': ServerActions.Setup,
'server.cl_server_name': Unix.service_name,
'cl_unix_action': Actions.GroupMod,
'cl_autoupdate_set': 'on',
'ldap.cl_ldap_bind_dn!': '{ld_unix_bind_dn}',
преди 8 години
'ldap.cl_ldap_bind_pw!': '{ld_unix_pw}',
# 'cl_dispatch_conf_default': "usenew"
},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(
_("Group"),
brief=('ur_unix_group_name_exists',),
normal=(
'ur_unix_group_name_exists',
'ur_unix_group_newname',
'ur_unix_group_id',
'ur_unix_group_comment',
'ur_unix_group_users_replace',
),
hide=('ur_unix_group_users_replace',),
expert=(
'ur_unix_group_users_add',
'ur_unix_group_users_del',
),
custom_buttons=[
CustomButton.run_method(
Unix.Method.GroupShow, 'but0', _("Back")),
CustomButton.run_method(
Unix.Method.GroupDel, 'but1', _("Delete"),
CustomButton.Behavior.linkerror(
source='ur_unix_group_name_exists',
target='ur_unix_group_newname')),
CustomButton.run_method(
Unix.Method.GroupMod, 'but2', _("Modify")),
преди 8 години
]
),
],
'invalidators': {
'ur_unix_group_name_exists': (
'ur_unix_group_id',
'ur_unix_group_comment',
'ur_unix_group_newname',
'ur_unix_group_users_replace',
'ur_unix_group_users_add',
'ur_unix_group_users_del',)
},
преди 8 години
'depends': [Unix.Method.Setup],
преди 8 години
},
#
# Удалить группу
#
{
# идентификатор метода
'method_name': Unix.Method.GroupDel,
# заголовок метода
преди 7 години
'title': __("Delete Group"),
преди 8 години
# иконка для графической консоли
преди 8 години
'image': None,
преди 8 години
# метод присутствует в графической консоли
преди 8 години
'gui': True,
преди 8 години
# консольная команда
'command': 'cl-unix-groupdel',
# права для запуска метода
'rights': ['unix'],
# объект содержащий модули для действия
'logic': {'Unix': Unix,
'Server': Server},
# описание действия
'action': ClUnixGroupdelAction,
# объект переменных
'datavars': "unix",
'native_error': (
VariableError, DataVarsError, LdapError, UnixError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': ServerActions.Setup,
'server.cl_server_name': Unix.service_name,
'cl_unix_action': Actions.GroupDel,
'cl_autoupdate_set': 'on',
'ldap.cl_ldap_bind_dn!': '{ld_unix_bind_dn}',
преди 8 години
'ldap.cl_ldap_bind_pw!': '{ld_unix_pw}',
# 'cl_dispatch_conf_default': "usenew"
},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(
_("Group"),
brief=(),
normal=(
'ur_unix_group_name_exists',
),
преди 7 години
next_label=_("Run")
преди 8 години
),
],
преди 8 години
'depends': [Unix.Method.Setup]
преди 8 години
},
#
# Изменить параметры пользователя
#
{
# идентификатор метода
'method_name': Unix.Method.UserMod,
# заголовок метода
преди 7 години
'title': __("Modify User"),
преди 8 години
# иконка для графической консоли
преди 8 години
'image': None,
преди 8 години
# метод присутствует в графической консоли
преди 8 години
'gui': True,
преди 8 години
# консольная команда
'command': 'cl-unix-usermod',
# права для запуска метода
'rights': ['unix'],
# объект содержащий модули для действия
'logic': {'Unix': Unix,
'Server': Server},
# описание действия
'action': ClUnixUsermodAction,
# объект переменных
'datavars': "unix",
'native_error': (
VariableError, DataVarsError, LdapError, UnixError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': ServerActions.Setup,
'server.cl_server_name': Unix.service_name,
'cl_unix_action': Actions.UserMod,
'cl_autoupdate_set': 'on',
'ldap.cl_ldap_bind_dn!': '{ld_unix_bind_dn}',
преди 8 години
'ldap.cl_ldap_bind_pw!': '{ld_unix_pw}',
# 'cl_dispatch_conf_default': "usenew"
},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(
_("User"),
normal=(
'ur_unix_login_exists',
'ur_unix_pw',
'ur_unix_primary_group',
'ur_unix_comment',
'ur_unix_groups',
),
expert=(
'ur_unix_groups_add',
'ur_unix_groups_del',
'ur_unix_lock_set',
'ur_unix_pw_delete_set',
'ur_unix_visible_set',
преди 8 години
'ur_unix_home_path',
'ur_unix_home_path_move',
'ur_unix_shell',
),
custom_buttons=[
CustomButton.run_method(Unix.Method.UserShow,
'but0', _("Back")),
CustomButton.run_method(Unix.Method.UserDel,
'but1', _("Delete")),
CustomButton.run_method(Unix.Method.UserMod,
'but2', _("Modify"))
преди 8 години
],
преди 7 години
next_label=_("Run")
преди 8 години
),
],
'invalidators': {
'ur_unix_login_exists': (
'ur_unix_primary_group',
'ur_unix_comment',
'ur_unix_groups',
'ur_unix_visible_set',
'ur_unix_lock_set',
'ur_unix_groups_add',
'ur_unix_groups_del',
'ur_unix_home_path',
'ur_unix_home_path_move',
'ur_unix_shell',
'ur_unix_pw_delete_set',
)
},
преди 8 години
'depends': [Unix.Method.Setup]
преди 8 години
},
#
# Удалить пользователя
#
{
# идентификатор метода
'method_name': Unix.Method.UserDel,
# заголовок метода
преди 7 години
'title': __("Delete User"),
преди 8 години
# иконка для графической консоли
преди 8 години
'image': None,
преди 8 години
# метод присутствует в графической консоли
преди 8 години
'gui': True,
преди 8 години
# консольная команда
'command': 'cl-unix-userdel',
# права для запуска метода
'rights': ['unix'],
# объект содержащий модули для действия
'logic': {'Unix': Unix,
'Server': Server},
# описание действия
'action': ClUnixUserdelAction,
# объект переменных
'datavars': "unix",
'native_error': (
VariableError, DataVarsError, LdapError, UnixError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': ServerActions.Setup,
'server.cl_server_name': Unix.service_name,
'cl_unix_action': Actions.UserDel,
'cl_autoupdate_set': 'on',
'ldap.cl_ldap_bind_dn!': '{ld_unix_bind_dn}',
преди 8 години
'ldap.cl_ldap_bind_pw!': '{ld_unix_pw}',
# 'cl_dispatch_conf_default': "usenew"
},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(
_("User"),
brief=(),
normal=(
'ur_unix_login_exists',
),
преди 7 години
next_label=_("Run")
преди 8 години
),
],
преди 8 години
'depends': [Unix.Method.Setup]
преди 8 години
},
#
# Сменить пароль пользователю
#
{
# идентификатор метода
'method_name': Unix.Method.Passwd,
# заголовок метода
преди 7 години
'title': __("Password Modification"),
преди 8 години
# иконка для графической консоли
преди 8 години
'image': None,
преди 8 години
# метод присутствует в графической консоли
'gui': False,
# консольная команда
'command': 'cl-unix-passwd',
# права для запуска метода
'rights': ['unix'],
# объект содержащий модули для действия
'logic': {'Unix': Unix,
'Server': Server},
# описание действия
'action': ClUnixPasswdAction,
# объект переменных
'datavars': "unix",
'native_error': (
VariableError, DataVarsError, LdapError, UnixError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': ServerActions.Setup,
'server.cl_server_name': Unix.service_name,
'cl_unix_action': Actions.Passwd,
'cl_autoupdate_set': 'on',
'ldap.cl_ldap_bind_dn!': '{ld_unix_bind_dn}',
преди 8 години
'ldap.cl_ldap_bind_pw!': '{ld_unix_pw}',
# 'cl_dispatch_conf_default': "usenew"
},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(
_("User"),
brief=(),
normal=(
'ur_unix_login_exists',
'ur_unix_pw',
'ur_unix_pw_delete_set',
'ur_unix_lock_set'
),
преди 7 години
next_label=_("Run")
преди 8 години
),
],
преди 8 години
'depends': [Unix.Method.Setup]
преди 8 години
},
#
# Просмотр групп
#
{
# идентификатор метода
'method_name': Unix.Method.GroupShow,
# категория метода
преди 7 години
'category': __('Accounts Server'),
преди 8 години
# заголовок метода
'title': __("Unix Groups"),
# иконка для графической консоли
преди 8 години
'image': 'calculate-unix-groupshow,group,system-users',
преди 8 години
# метод присутствует в графической консоли
'gui': lambda Get: Get('server.sr_unix_set') == 'on',
# консольная команда
'command': 'cl-unix-groupshow',
# права для запуска метода
'rights': ['unix'],
# объект содержащий модули для действия
'logic': {'Unix': Unix,
'Server': Server},
# описание действия
'action': ClUnixGroupshowAction,
# объект переменных
'datavars': "unix",
'native_error': (
VariableError, DataVarsError, LdapError, UnixError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': ServerActions.Setup,
'server.cl_server_name': Unix.service_name,
'cl_unix_action': Actions.GroupShow,
'cl_autoupdate_set': 'on',
'core.cl_page_max!': '{ur_unix_group_count}',
'ldap.cl_ldap_bind_dn!': '{ld_unix_bind_dn}',
преди 8 години
'ldap.cl_ldap_bind_pw!': '{ld_unix_pw}',
# 'cl_dispatch_conf_default': "usenew"
},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(
_("Groups"),
brief=(),
next_label=_("Show"),
normal=(
'ur_unix_group_show',
'core.cl_page_count', 'core.cl_page_offset',
),
expert=(
преди 8 години
'cl_unix_group_filter_name',
'cl_unix_group_filter_id',
'cl_unix_group_filter_comment',
'cl_unix_group_filter_users',
преди 8 години
'cl_unix_group_fields',
преди 8 години
),
custom_buttons=[
CustomButton.open_method(Unix.Method.GroupAdd,
'but0', _("Add Group")),
CustomButton.run_method(Unix.Method.GroupShow,
'but1', _("Show"))
преди 8 години
]
),
],
'depends': [Unix.Method.Setup]
},
#
# Просмотр пользователей
#
{
# идентификатор метода
'method_name': Unix.Method.UserShow,
# категория метода
преди 7 години
'category': __('Accounts Server'),
преди 8 години
# заголовок метода
'title': __("Unix Users"),
# иконка для графической консоли
преди 8 години
'image': 'calculate-unix-usershow,user,stock_person,system-users',
преди 8 години
# метод присутствует в графической консоли
'gui': lambda Get: Get('server.sr_unix_set') == 'on',
# консольная команда
'command': 'cl-unix-usershow',
# права для запуска метода
'rights': ['unix'],
# объект содержащий модули для действия
'logic': {'Unix': Unix,
'Server': Server},
# описание действия
'action': ClUnixUsershowAction,
# объект переменных
'datavars': "unix",
'native_error': (
VariableError, DataVarsError, LdapError, UnixError),
# значения по умолчанию для переменных этого метода
'setvars': {'cl_action!': ServerActions.Setup,
'server.cl_server_name': Unix.service_name,
'cl_unix_action': Actions.UserShow,
'cl_autoupdate_set': 'on',
'core.cl_page_max!': '{ur_unix_user_count}',
'ldap.cl_ldap_bind_dn!': '{ld_unix_bind_dn}',
преди 8 години
'ldap.cl_ldap_bind_pw!': '{ld_unix_pw}',
# 'cl_dispatch_conf_default': "usenew"
},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(
_("Users"),
brief=(),
next_label=_("Show"),
normal=(
'ur_unix_user_show',
'core.cl_page_count', 'core.cl_page_offset',
),
expert=(
преди 8 години
'cl_unix_user_filter_login',
'cl_unix_user_filter_pw_set',
'cl_unix_user_filter_comment',
'cl_unix_user_filter_uid',
'cl_unix_user_filter_gid',
'cl_unix_user_filter_groups',
'cl_unix_user_filter_home_path',
'cl_unix_user_filter_shell',
'cl_unix_user_filter_visible_set',
'cl_unix_user_filter_lock_set',
преди 8 години
'cl_unix_user_fields',
преди 8 години
),
custom_buttons=[
CustomButton.open_method(Unix.Method.UserAdd,
'but0', _("Add User")),
CustomButton.run_method(Unix.Method.UserShow,
'but1', _("Show")),
преди 8 години
]
),
],
'depends': [Unix.Method.Setup]
},
]