|
|
|
@ -1815,47 +1815,47 @@ class servUnix(shareLdap):
|
|
|
|
|
"""Ищет список групп из списка userGroups в LDAP
|
|
|
|
|
|
|
|
|
|
Список групп может состоять из чисел или названий групп
|
|
|
|
|
Возвращает (результат выполнения, список имен групп, сообщение о ошибке)
|
|
|
|
|
Возвращает (результат выполнения,словарь имен групп,сообщение о ошибке)
|
|
|
|
|
"""
|
|
|
|
|
userGroupNames = []
|
|
|
|
|
flagInt = True
|
|
|
|
|
userGroupNames = {}
|
|
|
|
|
flagError = False
|
|
|
|
|
gidErrors = []
|
|
|
|
|
groupErrors = []
|
|
|
|
|
for gid in userGroups:
|
|
|
|
|
try:
|
|
|
|
|
int(gid)
|
|
|
|
|
except:
|
|
|
|
|
flagInt = False
|
|
|
|
|
break
|
|
|
|
|
flagError = False
|
|
|
|
|
if flagInt:
|
|
|
|
|
gidError = ""
|
|
|
|
|
for gidNumber in userGroups:
|
|
|
|
|
res = self.searchUnixGid(gidNumber)
|
|
|
|
|
if not res:
|
|
|
|
|
gidError = gidNumber
|
|
|
|
|
flagError = True
|
|
|
|
|
continue
|
|
|
|
|
userGroupNames.append(res[0][0][1]['cn'][0])
|
|
|
|
|
if flagError:
|
|
|
|
|
errorMessage=_("Group number %s is not found in Unix service")\
|
|
|
|
|
%str(gidError)
|
|
|
|
|
if printError:
|
|
|
|
|
self.printERROR(errorMessage)
|
|
|
|
|
return (False, userGroupNames, errorMessage)
|
|
|
|
|
else:
|
|
|
|
|
groupError = ""
|
|
|
|
|
for groupName in userGroups:
|
|
|
|
|
groupName = gid
|
|
|
|
|
res = self.searchUnixGroupName(groupName)
|
|
|
|
|
if not res:
|
|
|
|
|
groupError = groupName
|
|
|
|
|
groupErrors.append(groupName)
|
|
|
|
|
flagError = True
|
|
|
|
|
continue
|
|
|
|
|
userGroupNames.append(res[0][0][1]['cn'][0])
|
|
|
|
|
if flagError:
|
|
|
|
|
errorMessage=_("Group name %s is not found in Unix service")\
|
|
|
|
|
%str(groupError)
|
|
|
|
|
userGroupNames[res[0][0][1]['cn'][0]]=\
|
|
|
|
|
res[0][0][1]['gidNumber'][0]
|
|
|
|
|
continue
|
|
|
|
|
gidNumber = gid
|
|
|
|
|
res = self.searchUnixGid(gidNumber)
|
|
|
|
|
if not res:
|
|
|
|
|
gidErrors.append(gidNumber)
|
|
|
|
|
flagError = True
|
|
|
|
|
continue
|
|
|
|
|
userGroupNames[res[0][0][1]['cn'][0]] = res[0][0][1]['gidNumber'][0]
|
|
|
|
|
if flagError:
|
|
|
|
|
errorMessage = ""
|
|
|
|
|
if groupErrors:
|
|
|
|
|
errorGroup=_("Group names (%s) is not found in Unix service")\
|
|
|
|
|
%", ".join(groupErrors)
|
|
|
|
|
errorMessage = errorGroup
|
|
|
|
|
if printError:
|
|
|
|
|
self.printERROR(errorGroup)
|
|
|
|
|
if gidErrors:
|
|
|
|
|
errorGid=_("Group numbers (%s) is not found in Unix service")\
|
|
|
|
|
%", ".join(gidErrors)
|
|
|
|
|
errorMessage += errorGid
|
|
|
|
|
if printError:
|
|
|
|
|
self.printERROR(errorMessage)
|
|
|
|
|
return (False, userGroupNames, errorMessage)
|
|
|
|
|
self.printERROR(errorGid)
|
|
|
|
|
return (False, userGroupNames, errorMessage)
|
|
|
|
|
return (True, userGroupNames, "")
|
|
|
|
|
|
|
|
|
|
def searchGroupsGroups(self, userGroups, printError=True):
|
|
|
|
@ -2139,11 +2139,13 @@ class servUnix(shareLdap):
|
|
|
|
|
userGid = options['g']
|
|
|
|
|
retCondUnix, userGidNamesUnix, errMessUnix =\
|
|
|
|
|
self.searchGroupsUnix([userGid], False)
|
|
|
|
|
userGidNamesUnix = userGidNamesUnix.keys()
|
|
|
|
|
userGidNamesSamba = False
|
|
|
|
|
# В случае вызова из Samba объекта
|
|
|
|
|
if callSamba:
|
|
|
|
|
retCondSamba, userGidNamesSamba, errMessSamba =\
|
|
|
|
|
self.servSambaObj.searchGroupsSamba([userGid], False)
|
|
|
|
|
userGidNamesSamba = userGidNamesSamba.keys()
|
|
|
|
|
userGidNamesPasswd = self.searchGroupsGroups([userGid], False)
|
|
|
|
|
if userGidNamesPasswd:
|
|
|
|
|
#Имя группы пользователя
|
|
|
|
@ -2706,18 +2708,21 @@ service"))
|
|
|
|
|
if callSamba:
|
|
|
|
|
retCondUnix, userGroupNames, errMessUnix =\
|
|
|
|
|
self.searchGroupsUnix([newFirstGroup],False)
|
|
|
|
|
userGroupNames = userGroupNames.keys()
|
|
|
|
|
if not userGroupNames:
|
|
|
|
|
retCondSamba ,userGroupNames, errMessSamba =\
|
|
|
|
|
self.servSambaObj.searchGroupsSamba([newFirstGroup],
|
|
|
|
|
False)
|
|
|
|
|
userGroupNames = userGroupNames.keys()
|
|
|
|
|
if not userGroupNames:
|
|
|
|
|
self.printERROR(\
|
|
|
|
|
_("Group %s is not found in Unix and Samba services")%\
|
|
|
|
|
str(groupName))
|
|
|
|
|
str(newFirstGroup))
|
|
|
|
|
return False
|
|
|
|
|
else:
|
|
|
|
|
retCondUnix, userGroupNames, errMessUnix =\
|
|
|
|
|
self.searchGroupsUnix([newFirstGroup])
|
|
|
|
|
userGroupNames = userGroupNames.keys()
|
|
|
|
|
if not retCondUnix:
|
|
|
|
|
return False
|
|
|
|
|
groupName = userGroupNames[0]
|
|
|
|
@ -2797,15 +2802,6 @@ service"))
|
|
|
|
|
else:
|
|
|
|
|
if printSuccess:
|
|
|
|
|
self.printSUCCESS(_("Moved home directory"))
|
|
|
|
|
if options.has_key('c'):
|
|
|
|
|
if printSuccess:
|
|
|
|
|
self.printSUCCESS(_("Modified comment"))
|
|
|
|
|
if options.has_key('s'):
|
|
|
|
|
if printSuccess:
|
|
|
|
|
self.printSUCCESS(_("Modified shell"))
|
|
|
|
|
if options.has_key('d'):
|
|
|
|
|
if printSuccess:
|
|
|
|
|
self.printSUCCESS(_("Modified home directory"))
|
|
|
|
|
if options.has_key('P') or options.has_key('p'):
|
|
|
|
|
# Изменим время последнего измения пароля пользователя
|
|
|
|
|
if not self.setShadowLastChange(userName):
|
|
|
|
@ -2813,18 +2809,23 @@ service"))
|
|
|
|
|
if printSuccess:
|
|
|
|
|
self.printSUCCESS(\
|
|
|
|
|
_("Modified user password of Unix service"))
|
|
|
|
|
if options.has_key('U'):
|
|
|
|
|
if printSuccess:
|
|
|
|
|
if printSuccess:
|
|
|
|
|
if options.has_key('g'):
|
|
|
|
|
self.printSUCCESS(_("Modified primary group"))
|
|
|
|
|
if options.has_key('c'):
|
|
|
|
|
self.printSUCCESS(_("Modified comment"))
|
|
|
|
|
if options.has_key('s'):
|
|
|
|
|
self.printSUCCESS(_("Modified shell"))
|
|
|
|
|
if options.has_key('d'):
|
|
|
|
|
self.printSUCCESS(_("Modified home directory"))
|
|
|
|
|
if options.has_key('U'):
|
|
|
|
|
self.printSUCCESS(_("Unlocked user %s")% str(userName))
|
|
|
|
|
if options.has_key('I'):
|
|
|
|
|
if printSuccess:
|
|
|
|
|
if options.has_key('I'):
|
|
|
|
|
self.printSUCCESS(\
|
|
|
|
|
_("User %s is invisible")% str(userName))
|
|
|
|
|
if options.has_key('V'):
|
|
|
|
|
if printSuccess:
|
|
|
|
|
_("User %s is invisible")% str(userName))
|
|
|
|
|
if options.has_key('V'):
|
|
|
|
|
self.printSUCCESS(_("User %s is visible")% str(userName))
|
|
|
|
|
if options.has_key('L'):
|
|
|
|
|
if printSuccess:
|
|
|
|
|
if options.has_key('L'):
|
|
|
|
|
self.printSUCCESS(_("Locked user %s")% str(userName))
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
@ -2989,11 +2990,29 @@ service"))
|
|
|
|
|
|
|
|
|
|
def delUsersGroupUnix(self, users, groupName):
|
|
|
|
|
"""Удаление пользователей из списка из группы Unix"""
|
|
|
|
|
|
|
|
|
|
def getPrimaryUsers():
|
|
|
|
|
gidNumber = res[0][0][1]["gidNumber"][0]
|
|
|
|
|
searchUsers = self.searchUnixUserPrimGroup(gidNumber)
|
|
|
|
|
foundUserNames = []
|
|
|
|
|
if searchUsers:
|
|
|
|
|
for data in searchUsers:
|
|
|
|
|
foundUserNames.append(data[0][1]["uid"][0])
|
|
|
|
|
if foundUserNames:
|
|
|
|
|
primaryUsers = list(set(foundUserNames)&set(users))
|
|
|
|
|
if primaryUsers:
|
|
|
|
|
self.printERROR(_("%s is primary group")% groupName + " " +\
|
|
|
|
|
_("for users (%s)")%", ".join(primaryUsers))
|
|
|
|
|
return False
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
res = self.searchUnixGroupName(groupName)
|
|
|
|
|
if not res :
|
|
|
|
|
self.printERROR(_("group name is not found in Unix service"))
|
|
|
|
|
return False
|
|
|
|
|
if not res[0][0][1].has_key("memberUid"):
|
|
|
|
|
if not getPrimaryUsers():
|
|
|
|
|
return False
|
|
|
|
|
self.printERROR(
|
|
|
|
|
_("Member list of group %s is empty")%str(groupName))
|
|
|
|
|
return False
|
|
|
|
@ -3004,6 +3023,8 @@ service"))
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
if flagError:
|
|
|
|
|
if not getPrimaryUsers():
|
|
|
|
|
return False
|
|
|
|
|
self.printERROR(
|
|
|
|
|
_("User %s is not found in group")%str(user)+" "+\
|
|
|
|
|
str(groupName))
|
|
|
|
@ -4749,7 +4770,8 @@ in Unix service") %str(jabberId))
|
|
|
|
|
if options.has_key('P') or options.has_key('p'):
|
|
|
|
|
self.printSUCCESS(_("Modified Jabber user password"))
|
|
|
|
|
if options.has_key('j'):
|
|
|
|
|
self.printSUCCESS(_("Modified JID"))
|
|
|
|
|
self.printSUCCESS(_("JID changed, a new JID is %s")\
|
|
|
|
|
%jabberId)
|
|
|
|
|
if printSuccess and options.has_key('i'):
|
|
|
|
|
self.printSUCCESS(_("Set image %s for Jabber user")%\
|
|
|
|
|
str(options['i']) + " " + str(userName))
|
|
|
|
@ -5278,13 +5300,32 @@ the calculate-server")
|
|
|
|
|
"""Cоединение с LDAP администратором Samba сервиса"""
|
|
|
|
|
return shareLdap.getLdapObjInFile(self, "samba")
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def delUsersGroupSamba(self, users, groupName):
|
|
|
|
|
"""Удаление пользователей из списка из группы Samba"""
|
|
|
|
|
|
|
|
|
|
def getPrimaryUsers():
|
|
|
|
|
gidNumber = res[0][0][1]["gidNumber"][0]
|
|
|
|
|
searchUsers = self.servUnixObj.searchUnixUserPrimGroup(gidNumber)
|
|
|
|
|
foundUserNames = []
|
|
|
|
|
if searchUsers:
|
|
|
|
|
for data in searchUsers:
|
|
|
|
|
foundUserNames.append(data[0][1]["uid"][0])
|
|
|
|
|
if foundUserNames:
|
|
|
|
|
primaryUsers = list(set(foundUserNames)&set(users))
|
|
|
|
|
if primaryUsers:
|
|
|
|
|
self.printERROR(_("%s is primary group")% groupName + " " +\
|
|
|
|
|
_("for users (%s)")%", ".join(primaryUsers))
|
|
|
|
|
return False
|
|
|
|
|
return True
|
|
|
|
|
|
|
|
|
|
res = self.searchSambaGroupName(groupName)
|
|
|
|
|
if not res :
|
|
|
|
|
self.printERROR(_("group name is not found in Samba service"))
|
|
|
|
|
return False
|
|
|
|
|
if not res[0][0][1].has_key("memberUid"):
|
|
|
|
|
if not getPrimaryUsers():
|
|
|
|
|
return False
|
|
|
|
|
self.printERROR(
|
|
|
|
|
_("Member list of group %s is empty")%str(groupName))
|
|
|
|
|
return False
|
|
|
|
@ -5295,6 +5336,8 @@ the calculate-server")
|
|
|
|
|
flagError = True
|
|
|
|
|
break
|
|
|
|
|
if flagError:
|
|
|
|
|
if not getPrimaryUsers():
|
|
|
|
|
return False
|
|
|
|
|
self.printERROR(
|
|
|
|
|
_("User %s is not found in group")%str(user)+" "+\
|
|
|
|
|
str(groupName))
|
|
|
|
@ -5755,13 +5798,44 @@ if %%errorlevel%%==0 NET USE T: \\\\%s\\ftp' %(netbios,netbios,netbios)
|
|
|
|
|
# Ищем группы в Unix сервисе
|
|
|
|
|
rezultUnix, groupNamesUnix, errMessUnix =\
|
|
|
|
|
self.servUnixObj.searchGroupsUnix(userGroups, False)
|
|
|
|
|
grUnix = groupNamesUnix
|
|
|
|
|
groupNamesUnix = groupNamesUnix.keys()
|
|
|
|
|
# Если установлен сервис Samba
|
|
|
|
|
groupNamesSamba = []
|
|
|
|
|
gidNotFound = []
|
|
|
|
|
if checkSetup and self.isServiceSetup("samba", False):
|
|
|
|
|
rezultSamba, groupNamesSamba, errMessSamba =\
|
|
|
|
|
self.searchGroupsSamba(userGroups, False)
|
|
|
|
|
grSamba = groupNamesSamba
|
|
|
|
|
groupNamesSamba = groupNamesSamba.keys()
|
|
|
|
|
userGroupNames = []
|
|
|
|
|
for userGr in userGroups:
|
|
|
|
|
try:
|
|
|
|
|
int(userGr)
|
|
|
|
|
except:
|
|
|
|
|
userGroupNames.append(userGr)
|
|
|
|
|
continue
|
|
|
|
|
flagFound = False
|
|
|
|
|
for grName in grUnix.keys():
|
|
|
|
|
if grUnix[grName] == userGr:
|
|
|
|
|
userGroupNames.append(grName)
|
|
|
|
|
flagFound = True
|
|
|
|
|
if not flagFound:
|
|
|
|
|
for grName in grSamba.keys():
|
|
|
|
|
if grSamba[grName] == userGr:
|
|
|
|
|
userGroupNames.append(grName)
|
|
|
|
|
flagFound = True
|
|
|
|
|
if not flagFound:
|
|
|
|
|
gidNotFound.append(userGr)
|
|
|
|
|
if gidNotFound:
|
|
|
|
|
errorMessage = _("Groups numbers (%s) is not found in \
|
|
|
|
|
Samba and Unix services") %", ".join(gidNotFound)
|
|
|
|
|
# Выдаем ошибку
|
|
|
|
|
self.printERROR(errorMessage)
|
|
|
|
|
return False
|
|
|
|
|
# Если нет какой то из групп
|
|
|
|
|
exclGroup=set(userGroups)^(set(groupNamesUnix)|set(groupNamesSamba))
|
|
|
|
|
exclGroup=\
|
|
|
|
|
set(userGroupNames)^(set(groupNamesUnix)|set(groupNamesSamba))
|
|
|
|
|
if exclGroup:
|
|
|
|
|
errorMessage = _("Groups (%s) is not found in \
|
|
|
|
|
Samba and Unix services") %", ".join(exclGroup)
|
|
|
|
@ -5779,51 +5853,52 @@ Samba and Unix services") %", ".join(exclGroup)
|
|
|
|
|
resSearch = self.searchLdapDN(groupName, self.relGroupsDN, "cn")
|
|
|
|
|
return resSearch
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
def searchGroupsSamba(self, userGroups, printError=True):
|
|
|
|
|
"""Ищет список групп из списка userGroups в LDAP
|
|
|
|
|
|
|
|
|
|
Список групп может состоять из чисел или названий групп
|
|
|
|
|
Возвращает (результат выполнения, список имен групп, сообщение о ошибке)
|
|
|
|
|
Возвращает (результат выполнения,словарь имен групп,сообщение о ошибке)
|
|
|
|
|
"""
|
|
|
|
|
userGroupNames = []
|
|
|
|
|
flagInt = True
|
|
|
|
|
userGroupNames = {}
|
|
|
|
|
flagError = False
|
|
|
|
|
gidErrors = []
|
|
|
|
|
groupErrors = []
|
|
|
|
|
for gid in userGroups:
|
|
|
|
|
try:
|
|
|
|
|
int(gid)
|
|
|
|
|
except:
|
|
|
|
|
flagInt = False
|
|
|
|
|
break
|
|
|
|
|
flagError = False
|
|
|
|
|
if flagInt:
|
|
|
|
|
gidError = ""
|
|
|
|
|
for gidNumber in userGroups:
|
|
|
|
|
res = self.searchSambaGid(gidNumber)
|
|
|
|
|
if not res:
|
|
|
|
|
gidError = gidNumber
|
|
|
|
|
flagError = True
|
|
|
|
|
continue
|
|
|
|
|
userGroupNames.append(res[0][0][1]['cn'][0])
|
|
|
|
|
if flagError:
|
|
|
|
|
errorMessage=_("Group number %s is not found in Samba service")\
|
|
|
|
|
%str(gidError)
|
|
|
|
|
if printError:
|
|
|
|
|
self.printERROR(errorMessage)
|
|
|
|
|
return (False, userGroupNames, errorMessage)
|
|
|
|
|
else:
|
|
|
|
|
groupError = ""
|
|
|
|
|
for groupName in userGroups:
|
|
|
|
|
groupName = gid
|
|
|
|
|
res = self.searchSambaGroupName(groupName)
|
|
|
|
|
if not res:
|
|
|
|
|
groupError = groupName
|
|
|
|
|
groupErrors.append(groupName)
|
|
|
|
|
flagError = True
|
|
|
|
|
continue
|
|
|
|
|
userGroupNames.append(res[0][0][1]['cn'][0])
|
|
|
|
|
if flagError:
|
|
|
|
|
errorMessage=_("Group name %s is not found in Samba service")\
|
|
|
|
|
%str(groupError)
|
|
|
|
|
userGroupNames[res[0][0][1]['cn'][0]]=\
|
|
|
|
|
res[0][0][1]['gidNumber'][0]
|
|
|
|
|
continue
|
|
|
|
|
gidNumber = gid
|
|
|
|
|
res = self.searchSambaGid(gidNumber)
|
|
|
|
|
if not res:
|
|
|
|
|
gidErrors.append(gidNumber)
|
|
|
|
|
flagError = True
|
|
|
|
|
continue
|
|
|
|
|
userGroupNames[res[0][0][1]['cn'][0]] = res[0][0][1]['gidNumber'][0]
|
|
|
|
|
if flagError:
|
|
|
|
|
errorMessage = ""
|
|
|
|
|
if groupErrors:
|
|
|
|
|
errorGroup=_("Group names (%s) is not found in Samba service")\
|
|
|
|
|
%", ".join(groupErrors)
|
|
|
|
|
errorMessage = errorGroup
|
|
|
|
|
if printError:
|
|
|
|
|
self.printERROR(errorMessage)
|
|
|
|
|
return (False, userGroupNames, errorMessage)
|
|
|
|
|
self.printERROR(errorGroup)
|
|
|
|
|
if gidErrors:
|
|
|
|
|
errorGid=_("Group numbers (%s) is not found in Samba service")\
|
|
|
|
|
%", ".join(gidErrors)
|
|
|
|
|
errorMessage += errorGid
|
|
|
|
|
if printError:
|
|
|
|
|
self.printERROR(errorGid)
|
|
|
|
|
return (False, userGroupNames, errorMessage)
|
|
|
|
|
return (True, userGroupNames, "")
|
|
|
|
|
|
|
|
|
|
def searchSambaGid(self, groupId):
|
|
|
|
@ -6538,14 +6613,14 @@ Samba and Unix services") %", ".join(exclGroup)
|
|
|
|
|
self.printERROR(_("Can not modify Samba user password"))
|
|
|
|
|
return False
|
|
|
|
|
self.printSUCCESS(_("Modified Samba user password"))
|
|
|
|
|
# изменяем Unix и Samba группы в которые включен пользователь
|
|
|
|
|
if options.has_key("G"):
|
|
|
|
|
strGroups = options["G"]
|
|
|
|
|
optUnix = {'G':strGroups}
|
|
|
|
|
# Изменяем Unix группы пользователя
|
|
|
|
|
|
|
|
|
|
if options.has_key("g"):
|
|
|
|
|
optUnix = {'g':options['g']}
|
|
|
|
|
if not self.servUnixObj.modUserUnixServer(userName,
|
|
|
|
|
optUnix,False, True):
|
|
|
|
|
optUnix, True, True):
|
|
|
|
|
return False
|
|
|
|
|
# изменяем Unix и Samba группы в которые включен пользователь
|
|
|
|
|
if options.has_key("G"):
|
|
|
|
|
# Изменяем Samba группы пользователя
|
|
|
|
|
userGroups = options['G'].split(',')
|
|
|
|
|
data = self.searchUnixAndSambaGroups(userGroups, True)
|
|
|
|
@ -6553,6 +6628,12 @@ Samba and Unix services") %", ".join(exclGroup)
|
|
|
|
|
userGroupNamesUnix, userGroupNamesSamba = data
|
|
|
|
|
else:
|
|
|
|
|
return False
|
|
|
|
|
if userGroupNamesUnix:
|
|
|
|
|
optUnix = {'G':",".join(userGroupNamesUnix)}
|
|
|
|
|
# Изменяем Unix группы пользователя
|
|
|
|
|
if not self.servUnixObj.modUserUnixServer(userName,
|
|
|
|
|
optUnix,False, True):
|
|
|
|
|
return False
|
|
|
|
|
# Удаляем Samba группы у пользователя
|
|
|
|
|
if not self.delUserInGroup(userName):
|
|
|
|
|
return False
|
|
|
|
@ -8662,6 +8743,13 @@ the password will be changed only for Samba account")
|
|
|
|
|
},
|
|
|
|
|
{'progAccess':(5,),
|
|
|
|
|
'shortOption':"g",
|
|
|
|
|
'longOption':"gid",
|
|
|
|
|
'optVal':"GROUP",
|
|
|
|
|
'helpChapter':_("Samba service options"),
|
|
|
|
|
'help':_("force use GROUP as new primary group")
|
|
|
|
|
},
|
|
|
|
|
{'progAccess':(5,),
|
|
|
|
|
'shortOption':"g",
|
|
|
|
|
'longOption':"group",
|
|
|
|
|
'optVal':"GROUP",
|
|
|
|
|
'helpChapter':_("Jabber service options"),
|
|
|
|
@ -11534,7 +11622,7 @@ with another option."))
|
|
|
|
|
return (headers, data)
|
|
|
|
|
|
|
|
|
|
def getGroup(self, groupName, service):
|
|
|
|
|
"""Информация о группе"""
|
|
|
|
|
"""Инфо<EFBFBD>мация о группе"""
|
|
|
|
|
searchAttr = "cn"
|
|
|
|
|
searchStr = groupName
|
|
|
|
|
data, delData = self.genDataGroups(service)
|
|
|
|
@ -11703,10 +11791,12 @@ with another option."))
|
|
|
|
|
service)
|
|
|
|
|
attrApp = _("Supplementary groups")
|
|
|
|
|
if service == "unix":
|
|
|
|
|
memberGroups.insert(0,value)
|
|
|
|
|
if not value in memberGroups:
|
|
|
|
|
memberGroups.insert(0,value)
|
|
|
|
|
elif service == "samba":
|
|
|
|
|
if value:
|
|
|
|
|
memberGroups.insert(0,value)
|
|
|
|
|
if not value in memberGroups:
|
|
|
|
|
memberGroups.insert(0,value)
|
|
|
|
|
elif service == "mail":
|
|
|
|
|
attrApp = _("Group mail")
|
|
|
|
|
flagFirst = False
|
|
|
|
@ -11837,9 +11927,10 @@ with another option."))
|
|
|
|
|
(_("Name"),"description"),
|
|
|
|
|
(_("Mail"),"mail"),
|
|
|
|
|
(_("Alternate mail"),"mailAlternateAddress"),
|
|
|
|
|
(_("Hide hosts"),"filtersender"),
|
|
|
|
|
(_("Member UID"),"rfc822member")]
|
|
|
|
|
if fields == "short":
|
|
|
|
|
delData = [_("Mail"), _("Member UID")]
|
|
|
|
|
delData = [_("Mail"),_("Hide hosts"), _("Member UID")]
|
|
|
|
|
elif service == "jabber":
|
|
|
|
|
data = [(_("Group"),"cn"),
|
|
|
|
|
(_("Comment"),"description")]
|
|
|
|
@ -11874,17 +11965,18 @@ with another option."))
|
|
|
|
|
(_("Visible"),"shadowFlag"),
|
|
|
|
|
(_("Primary group"),"gidNumber"),
|
|
|
|
|
(_("Home directory"),"homeDirectory"),
|
|
|
|
|
(_("Shell"),"loginShell"),
|
|
|
|
|
(_("Password"),"userPassword"),
|
|
|
|
|
(_("Last change password"),"shadowLastChange"),
|
|
|
|
|
(_("Jabber ID"),"registeredAddress"),
|
|
|
|
|
(_("Mail"),"mail")]
|
|
|
|
|
if fields == "short":
|
|
|
|
|
delData = [_("Lock"),_("Visible"),_("Password"),
|
|
|
|
|
delData = [_("Lock"),_("Visible"),_("Shell"),_("Password"),
|
|
|
|
|
_("Last change password"),_("Jabber ID"),_("Mail")]
|
|
|
|
|
elif service == "samba":
|
|
|
|
|
data = [(_("Login"),"uid"),
|
|
|
|
|
(_("Name"),"displayName"),
|
|
|
|
|
(_("Lock"),"accountStatus"),
|
|
|
|
|
(_("Lock"),"sambaAcctFlags"),
|
|
|
|
|
(_("Password"),"sambaNTPassword"),
|
|
|
|
|
(_("Last change password"),"sambaPwdLastSet")]
|
|
|
|
|
if fields == "short":
|
|
|
|
@ -11900,7 +11992,7 @@ with another option."))
|
|
|
|
|
delData = [_("Lock"), _("Password"), _("Mail")]
|
|
|
|
|
elif service == "jabber":
|
|
|
|
|
data = [(_("Login"),"uid"),
|
|
|
|
|
(_("Name"),"cn"),
|
|
|
|
|
(_("Name"),"sn"),
|
|
|
|
|
(_("Group"),"departmentNumber"),
|
|
|
|
|
(_("Jabber ID"),"mail"),
|
|
|
|
|
(_("Lock"),"initials"),
|
|
|
|
@ -12034,7 +12126,7 @@ with another option."))
|
|
|
|
|
else:
|
|
|
|
|
retValue = _("No")
|
|
|
|
|
elif attr == "sambaAcctFlags":
|
|
|
|
|
if value == "[DU ]":
|
|
|
|
|
if "D" in value:
|
|
|
|
|
retValue = _("Yes")
|
|
|
|
|
else:
|
|
|
|
|
retValue = _("No")
|
|
|
|
@ -12074,6 +12166,7 @@ with another option."))
|
|
|
|
|
if service == "unix":
|
|
|
|
|
retCondUnix, userGidNamesLdap, errMessUnix =\
|
|
|
|
|
servObj.searchGroupsUnix([userGid], False)
|
|
|
|
|
userGidNamesLdap = userGidNamesLdap.keys()
|
|
|
|
|
userGidNamesPasswd = servObj.searchGroupsGroups([userGid], False)
|
|
|
|
|
if userGidNamesPasswd:
|
|
|
|
|
#Имя группы пользователя
|
|
|
|
@ -12087,6 +12180,7 @@ with another option."))
|
|
|
|
|
if service == "samba":
|
|
|
|
|
retCondSamba, userGidNamesLdap, errMessUnix =\
|
|
|
|
|
servObj.searchGroupsSamba([userGid], False)
|
|
|
|
|
userGidNamesLdap = userGidNamesLdap.keys()
|
|
|
|
|
if userGidNamesLdap:
|
|
|
|
|
#Имя группы пользователя
|
|
|
|
|
groupName = userGidNamesLdap[0]
|
|
|
|
|