MCPcopy Create free account
hub / github.com/Macmod/godap / loadChangeControlFlagsForm

Function loadChangeControlFlagsForm

tui/dacl.go:490–556  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

488}
489
490func loadChangeControlFlagsForm() {
491 if sd == nil {
492 return
493 }
494
495 updateControlFlagsForm := NewXForm()
496
497 controlFlags := sd.GetControl()
498
499 checkboxState := controlFlags
500
501 updateControlFlagsForm.
502 AddTextView("Raw ControlFlag Value", strconv.Itoa(checkboxState), 0, 1, false, true)
503
504 controlFlagsKeys := make([]int, 0)
505 for key := range ldaputils.SDControlFlags {
506 controlFlagsKeys = append(controlFlagsKeys, key)
507 }
508 sort.Ints(controlFlagsKeys)
509
510 for _, val := range controlFlagsKeys {
511 flagVal := val
512 updateControlFlagsForm.AddCheckbox(
513 ldaputils.SDControlFlags[flagVal],
514 controlFlags&flagVal != 0,
515 func(checked bool) {
516 if checked {
517 checkboxState |= flagVal
518 } else {
519 checkboxState &^= flagVal
520 }
521
522 flagPreview := updateControlFlagsForm.GetFormItemByLabel("Raw ControlFlag Value").(*tview.TextView)
523 if flagPreview != nil {
524 flagPreview.SetText(strconv.Itoa(checkboxState))
525 }
526 })
527 }
528
529 updateControlFlagsForm.
530 AddButton("Go Back", func() {
531 app.SetRoot(appPanel, true).SetFocus(daclEntriesPanel)
532 }).
533 AddButton("Update", func() {
534
535 sd.Header.Control = ldaputils.EndianConvert(fmt.Sprintf("%04x", checkboxState))
536 newSd, _ := hex.DecodeString(sd.Encode())
537
538 err = lc.ModifyDACL(object, string(newSd))
539
540 if err == nil {
541 updateLog("Control flags updated for '"+object+"'", "green")
542 go app.QueueUpdateDraw(updateDaclEntries)
543 } else {
544 handleLDAPError(err)
545 }
546
547 app.SetRoot(appPanel, true).SetFocus(daclEntriesPanel)

Callers 1

daclPageKeyHandlerFunction · 0.85

Calls 9

AddTextViewMethod · 0.95
AddCheckboxMethod · 0.95
EndianConvertFunction · 0.92
NewXFormFunction · 0.85
updateLogFunction · 0.85
handleLDAPErrorFunction · 0.85
GetControlMethod · 0.80
ModifyDACLMethod · 0.80
EncodeMethod · 0.65

Tested by

no test coverage detected