Size: a a a

2020 February 17

BP

Bogdan Panchenko in Kotlin JVM
Marat.k
Хотелось бы какой-то пример 🙈
схема примерно такая - БД с пользователями и ролями, у каждего пользователя своя ролл, пользователь\токен сохраняется в куки\сессии, по нему ты сможешь узнать роль пользователя и в зависимости из этого выдать нужную страницу с нужным видом.

Если система не сложная и ролей не много можно роли не хранить в бд, а завести enum\sealed class. Но мне кажется потом с развитием системы все равно придётся скорей всего БД
источник

BP

Bogdan Panchenko in Kotlin JVM
Marat.k
Делаю вот так:

// application
install(Authentication) {
 form("slw-form") {
   userParamName = "username"
   passwordParamName = "password"
   challenge("/login")
   validate { if (it.name == "test" && it.password == "password") UserIdPrincipal(it.name) else null }
 }
}

// routing
get("/login") { call.respondRedirect("login.html", false) }

На вызов формы отправляется пост-запрос на /login,  а хэндлера на пост нет. Если объявлять хэндлер на пост, то каким он должен быть?
post(path) { /* code */ }
источник

M

Marat.k in Kotlin JVM
Bogdan Panchenko
post(path) { /* code */ }
да, только я пока понять не могу что должно быть в /* code */ 🙈
источник

BP

Bogdan Panchenko in Kotlin JVM
Marat.k
Делаю вот так:

// application
install(Authentication) {
 form("slw-form") {
   userParamName = "username"
   passwordParamName = "password"
   challenge("/login")
   validate { if (it.name == "test" && it.password == "password") UserIdPrincipal(it.name) else null }
 }
}

// routing
get("/login") { call.respondRedirect("login.html", false) }

На вызов формы отправляется пост-запрос на /login,  а хэндлера на пост нет. Если объявлять хэндлер на пост, то каким он должен быть?
authenticate("slw-form") { }
источник

M

Marat.k in Kotlin JVM
Вообще, видимо, рабочий пример вот тут: https://github.com/ktorio/ktor-exercises/blob/master/solutions/exercise1/src/main/kotlin/Main.kt
источник

BP

Bogdan Panchenko in Kotlin JVM
Marat.k
да, только я пока понять не могу что должно быть в /* code */ 🙈
код, тут уже извни гугл:  
Создание системы авторизации, основанной на ролях (что-то подобное).
источник

BP

Bogdan Panchenko in Kotlin JVM
да, там два метода
источник

BP

Bogdan Panchenko in Kotlin JVM
Bogdan Panchenko
authenticate("slw-form") { }
а не пост
источник

M

Marat.k in Kotlin JVM
Bogdan Panchenko
код, тут уже извни гугл:  
Создание системы авторизации, основанной на ролях (что-то подобное).
Да, нет, всё норм, видимо, туплю. Мне бы просто залогиниться пока. Спасибо за ответы, буду дальше разбираться!
источник

BP

Bogdan Panchenko in Kotlin JVM
Marat.k
Да, нет, всё норм, видимо, туплю. Мне бы просто залогиниться пока. Спасибо за ответы, буду дальше разбираться!
обращайся
источник
2020 February 19

R

Roman Q in Kotlin JVM
(Вторая попытка)

Статья для интересующихся созданием graphql бэкэндов:

https://romankudryashov.com/blog/2020/02/how-to-graphql/
источник

AS

Aleksandr STNK in Kotlin JVM
Всем привет! Экспериментирую с вызовом внешних команд через ProcessBuilder, но в такой реализации https://pl.kotl.in/64TY6rbaD ругается на ссылку на функцию ::println, что не один метод не может быть вызван с поддерживаемыми аргументами, среди которых Any. Сам пример взял отсюда https://www.baeldung.com/run-shell-command-in-java , на чистом java работает без проблем. В чём может быть причина и как это пофиксить?
источник

A

Aleksei🐈 in Kotlin JVM
Aleksandr STNK
Всем привет! Экспериментирую с вызовом внешних команд через ProcessBuilder, но в такой реализации https://pl.kotl.in/64TY6rbaD ругается на ссылку на функцию ::println, что не один метод не может быть вызван с поддерживаемыми аргументами, среди которых Any. Сам пример взял отсюда https://www.baeldung.com/run-shell-command-in-java , на чистом java работает без проблем. В чём может быть причина и как это пофиксить?
Consumer { x: String? -> println(x) }  
источник

AS

Aleksandr STNK in Kotlin JVM
Aleksei🐈
Consumer { x: String? -> println(x) }  
👍👍👍👍👍👍  отлично сработало. Спасибо огромное
источник

BP

Bogdan Panchenko in Kotlin JVM
Aleksei🐈
Consumer { x: String? -> println(x) }  
почему не Consumer { println(it) } ?
источник

BP

Bogdan Panchenko in Kotlin JVM
Consumer(::println) - даже так
источник

A

Aleksei🐈 in Kotlin JVM
Bogdan Panchenko
почему не Consumer { println(it) } ?
Ну так конвертор java->kotlin сгенерил☺️
источник
2020 February 20

u

ultra noise in Kotlin JVM
спасибо!

в мутации createPlanet используется Jackson ObjectMapper? я не так давно здорово обломался пытаясь скастовать аргументы сразу в DTO, пока не нашел вот такой ответ от ребят из graphql-java https://spectrum.chat/graphql-java/general/question-on-input-types~9ebdc0c3-f613-4dc7-8d78-e08e305114a7 . нигде про это прямо не пишут, а я подозреваю что я такой не один
источник

R

Roman Q in Kotlin JVM
ultra noise
спасибо!

в мутации createPlanet используется Jackson ObjectMapper? я не так давно здорово обломался пытаясь скастовать аргументы сразу в DTO, пока не нашел вот такой ответ от ребят из graphql-java https://spectrum.chat/graphql-java/general/question-on-input-types~9ebdc0c3-f613-4dc7-8d78-e08e305114a7 . нигде про это прямо не пишут, а я подозреваю что я такой не один
Да, используется Jackson. Похожим образом как в ответе по ссылке
источник

AM

Andrew Mikhaylov in Kotlin JVM
27 февраля в 16:35 МСК стартует соревнование по программированию на Kotlin от JetBrains и Codeforces — Kotlin Heroes Coding Сhallenge.

Будут задачи как для начинающих, так и для опытных программистов. Приз победителю - $512, а каждый, кто решит хотя бы одну задачу, получит возможность выиграть футболку Kotlin Heroes.

Регистрация и подробности: https://www.jetbrains.com/promo/kotlin-heroes/
источник