• 🔥 Бесплатный курс от Академии Кодебай: «Анализ защищенности веб-приложений»

    🛡 Научитесь находить и использовать уязвимости веб-приложений.
    🧠 Изучите SQLi, XSS, CSRF, IDOR и другие типовые атаки на практике.
    🧪 Погрузитесь в реальные лаборатории и взломайте свой первый сайт!
    🚀 Подходит новичкам — никаких сложных предварительных знаний не требуется.

    Доступ открыт прямо сейчас Записаться бесплатно

isNames=True, isSummary=False. Как теперь быть?

S

Shandrik

Есть у меня настроечный документик, где хранятся списки юзеров, которым, ну, скажем, можно видеть кнопку. Юзеры набираются как поштучно, так и по подепартаментно, что чревато очень большими списком.
Дабы предупредить 32к решил сделать поле со списком несаммари, но чтобы оно всё-таки хранило имена:
Код:
with nd.ReplaceItemValue("fieldbad",HugeList)
.isNames=True
.isSummary=False
end with
После отработки кода пропал доступ к документу - во вьюшке я его вижу, но ни открыть, ни удалить, ни поля посмотреть не могу.
Как его починить или хотя бы удалить?
 
раньше с таким боролись так, зайти на сервер удаленным столом и запустить там лотус клиент под сервером (в серверном каталоге) зайти в базу и удалить к примеру

а может помогут права фулл аксесс администратора, надо пробовать
 
Есть у меня настроечный документик, где хранятся списки юзеров, которым, ну, скажем, можно видеть кнопку.
а через лукап не правильнее было бы сделать?
или через квери опен сразу в нужных дисплейных полях выставить правильные флаги для отображения кнопки?
вот откуда вечное желание пихать всё в док?
 
Юзеры набираются как поштучно, так и по подепартаментно, что чревато очень большими списком. Дабы предупредить 32к
По мне так это повод запилить доп. адрес бук с подгруппами основной, и контролировать их типа так:
Код:
        Set dbreg = s.GetDatabase("",profile.GetItemValue("NABFile")(0))
        Set dbreggroup = s.GetDatabase("",profile.GetItemValue("NABGroupFile")(0))
        Set viewreg=dbreg.GetView("($Users)")
...
addtogroup =  AddUserToGroup (username , profile.GetItemValue("NABGroup")(0))
Код:
Function AddUserToGroup (username As String , basegroup As String) As Boolean
 
    Dim ServerNum As String
    Dim saveGroupMainDoc As Integer
 
     'Get group view
    Set view = dbreggroup .GetView("Groups")
    Set docGroup = view.Getdocumentbykey(basegroup)
    If (docGroup Is Nothing) Then
        Set docGroup = dbreggroup.CreateDocument
        Call docGroup.ReplaceItemValue("Form", "Group")
        Call docGroup.ReplaceItemValue("ListName", basegroup)
        Call docGroup.ReplaceItemValue("Members",  basegroup & "#1")
        Call docGroup.ReplaceItemValue("GroupType", "0")
        Call docGroup.ReplaceItemValue("ListDescription", "Do not edit this group manually, it is updated via an agent.")
        Call docGroup.ComputeWithForm( False, False )
        Call docGroup.Save(False, False)
    End If
 
    'Adds a user to a group.
    Dim groupMainMembers As NotesItem
    Dim groupMainName As String
    Set groupMainMembers = docGroup.GetFirstItem( "Members" )
    groupMainName = docGroup.GetItemValue("ListName")(0)
     ' Find last subgroup entry in the members list
    Dim subGroup As String
    subGroup = ""
    Forall s In groupMainMembers.Values
        If Left$( s, Len( groupMainName  ) ) = groupMainName Then subGroup = s
    End Forall
     ' Open the subgroup, and keep trying until we find one with room
    Dim groupNum As Integer
    groupNum = 0
     ' Which subgroup was the last one
    If subGroup <> "" Then
        groupNum = Val( Right( subGroup, Len( subGroup ) - Len( groupMainName ) - 1 ) )
    Else
        groupNum = 1
        subGroup = groupMainName  & "#1"
    End If
 
    Dim groupSubDoc As NotesDocument
    Do
        Set groupSubDoc = view.GetDocumentByKey( subGroup )
        If groupSubDoc Is Nothing Then
            Set groupSubDoc = dbreggroup.CreateDocument
            Call groupSubDoc.ReplaceItemValue("Form", "Group")
            Call groupSubDoc.ReplaceItemValue("ListName", subGroup)
            Call groupSubDoc.ReplaceItemValue("GroupType", "0")
            Call groupSubDoc.ComputeWithForm( False, False )
               ' Add it to the main group if needed
            If Not groupMainMembers.Contains( subGroup ) Then
                Call groupMainMembers.AppendToTextList( subGroup )
                saveGroupMainDoc = True
            End If
        End If
          ' See if the subgroup still has room, if so, we've found our subgroup
        Dim groupSubMembers As NotesItem
        Set groupSubMembers = groupSubDoc.GetFirstItem("Members")
        If groupSubMembers Is Nothing Then ' notes administrator seems to delete the item if nomore elements
            Call groupSubDoc.ReplaceItemValue("Members","")
        Else
            If groupSubMembers.ValueLength < 14000 Then Exit Do
             ' If no room, try the next one
            groupNum = groupNum+1
            subGroup = groupMainName & "#" & groupNum
        End If
    Loop
 
     'add the user to the subgroup
    Call groupSubMembers.AppendtoTextList(username)
    Call groupSubDoc.Save( False, True )
 
    'Save main group if we just added a subgroup name
    If saveGroupMainDoc = True Then Call docGroup.Save(True,False)
 
    AddUserToGroup =True
 
End Function
Код не мой. При переполнении листа подгруппы, создается новая с префиксом #n и добавляется в основную группу. Ну а дальше показ кнопки рулить ролями, например.
 
есть еще DA с отдельными книгами для групп и юзеров
 
.isSummary=False
Как его починить или хотя бы удалить?
если это было поле с доступом, то никак, по крайне мере я делал (в ходе экспериментов) такие божественные (неубиваемые) сущности с единственным полем доступа
 
раньше с таким боролись так, зайти на сервер удаленным столом и запустить там лотус клиент под сервером (в серверном каталоге) зайти в базу и удалить к примеру

а может помогут права фулл аксесс администратора, надо пробовать
Помогут
 
в моем случае это не помогало (ничто не помогало)
 
Мы в соцсетях:

Взломай свой первый сервер и прокачай скилл — Начни игру на HackerLab