working on AuthController

This commit is contained in:
Sockenklaus
2023-07-03 22:27:07 +02:00
parent a52c0143df
commit 25c75087bb
9 changed files with 77 additions and 16 deletions

View File

@@ -1,3 +1,36 @@
// import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
import { schema } from '@ioc:Adonis/Core/Validator'
import Logger from '@ioc:Adonis/Core/Logger'
export default class AuthController {}
export default class AuthController {
public async login({ auth, request, session, response }: HttpContextContract){
const { username, password } = request.all()
/*const loginSchema = schema.create({
username: schema.string({trim: true}),
password: schema.string()
})
const { username, password } = await request.validate({
schema: loginSchema,
messages: {
required: 'This field is required'
}
})*/
try {
await auth.attempt(username, password)
response.redirect('/events')
} catch (error) {
session.flash("notification", "Login fehlgeschlagen")
response.redirect("/")
}
}
public async logout({ auth, response }: HttpContextContract) {
await auth.logout()
response.redirect('/login')
}
}

View File

@@ -1,7 +1,9 @@
import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
export default class EventsController {
public async index({}: HttpContextContract) {}
public async index({ inertia }: HttpContextContract) {
return inertia.render('Events/Index')
}
public async create({}: HttpContextContract) {}

View File

@@ -1,9 +1,18 @@
import type { HttpContextContract } from '@ioc:Adonis/Core/HttpContext'
import User from 'App/Models/User'
export default class UsersController {
public async index({}: HttpContextContract) {}
public async index({}: HttpContextContract) {
public async create({}: HttpContextContract) {}
}
public async create({ auth, inertia }: HttpContextContract) {
if(auth.user?.isAdmin) {
inertia.render('Users/Create')
} else {
inertia
}
}
public async store({}: HttpContextContract) {}
@@ -13,5 +22,17 @@ export default class UsersController {
public async update({}: HttpContextContract) {}
public async destroy({}: HttpContextContract) {}
public async destroy({ auth, response, params }: HttpContextContract) {
if (auth.user?.isAdmin){
const user = await User.findOrFail(params.id)
await user.delete()
.then(
() => {
response.redirect('users.index')
},
)
// TODO implement reasonable error handling.
.catch(error => console.log(error))
}
}
}