## ----screenshot.opts = list(vwidth = 700, vheight = 500), , screenshot.alt = 'screenshots/howto_row_level_access_1.png'----
library(editbl)
library(shiny)
conn <- DBI::dbConnect(RSQLite::SQLite(), "")
df <- data.frame(
    user = c("Albert","Donald","Mickey"),
    email = c('albert@einstein.com', 'donald@duck.com', 'mickey@mouse.com')
)
DBI::dbWriteTable(conn, "characters", df)
tibble <- dplyr::tbl(conn, 'characters')

CURRENT_USER = 'Mickey'

shiny::shinyApp( 
    ui = editbl::eDTOutput('id'),
    server =  function(input, output,session){
      result <- eDT(id='id',
        data = tibble %>% filter(user == CURRENT_USER),
        in_place = TRUE
      )
    })

print(tibble)

DBI::dbDisconnect(conn)

## ----screenshot.opts = list(vwidth = 700, vheight = 500), , screenshot.alt = 'screenshots/howto_row_level_access_2.png'----
library(editbl)
df <- tibble::tibble(
    user = c("Albert","Donald","Mickey"),
    email = c('albert@einstein.com', 'donald@duck.com', 'mickey@mouse.com')
)

CURRENT_USER = 'Mickey'

rowModificationLogic <- function(row){
        if (row[,'user'] == CURRENT_USER){
          TRUE
        } else {
          FALSE  
        }
    }

shiny::shinyApp( 
    ui = editbl::eDTOutput('id'),
    server =  function(input, output,session){
      eDT(id='id',
        data = df,
        canEditRow = rowModificationLogic,
        canDeleteRow = rowModificationLogic
        )
    })