Добавлена настройка админов в устанавливаемую систему

master-3.5
parent ec53b8a92a
commit f65739b4d3

@ -25,6 +25,7 @@ import glob
import shutil
from time import sleep
from calculate.core.server.func import MethodsInterface
from calculate.core.server.admin import Admins
from calculate.lib.utils.files import (pathJoin,
isMount, process, listDirectory,
checkUtils, readFile, find, copyWithPath,
@ -572,6 +573,19 @@ class Install(MethodsInterface):
shutil.move(fn, new_name)
return True
def update_admin_ini(self):
"""
Обновить список локальных администраторов при установке
"""
install_admin = Admins(dv, chroot=True)
install_admin.clear()
for k,v in dv.select('install.cl_migrate_user',
'install.cl_migrate_admin',
install_cl_migrate_admin__ne="none"):
install_admin[k] = v
install_admin.save()
return True
def init_themes(self):
self.clVars.Get('cl_splash_image_hash')
self.clVars.Get('cl_grub_image_hash')

@ -31,9 +31,11 @@ from calculate.lib.utils.common import getUserPrimaryGroup
from calculate.lib.utils.portage import isPkgInstalled
from calculate.lib.utils.device import getUdevDeviceInfo
from calculate.lib.encrypt import sha256_crypt
from calculate.core.server.admin import Admins
from calculate.lib.variables.system import RootType
from autopartition import SchemeOpt, SchemeDevices
from calculate.lib.encrypt import get_shadow_hash, get_grub_hash
from calculate.core.server.admin import Admins
import calculate.lib.cl_ini_parser as cl_ini_parser
from calculate.lib.cl_lang import setLocalTranslate, _
@ -297,7 +299,7 @@ class VariableClMigrateData(UserHelper, TableVariable):
type = 'table'
opt = ["--user", "-u"]
metavalue = 'USER[:ADMIN[:GROUPS]]'
source = ['cl_migrate_user', 'cl_migrate_admin_set',
source = ['cl_migrate_user', 'cl_migrate_admin',
'cl_migrate_user_groups',
'cl_migrate_user_pwd']
untrusted = True
@ -322,7 +324,7 @@ class VariableClMigrateDataBrief(UserHelper, TableVariable):
"""
User migrate data table for brief view
"""
source = ['cl_migrate_user', 'cl_migrate_admin_set', 'cl_migrate_user_groups']
source = ['cl_migrate_user', 'cl_migrate_admin', 'cl_migrate_user_groups']
def init(self):
self.label = _("Migrating users")
@ -351,52 +353,30 @@ class VariableClMigrateUser(UserHelper, Variable):
raise VariableError(_("Username is missing"))
class VariableClMigrateAdmins(Variable):
"""
Список пользователей администраторов
"""
type = "list"
def get_admins(self):
from calculate.lib.cl_template import SystemIni
iniobj = SystemIni(dv=self.parent)
admins_value = iniobj.getVar("install","admin").strip()
if not admins_value and self.Get('os_root_type') == 'livecd':
yield "guest"
for admin in (x.strip() for x in admins_value.split(',') if x.strip()):
yield admin
def get(self):
return list(self.get_admins())
class VariableClInstallAdmins(ReadonlyVariable):
"""
Список администраторов в устанавливаемой системе
"""
def get(self):
return ",".join(self.select('cl_migrate_user',
cl_migrate_admin_set='on'))
class VariableClMigrateAdminSet(UserHelper, Variable):
class VariableClMigrateAdmin(UserHelper, Variable):
"""
Migrate users list
"""
type = 'bool-list'
default_value = "off"
type = 'choice-list'
default_value = "none"
def init(self):
self.label = _("Administrator")
def choice(self):
return [
(_("None"), "none"),
(_("Update system"), "update_system"),
(_("All"), "all")
]
def get(self):
"""
Migrating users (users above 1000 uid)
"""
admin_users = self.Get('cl_migrate_admins')
return list(map(lambda x: "on" if x in admin_users else "off",
self.Get('cl_migrate_user')))
admins = Admins(self.parent)
return [admins[x] or self.default_value
for x in self.Get('cl_migrate_user')]
def set(self, value):
return map(lambda x: x if x else self.default_value, value)

Loading…
Cancel
Save