Регистрация пользователей (RegisterNewUser)

dimat

Lotus team
31.07.2008
516
0
#1
Всем привет!

Agent 'RegisterNewUser' error: Notes error: You are not allowed to update the certifier log (Имя пользователя)


Вот такую ошибку получаю в консоль при попытке зарегистрировать пользователя классом NotesRegistration агентом на сервере.
Подскажите: как исправить?

Код:
Dim nr As New NotesRegistration
nr.CertifierIDFile=certFilePath
nr.GroupList=pdoc.GetItemValue("Group")
nr.IDType=172
nr.IsNorthAmerican=False
nr.RegistrationLog="log.nsf"
nr.RegistrationServer=db.Server
nr.ShortName=UsrNameString
nr.StoreIDInAddressBook=True
nr.UpdateAddressBook=True
nr.MailSystem=REG_MAILSYSTEM_NONE
Call nr.RegisterNewUser(UsrNameString,IdFilePath,"","","",certPwd,"","","","",PswdString,175)
точно такой же код на клиенте работает без проблем
 

dimat

Lotus team
31.07.2008
516
0
#3
savl проверил права - для меня и для сервера они максимальные
 

savl

Lotus team
28.10.2011
2 136
104
#4

VladSh

начинающий
Lotus team
11.12.2009
1 262
6
#5
Вот такое было.
Я бы по одной коментил строки, возможно ещё какая-то опция даёт эту ошибку.
 

dimat

Lotus team
31.07.2008
516
0
#6
Вновь вернулся к решению проблемы регистрации пользователя на сервере.

Вобщем пользователь теперь регистрируется.
После того как указал RegistrationServer="".

Еще одна проблема появилась, вернее она появилась после обновления сервера до 8.5.3FP2HF25.

При регистрации пользователь не добавляется в группу указанную в параметре GroupList.
 

VladSh

начинающий
Lotus team
11.12.2009
1 262
6
#7
dimat
Это также не работает, вернее глючит (то добавляет, то нет, и не поёмёшь, от чего это зависит); и не только в 8.5.3. Я на это не рассчитываю, а добавляю после регистрации вручную.
 

Shandrik

Lotus team
30.12.2010
268
12
#9
В строке Call nReg.RegisterNewUser(...) получил ошибку:

Notes error: The requested item does not exist (Chack)

Причем "Chack" - это первый параметр RegisterNewUser - LastName

Вообще не понимаю происходящего.
 

Shandrik

Lotus team
30.12.2010
268
12
#10
О! Накопал:
Для просмотра контента необходимо: Войти или зарегистрироваться


Server
"The requested item does not exist" error
You may see this error on your server console after using the CA process to add an Alternate Name to a user:
"Error processing certificate request: The requested item does not exist." This error only occurs if you try to recertify or register a user immediately after you add an Alternate Name to your CA Process-enabled certifier, and before the certifier has automatically refreshed its context.
Workaround
� At the server console, type
tell adminp process all
then
tell ca refresh
� If your CA Process-enabled Notes certifier has been locked with a user ID, you will need to unlock it using the following command:
te ca unlock <X:\user.id> <password>
Be sure to type the full path and file name of the ID file used to lock your CA and the ID's password when using
the unlock command. Type the following to verify that it is active again:
te ca status
� Next, open the Administration Requests database and go to the Certification Authority Requests/Certificate Requests view. Locate and open the rejected request. The request will have been rejected with the following rejection reason:
5935: unknown
� Click Edit Request -> Approve Request. The certificate should be successfully issued.



Убрал упоминания об альтернативных именах и языках и заработало.
 

lmike

нет, пердело совершенство
Lotus team
27.08.2008
6 583
269
#11
тупо добавляю юзера в нужную АК, группу - через админпроцесс пинаю:
Код:
Sub Initialize
On Error Goto ErrH
Dim status
status=Split({Modifying groups...},{})
Set ses=New NotesSession
Set db=ses.CurrentDatabase
Set agent=ses.CurrentAgent
Dim noteid As String
noteid=agent.ParameterDocID
Dim doc As NotesDocument
Set doc=db.GetDocumentByID(noteid)
Dim adminp As NotesAdministrationProcess
Set adminp = ses.CreateAdministrationProcess(db.Server)
Dim members(0) As String, grps
members(0)=doc.GetItemValue(FULLNAME_FLD)(0)
grps=doc.GetItemValue(GROUPS_FLD)
ForAll grp In grps
noteid$ = adminp.AddGroupMembers(grp, members)
If Len(noteid)=0 Then
status=ArrayAppend(status, ERROR_TXT & CM_ERRADMINPGRPMOD & grp)
MsgBox status(UBound(status))
Else
status=ArrayAppend(status, CM_SUCCESS & grp)
End If
End ForAll
Quit:
If Not doc Is Nothing Then Call doc.ReplaceItemValue(STATUS_FLD, status): Call doc.Save(True, False)
Exit Sub
ErrH:
status=Arrayappend(status, RaiseErrorMsg)
Resume Quit
End Sub
я сторонник системных подходов, но в "неустойчивых" случаях - как-то руками :)
 

Shandrik

Lotus team
30.12.2010
268
12
#12
Применил указанный выше воркэраунд - всё заработало, даже шаблон почтовой базы стал принимать.
 

erdi

Well-known member
20.08.2008
265
17
#14
создаешь группу с типом запрета доступа, в серверном документе выбираешь ее для запрета и все кто в этой группе находится - не пускаются на сервер
 

Shandrik

Lotus team
30.12.2010
268
12
#15
Имеется в виду кодом - есть ли какой метод, блокирующий юзера?
 

erdi

Well-known member
20.08.2008
265
17
#17
можно....никто тебе не запрещает(кроме админа) взять группу, взять всех членов этой группы и либо удалить, либо добавить пользователя