|
|
|
@ -2197,7 +2197,7 @@ class _shareTemplate:
|
|
|
|
|
_deltVarStart = len(varStart)
|
|
|
|
|
_deltVarEnd = len(varEnd)
|
|
|
|
|
|
|
|
|
|
def getDataUser(self):
|
|
|
|
|
def getDataUser(self, groupsInfo=False):
|
|
|
|
|
"""Получить информацию о пользователе"""
|
|
|
|
|
userName = self.objVar.Get("ur_login")
|
|
|
|
|
if not userName:
|
|
|
|
@ -2211,6 +2211,17 @@ class _shareTemplate:
|
|
|
|
|
except:
|
|
|
|
|
print _("Can not found user %s")%str(userName)
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
if groupsInfo:
|
|
|
|
|
import grp
|
|
|
|
|
try:
|
|
|
|
|
groupName = grp.getgrgid(gid).gr_name
|
|
|
|
|
except:
|
|
|
|
|
print _("Can not found group id %s")%str(gid)
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
groupsNames = map(lambda x: x.gr_name,\
|
|
|
|
|
filter(lambda x: userName in x.gr_mem, grp.getgrall()))
|
|
|
|
|
groupsNames = [groupName] + groupsNames
|
|
|
|
|
return uid, gid, homeDir, groupsNames
|
|
|
|
|
return uid, gid, homeDir
|
|
|
|
|
|
|
|
|
|
class templateFunction(_error, _shareTemplate, _shareTermsFunction):
|
|
|
|
@ -2283,7 +2294,8 @@ class templateFunction(_error, _shareTemplate, _shareTermsFunction):
|
|
|
|
|
self.currDictIni = {}
|
|
|
|
|
# Время модификации конфигурационного файла для ini()
|
|
|
|
|
self.timeIni = -1
|
|
|
|
|
self.uid, self.gid, self.homeDir = self.getDataUser()
|
|
|
|
|
self.uid, self.gid, self.homeDir, self.groups =\
|
|
|
|
|
self.getDataUser(groupsInfo=True)
|
|
|
|
|
# Домашняя директория, плюс базовая директория
|
|
|
|
|
self.homeDir = os.path.join(self._baseDir, self.homeDir[1:])
|
|
|
|
|
# Путь к конфигурационному файлу для ini()
|
|
|
|
@ -2389,11 +2401,11 @@ class templateFunction(_error, _shareTemplate, _shareTermsFunction):
|
|
|
|
|
"""Функция шаблона exists(),
|
|
|
|
|
проверяет существование файла, если существует выдает '1'
|
|
|
|
|
"""
|
|
|
|
|
terms = funArgv.replace(" ","").split(",")
|
|
|
|
|
terms = map(lambda x: x.strip(), funArgv.split(","))
|
|
|
|
|
if len(terms) !=1:
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
|
cl_overriding.exit(1)
|
|
|
|
|
fileName = terms[0].strip()
|
|
|
|
|
fileName = terms[0]
|
|
|
|
|
if fileName[0] == "~":
|
|
|
|
|
# Получаем директорию пользователя
|
|
|
|
|
fileName = os.path.join(self.homeDir,
|
|
|
|
@ -2414,8 +2426,8 @@ class templateFunction(_error, _shareTemplate, _shareTermsFunction):
|
|
|
|
|
если файл существует читает из файла локальную переменную
|
|
|
|
|
если один параметр - выводит значение локальной переменной
|
|
|
|
|
"""
|
|
|
|
|
terms = funArgv.replace(" ","").split(",")
|
|
|
|
|
if not terms[0].strip() or\
|
|
|
|
|
terms = funArgv.split(",")
|
|
|
|
|
if not terms or not terms[0].strip() or\
|
|
|
|
|
(len(terms)==2 and not terms[1].strip()) or\
|
|
|
|
|
len(terms)>2:
|
|
|
|
|
self.printErrTemplate()
|
|
|
|
@ -2910,6 +2922,20 @@ class templateFunction(_error, _shareTemplate, _shareTermsFunction):
|
|
|
|
|
textTemplateTmp[resS.end():]
|
|
|
|
|
return textTemplateTmp
|
|
|
|
|
|
|
|
|
|
def funcGroups(self, funArgv, resS, localVars, textTemplateTmp):
|
|
|
|
|
"""Функция шаблона groups(),
|
|
|
|
|
проверяет нахождение пользователя в группах, если находится выдает '1'
|
|
|
|
|
"""
|
|
|
|
|
terms = map(lambda x: x.strip(), funArgv.split(","))
|
|
|
|
|
groupNames = set(terms)
|
|
|
|
|
userGroups = set(self.groups)
|
|
|
|
|
replace = ""
|
|
|
|
|
if groupNames & userGroups:
|
|
|
|
|
replace = "1"
|
|
|
|
|
textTemplateTmp = textTemplateTmp[:resS.start()] + replace +\
|
|
|
|
|
textTemplateTmp[resS.end():]
|
|
|
|
|
return textTemplateTmp
|
|
|
|
|
|
|
|
|
|
def printErrTemplate(self):
|
|
|
|
|
"""Печать ошибки при обработке функций шаблона"""
|
|
|
|
|
print _("error in template %s")%self.nameTemplate
|
|
|
|
|