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

Тема в разделе "Библиотеки скриптов", создана пользователем morpheus, 5 сен 2007.

  1. morpheus

    morpheus скриптописец

    Регистрация:
    7 авг 2006
    Сообщения:
    3.927
    Симпатии:
    0
    Код (LotusScript):
    ...
    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
    Ссылка на обсуждение

    Автор
    - Wakko
     
    #1 morpheus, 5 сен 2007
    Последнее редактирование модератором: 3 дек 2015
  2. shaggyone

    shaggyone Гость

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

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

    Workaround, заключается в том, чтобы задать Manager'а в шаблоне базы данных, имя которого задаётся вот здесь:
    reg.MailTemplateName = "mail7.ntf"
    При этом, имена пользователей, и групп, которые должны назначаться создаваемой по шаблону базе данных
    берутся в квадратные скобочки. Например, если мы хотим чтобы пользователь Vasya имел доступ уровня manager
    к создаваемой базе данных, в шаблон нам придётся добавить запись с именем [Vasya]. Т.е. имя ACL entry берётся в квадратные скобочки.
    (описано вот здесь: http://www-10.lotus.com/ldd/nd6forum.nsf/5...2a?OpenDocument )
     
  3. VladSh

    VladSh начинающий
    Lotus team

    Регистрация:
    11 дек 2009
    Сообщения:
    1.251
    Симпатии:
    2
    В 8.5.1 понадобилось установить другой шаблон для почтовой базы (т.е. в пред. версиях не пробовал).. если указать в MailTemplateName любое значение, даже стандартное, то регистрации прерывается ошибкой 4005.
     
Загрузка...

Поделиться этой страницей