• 15 апреля стартует «Курс «SQL-injection Master» ©» от команды The Codeby

    За 3 месяца вы пройдете путь от начальных навыков работы с SQL-запросами к базам данных до продвинутых техник. Научитесь находить уязвимости связанные с базами данных, и внедрять произвольный SQL-код в уязвимые приложения.

    На последнюю неделю приходится экзамен, где нужно будет показать свои навыки, взломав ряд уязвимых учебных сайтов, и добыть флаги. Успешно сдавшие экзамен получат сертификат.

    Запись на курс до 25 апреля. Получить промодоступ ...

Регистрация пользователей в скриптах

M

morpheus

Код:
...
Dim uReg As NotesRegistration
Dim nLen As Integer
 
Dim sComment As String
Dim sLocation As String
Dim sMailFile As String
Sub Initialize
	
	Set uReg = New NotesRegistration
	With uReg
		nLen = Len(uDocument.idfile(0))
 
		.CertifierIDFile = sLocalCertID
		.CreateMailDb = True
		.Expiration = CDat("01.01.2007")
		.IDType = ID_HIERARCHICAL
		.IsNorthAmerican = False
		.MailACLManager = uSession.UserName
		.MailOwnerAccess = REG_MAIL_OWNER_ACL_MANAGER
		.MailTemplateName = sMailTemplate
		.MinPasswordLength = 3
		.OrgUnit = uDocument.OrgUnit(0)
		.RegistrationServer = Canonicalize(uDocument.regserver(0))
		.ShortName = Left(uDocument.idfile(0), nLen - 3)
		.StoreIDInAddressbook = True
		.UpdateAddressbook = False
		sComment = "Automatically Created"
		sLocation = "Office"
		sMailFile = uDocument.maildbpath(0)
		If (Right(sMailFile, 4) = ".nsf") Then
			sMailFile = Left(sMailFile, Len(sMailFile)-4)
		End If
		sMailFile = sMailFile & ".nsf"
 
		If Not(.RegisterNewUser(_
		F.LastName, _		 ' Last Name
		sLocalUserIDDirectory & "\" & _
		uDocument.idfile(0), _ ' ID-file to be created
		.RegistrationServer,_ ' Mail Server
		F.FirstName, _		 ' First Name
		F.MiddleInit, _		' Middle Initial
		sCertPassword, _	  ' Certifier Password
		sLocation, _		  ' Location Field
		sComment, _			' Comment Field
		sMailFile, _		  ' Mail File
"", _				 ' Forwarding Domain
		uDocument.userpw(0), _ ' User Password
		NOTES_FULL_CLIENT, _  ' User Type
		, _					' Alternate Name
"ru"_				 ' Alternate Language
		)) Then
		Print sError & "RegisterUser: uReg.RegisterNewUser: FAILED"
		Exit Function
	Else
		Print sNote & "RegisterUser: uReg.RegisterNewUser: OK"
	End If
 
	If Not(.AddUserToAddressbook(_
	sLocalUserIDDirectory & "\" & _
	uDocument.idfile(0), _ ' ID-file
	F.FullName, _		 ' Full Name
	F.LastName, _		 ' Last Name
	uDocument.userpw(0), _ ' User Password
	F.FirstName, _		 ' First Name
	F.MiddleInit, _		' Middle Initial
	.RegistrationServer, _ ' Mail Server
	sMailFile, _		  ' Mail File
"", _				 ' Forwarding Address
	sLocation, _		  ' Location Field
	sComment _			 ' Comment Field
	)) Then
	Print sError & "RegisterUser: uReg.AddUserToAddressbook: FAILED"
	Exit Function
Else
	Print sNote & "RegisterUser: uReg.AddUserToAddressbook: OK"
End If
End With
 
	If Not(SetPersonFullName(uReg.RegistrationServer, _
	F.LastName, F.FirstName, F.MiddleInit, uReg)) Then
	Print sError & "RegisterUser: SetPersonFullName: FAILED"
	Exit Function
Else
	Print sNote & "RegisterUser: SetPersonFullName: OK"
End If
	...
End Sub
Function SetPersonFullName(sRegServer As String, sLastName As String, sFirstName As String, sMiddleInit As String, uReg As NotesRegistration) As Variant
	On Error GoTo Error_
	SetPersonFullName = False
 
	Dim uPerson As NotesDocument
	Set uPerson = GetPersonDoc(sRegServer, sLastName, sFirstName, sMiddleInit)
	If (uPerson Is Nothing) Then
		Print sError & "Пользователь """ & sLastName & " " & sFirstName & " " & sMiddleInit & """ не найден в адресной книге на сервере """ & sRegServer & """"
		Exit Function
	End If
 
	With uPerson
		.FullName = Canonicalize(.FullName(0))
		.ShortName = uReg.ShortName
		SetPersonFullName = .Save(True, True)
	End With
 
Exit_:
	Exit Function
 
Error_:
	Print sError & "SetPersonFullName: (#" & Err() & ", #" & Erl() & ") " & Error()
	Resume Exit_
End Function
на обсуждение

Автор
-
 
Последнее редактирование:
S

shaggyone

задать ACL Manager'a через reg.MailACLManager = uSession.UserName не удастся. К сожалению, по крайней мере в Lotus Notes версии 7.3 и ниже.

Нужен Workaround, коих к лотусу, походу, нужно много.

Workaround, заключается в том, чтобы задать Manager'а в шаблоне базы данных, имя которого задаётся вот здесь:
reg.MailTemplateName = "mail7.ntf"
При этом, имена пользователей, и групп, которые должны назначаться создаваемой по шаблону базе данных
берутся в квадратные скобочки. Например, если мы хотим чтобы пользователь Vasya имел доступ уровня manager
к создаваемой базе данных, в шаблон нам придётся добавить запись с именем [Vasya]. Т.е. имя ACL entry берётся в квадратные скобочки.
(описано вот здесь: )
 

VladSh

начинающий
Lotus Team
11.12.2009
1 786
157
BIT
80
В 8.5.1 понадобилось установить другой шаблон для почтовой базы (т.е. в пред. версиях не пробовал).. если указать в MailTemplateName любое значение, даже стандартное, то регистрации прерывается ошибкой 4005.
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!