root 1 year ago
parent 9452e3d622
commit 3add380984

@ -32,10 +32,14 @@ class Taiga(MethodsInterface):
raise TaigaConnectionError(json.loads(resp.text)['status'])
def delete_user(self, server_url):
users = self.clVars.Get('cl_taiga_all_users')
users = self.clVars.Get('cl_taiga_users_login')
resp = requests.post(f"{server_url}/service_taiga/delete_user", json={'users': users})
return True
def change_user(self, server_url):
var = self.clVars.Get
user = var()
def create_template(self, server_url):
var = self.clVars.Get
name = var('cl_taiga_template_name')
@ -48,7 +52,6 @@ class Taiga(MethodsInterface):
var = self.clVars.Get
templates = var('cl_taiga_all_templates')
templates = [(x, ', '.join(y)) for x, y in templates]
#a = var('cl_taiga_templates_roles')
self.printTable('test', ['template name', 'template roles'], templates,
fields=['cl_taiga_templates_names', ''],
onClick="detailed_role_table",
@ -74,3 +77,20 @@ class Taiga(MethodsInterface):
resp = requests.post(f"{server_url}/service_taiga/change_template",
json={"template": template_name, "roles": template_roles})
return True
def show_user_table(self, server_url):
var = self.clVars.Get
users = [(x['full_name'], x['template'], x['extra_projects']) for x in var('cl_taiga_all_users')]
self.printTable('users', ['fio', 'user template', 'additional projects'], sorted(users),
fields=['cl_taiga_add_roles', ''],
addAction='create_user',
onClick='change_user')
return True
def change_user(self, server_url):
var = self.clVars.Get
user = var('cl_taiga_change_login')
roles = var('cl_taiga_add_roles')
resp = requests.post(f"{server_url}/service_taiga/change_user", json={"login": user, "roles": roles})
return True

@ -147,3 +147,32 @@ class ClTaigaChangeTable(Action):
'method': 'Taiga.change_template(cl_taiga_server_url)',
'message': 'Creating delete task'}
]
class ClTaigaUserTable(Action):
"""
Действие обновление конфигурационных файлов
"""
# ошибки, которые отображаются без подробностей
native_error = (TaigaConnectionError)
successMessage = "Created"
failedMessage = "Not created"
interruptMessage = __("Update manually interrupted")
tasks = [
{'name': 'view_table',
'method': 'Taiga.show_user_table(cl_taiga_server_url)'}
]
class ClTaigaChangeUser(Action):
"""Изменение данных пользователя"""
native_error = (TaigaConnectionError)
successMessage = "Created"
failedMessage = "Not created"
interruptMessage = __("Update manually interrupted")
tasks = [
{'name': 'change_user',
'method': 'Taiga.change_user(cl_taiga_server_url)'}
]

@ -1,4 +1,4 @@
from calculate.lib.datavars import Variable, VariableError
from calculate.lib.datavars import Variable, ReadonlyVariable, VariableError
import requests
import json
@ -28,6 +28,15 @@ class VariableClTaigaUserLogin(Variable):
class VariableClTaigaAllUsers(Variable):
type = 'list'
def get(self):
resp = requests.get(f"{self.Get('cl_taiga_server_url')}/service_taiga/users")
return resp.json()['data']
class VariableClTaigaUsersLogin(Variable):
users = 'cl_taiga_all_users'
type = 'choiceedit-list'
metavalue = 'ROLE'
opt = ['-q']
@ -42,8 +51,9 @@ class VariableClTaigaAllUsers(Variable):
raise ValueError('Can not be empty')
def choice(self):
resp = requests.get(f"{self.Get('cl_taiga_server_url')}/service_taiga/users")
return [str(x['login']) for x in resp.json()['data']]
resp = self.Get(self.users)
return [str(x['login']) for x in resp]
class VariableClTaigaProjectName(Variable):
@ -173,9 +183,6 @@ class VariableClTaigaAddRoles(Variable):
def get(self):
return [self.value]
def check(self, value):
return True
def choice(self):
resp = requests.get(f"{self.Get('cl_taiga_server_url')}/service_taiga/roles")
result = []
@ -185,3 +192,20 @@ class VariableClTaigaAddRoles(Variable):
if role['name'] != "AUTO":
result.append(f"{key} - {role['name']}")
return result
class VariableClTaigaChangeLogin(Variable):
type = 'choiceedit'
def init(self):
self.label = "User role"
self.help = "Roles user should be added to"
class VariableClTaigaChangeRoles(Variable):
type = 'choiceedit-list'
def init(self):
self.label = "Users projects"
self.help = "Choose new projects for user"

@ -18,7 +18,8 @@ import sys
from calculate.lib.cl_lang import setLocalTranslate, getLazyLocalTranslate
from calculate.core.server.func import WsdlBase
from .taiga import Taiga
from .utils.cl_taiga import ClTaigaCreateUser, ClTaigaDeleteUser, ClTaigaUpdateData, ClTaigaCreateTemplate, ClTaigaTestTable, ClTaigaDeleteFromTable, ClTaigaChangeTable
from .utils.cl_taiga import ClTaigaCreateUser, ClTaigaDeleteUser, ClTaigaUpdateData, ClTaigaCreateTemplate, \
ClTaigaTestTable, ClTaigaDeleteFromTable, ClTaigaChangeTable, ClTaigaUserTable, ClTaigaChangeUser
_ = lambda x: x
@ -87,7 +88,7 @@ class Wsdl(WsdlBase):
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Show user"),
normal=('cl_taiga_all_users',),
normal=('cl_taiga_users_login',),
next_label=_("Save"))]
},
{
@ -281,5 +282,65 @@ class Wsdl(WsdlBase):
'cl_taiga_templates_roles'))
]
},
{
# идентификатор метода
'method_name': "user_table",
# категория метода
'category': __('Taiga'),
# заголовок метода
'title': __("show user table"),
# иконка для графической консоли
'image': 'calculate-update',
# метод присутствует в графической консоли
'gui': True,
# консольная команда
'command': 'cl-taiga-user-table',
# права для запуска метода
'rights': ['taiga'],
# объект содержащий модули для действия
'logic': {'Taiga': Taiga},
# описание действия
'action': ClTaigaUserTable,
# объект переменных
'datavars': "taiga",
'native_error': (),
# значения по умолчанию для переменных этого метода
'setvars': {},
# описание груп (список лямбда функций)
'groups': []
},
{
# идентификатор метода
'method_name': "change_user",
# категория метода
'category': __('Taiga'),
# заголовок метода
'title': __("change user"),
# иконка для графической консоли
'image': 'calculate-update',
# метод присутствует в графической консоли
'gui': True,
# консольная команда
'command': 'cl-taiga-change-user',
# права для запуска метода
'rights': ['taiga'],
# объект содержащий модули для действия
'logic': {'Taiga': Taiga},
# описание действия
'action': ClTaigaChangeUser,
# объект переменных
'datavars': "taiga",
'native_error': (),
# значения по умолчанию для переменных этого метода
'setvars': {},
# описание груп (список лямбда функций)
'groups': [
lambda group: group(_("Table details"),
normal=(
'cl_taiga_change_login',
'cl_taiga_add_roles'),
next_label=_("Save"))
]
},
]

Loading…
Cancel
Save