Initial commit
This commit is contained in:
commit
6e38997e6d
|
|
@ -0,0 +1,18 @@
|
||||||
|
root = true
|
||||||
|
|
||||||
|
[*]
|
||||||
|
charset = utf-8
|
||||||
|
end_of_line = lf
|
||||||
|
indent_size = 4
|
||||||
|
indent_style = space
|
||||||
|
insert_final_newline = true
|
||||||
|
trim_trailing_whitespace = true
|
||||||
|
|
||||||
|
[*.md]
|
||||||
|
trim_trailing_whitespace = false
|
||||||
|
|
||||||
|
[*.{yml,yaml}]
|
||||||
|
indent_size = 2
|
||||||
|
|
||||||
|
[docker-compose.yml]
|
||||||
|
indent_size = 4
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=sqlite
|
||||||
|
# DB_HOST=127.0.0.1
|
||||||
|
# DB_PORT=3306
|
||||||
|
# DB_DATABASE=laravel
|
||||||
|
# DB_USERNAME=root
|
||||||
|
# DB_PASSWORD=
|
||||||
|
|
||||||
|
SESSION_DRIVER=database
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=log
|
||||||
|
MAIL_HOST=127.0.0.1
|
||||||
|
MAIL_PORT=2525
|
||||||
|
MAIL_USERNAME=null
|
||||||
|
MAIL_PASSWORD=null
|
||||||
|
MAIL_ENCRYPTION=null
|
||||||
|
MAIL_FROM_ADDRESS="hello@example.com"
|
||||||
|
MAIL_FROM_NAME="${APP_NAME}"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
* text=auto eol=lf
|
||||||
|
|
||||||
|
*.blade.php diff=html
|
||||||
|
*.css diff=css
|
||||||
|
*.html diff=html
|
||||||
|
*.md diff=markdown
|
||||||
|
*.php diff=php
|
||||||
|
|
||||||
|
/.github export-ignore
|
||||||
|
CHANGELOG.md export-ignore
|
||||||
|
.styleci.yml export-ignore
|
||||||
|
|
@ -0,0 +1,19 @@
|
||||||
|
/.phpunit.cache
|
||||||
|
/node_modules
|
||||||
|
/public/build
|
||||||
|
/public/hot
|
||||||
|
/public/storage
|
||||||
|
/storage/*.key
|
||||||
|
/vendor
|
||||||
|
.env
|
||||||
|
.env.backup
|
||||||
|
.env.production
|
||||||
|
.phpunit.result.cache
|
||||||
|
Homestead.json
|
||||||
|
Homestead.yaml
|
||||||
|
auth.json
|
||||||
|
npm-debug.log
|
||||||
|
yarn-error.log
|
||||||
|
/.fleet
|
||||||
|
/.idea
|
||||||
|
/.vscode
|
||||||
|
|
@ -0,0 +1,64 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=greenview
|
||||||
|
DB_USERNAME=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=log
|
||||||
|
MAIL_HOST=127.0.0.1
|
||||||
|
MAIL_PORT=2525
|
||||||
|
MAIL_USERNAME=null
|
||||||
|
MAIL_PASSWORD=null
|
||||||
|
MAIL_ENCRYPTION=null
|
||||||
|
MAIL_FROM_ADDRESS="hello@example.com"
|
||||||
|
MAIL_FROM_NAME="${APP_NAME}"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=greenview
|
||||||
|
DB_USERNAME=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
|
||||||
|
FONNTE_TOKEN=ISI_TOKEN_KAMU_DISINI
|
||||||
|
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=log
|
||||||
|
MAIL_HOST=127.0.0.1
|
||||||
|
MAIL_PORT=2525
|
||||||
|
MAIL_USERNAME=null
|
||||||
|
MAIL_PASSWORD=null
|
||||||
|
MAIL_ENCRYPTION=null
|
||||||
|
MAIL_FROM_ADDRESS="hello@example.com"
|
||||||
|
MAIL_FROM_NAME="${APP_NAME}"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=greenview
|
||||||
|
DB_USERNAME=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
|
||||||
|
FONNTE_TOKEN=gGaFJXn41pcCRvRDPyyq
|
||||||
|
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=log
|
||||||
|
MAIL_HOST=127.0.0.1
|
||||||
|
MAIL_PORT=2525
|
||||||
|
MAIL_USERNAME=null
|
||||||
|
MAIL_PASSWORD=null
|
||||||
|
MAIL_ENCRYPTION=null
|
||||||
|
MAIL_FROM_ADDRESS="hello@example.com"
|
||||||
|
MAIL_FROM_NAME="${APP_NAME}"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=greenview
|
||||||
|
DB_USERNAME=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
|
||||||
|
FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj
|
||||||
|
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=log
|
||||||
|
MAIL_HOST=127.0.0.1
|
||||||
|
MAIL_PORT=2525
|
||||||
|
MAIL_USERNAME=null
|
||||||
|
MAIL_PASSWORD=null
|
||||||
|
MAIL_ENCRYPTION=null
|
||||||
|
MAIL_FROM_ADDRESS="hello@example.com"
|
||||||
|
MAIL_FROM_NAME="${APP_NAME}"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=greenview
|
||||||
|
DB_USERNAME=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
|
||||||
|
FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj
|
||||||
|
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=smtp
|
||||||
|
MAIL_HOST=smtp.gmail.com
|
||||||
|
MAIL_PORT=587
|
||||||
|
MAIL_USERNAME=EMAIL_KAMU
|
||||||
|
MAIL_PASSWORD=APP_PASSWORD_GMAIL
|
||||||
|
MAIL_ENCRYPTION=tls
|
||||||
|
MAIL_FROM_ADDRESS=EMAIL_KAMU
|
||||||
|
MAIL_FROM_NAME="Green View"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=greenview
|
||||||
|
DB_USERNAME=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
|
||||||
|
FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj
|
||||||
|
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=smtp
|
||||||
|
MAIL_HOST=smtp.gmail.com
|
||||||
|
MAIL_PORT=587
|
||||||
|
MAIL_USERNAME=mlnryan05@gmail.com
|
||||||
|
MAIL_PASSWORD=APP_PASSWORD_GMAIL
|
||||||
|
MAIL_ENCRYPTION=tls
|
||||||
|
MAIL_FROM_ADDRESS=EMAIL_KAMU
|
||||||
|
MAIL_FROM_NAME="Green View"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=greenview
|
||||||
|
DB_USERNAME=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
|
||||||
|
FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj
|
||||||
|
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=smtp
|
||||||
|
MAIL_HOST=smtp.gmail.com
|
||||||
|
MAIL_PORT=587
|
||||||
|
MAIL_USERNAME=mlnryan05@gmail.com
|
||||||
|
MAIL_PASSWORD=APP_PASSWORD_GMAIL
|
||||||
|
MAIL_ENCRYPTION=tls
|
||||||
|
MAIL_FROM_ADDRESS=mlnryan05@gmail.com
|
||||||
|
MAIL_FROM_NAME="Green View"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=greenview
|
||||||
|
DB_USERNAME=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
|
||||||
|
FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj
|
||||||
|
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=smtp
|
||||||
|
MAIL_HOST=smtp.gmail.com
|
||||||
|
MAIL_PORT=587
|
||||||
|
MAIL_USERNAME=mlnryan05@gmail.com
|
||||||
|
MAIL_PASSWORD=
|
||||||
|
MAIL_ENCRYPTION=tls
|
||||||
|
MAIL_FROM_ADDRESS=mlnryan05@gmail.com
|
||||||
|
MAIL_FROM_NAME="Green View"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=greenview
|
||||||
|
DB_USERNAME=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
|
||||||
|
FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj
|
||||||
|
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=smtp
|
||||||
|
MAIL_HOST=smtp.gmail.com
|
||||||
|
MAIL_PORT=587
|
||||||
|
MAIL_USERNAME=mlnryan05@gmail.com
|
||||||
|
MAIL_PASSWORD=qnte zkku hlrg nxzs
|
||||||
|
MAIL_ENCRYPTION=tls
|
||||||
|
MAIL_FROM_ADDRESS=mlnryan05@gmail.com
|
||||||
|
MAIL_FROM_NAME="Green View"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=greenview
|
||||||
|
DB_USERNAME=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
|
||||||
|
FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj
|
||||||
|
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=smtp
|
||||||
|
MAIL_HOST=smtp.gmail.com
|
||||||
|
MAIL_PORT=587
|
||||||
|
MAIL_USERNAME=mlnryan05@gmail.com
|
||||||
|
MAIL_PASSWORD=qntezkku hlrg nxzs
|
||||||
|
MAIL_ENCRYPTION=tls
|
||||||
|
MAIL_FROM_ADDRESS=mlnryan05@gmail.com
|
||||||
|
MAIL_FROM_NAME="Green View"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=greenview
|
||||||
|
DB_USERNAME=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
|
||||||
|
FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj
|
||||||
|
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=smtp
|
||||||
|
MAIL_HOST=smtp.gmail.com
|
||||||
|
MAIL_PORT=587
|
||||||
|
MAIL_USERNAME=mlnryan05@gmail.com
|
||||||
|
MAIL_PASSWORD=qntezkkuhlrg nxzs
|
||||||
|
MAIL_ENCRYPTION=tls
|
||||||
|
MAIL_FROM_ADDRESS=mlnryan05@gmail.com
|
||||||
|
MAIL_FROM_NAME="Green View"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=greenview
|
||||||
|
DB_USERNAME=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
|
||||||
|
FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj
|
||||||
|
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=smtp
|
||||||
|
MAIL_HOST=smtp.gmail.com
|
||||||
|
MAIL_PORT=587
|
||||||
|
MAIL_USERNAME=mlnryan05@gmail.com
|
||||||
|
MAIL_PASSWORD=qntezkkuhlrgnxzs
|
||||||
|
MAIL_ENCRYPTION=tls
|
||||||
|
MAIL_FROM_ADDRESS=mlnryan05@gmail.com
|
||||||
|
MAIL_FROM_NAME="Green View"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,66 @@
|
||||||
|
APP_NAME=Laravel
|
||||||
|
APP_ENV=local
|
||||||
|
APP_KEY=base64:VGjxoHXnll7wWiXgXTzgWYAFLsyenxO+NwqA4c4Tu6k=
|
||||||
|
APP_DEBUG=true
|
||||||
|
APP_TIMEZONE=UTC
|
||||||
|
APP_URL=http://localhost
|
||||||
|
|
||||||
|
APP_LOCALE=en
|
||||||
|
APP_FALLBACK_LOCALE=en
|
||||||
|
APP_FAKER_LOCALE=en_US
|
||||||
|
|
||||||
|
APP_MAINTENANCE_DRIVER=file
|
||||||
|
APP_MAINTENANCE_STORE=database
|
||||||
|
|
||||||
|
BCRYPT_ROUNDS=12
|
||||||
|
|
||||||
|
LOG_CHANNEL=stack
|
||||||
|
LOG_STACK=single
|
||||||
|
LOG_DEPRECATIONS_CHANNEL=null
|
||||||
|
LOG_LEVEL=debug
|
||||||
|
|
||||||
|
DB_CONNECTION=mysql
|
||||||
|
DB_HOST=127.0.0.1
|
||||||
|
DB_PORT=3306
|
||||||
|
DB_DATABASE=greenview
|
||||||
|
DB_USERNAME=root
|
||||||
|
DB_PASSWORD=
|
||||||
|
|
||||||
|
FONNTE_TOKEN=chpBEnbbsP7BEZQnZ6jj
|
||||||
|
|
||||||
|
SESSION_DRIVER=file
|
||||||
|
SESSION_LIFETIME=120
|
||||||
|
SESSION_ENCRYPT=false
|
||||||
|
SESSION_PATH=/
|
||||||
|
SESSION_DOMAIN=null
|
||||||
|
|
||||||
|
BROADCAST_CONNECTION=log
|
||||||
|
FILESYSTEM_DISK=local
|
||||||
|
QUEUE_CONNECTION=database
|
||||||
|
|
||||||
|
CACHE_STORE=database
|
||||||
|
CACHE_PREFIX=
|
||||||
|
|
||||||
|
MEMCACHED_HOST=127.0.0.1
|
||||||
|
|
||||||
|
REDIS_CLIENT=phpredis
|
||||||
|
REDIS_HOST=127.0.0.1
|
||||||
|
REDIS_PASSWORD=null
|
||||||
|
REDIS_PORT=6379
|
||||||
|
|
||||||
|
MAIL_MAILER=smtp
|
||||||
|
MAIL_HOST=smtp.gmail.com
|
||||||
|
MAIL_PORT=587
|
||||||
|
MAIL_USERNAME=mlnryan05@gmail.com
|
||||||
|
MAIL_PASSWORD=qntezkkuhlrgnxzs
|
||||||
|
MAIL_ENCRYPTION=tls
|
||||||
|
MAIL_FROM_ADDRESS=mlnryan05@gmail.com
|
||||||
|
MAIL_FROM_NAME="Green View"
|
||||||
|
|
||||||
|
AWS_ACCESS_KEY_ID=
|
||||||
|
AWS_SECRET_ACCESS_KEY=
|
||||||
|
AWS_DEFAULT_REGION=us-east-1
|
||||||
|
AWS_BUCKET=
|
||||||
|
AWS_USE_PATH_STYLE_ENDPOINT=false
|
||||||
|
|
||||||
|
VITE_APP_NAME="${APP_NAME}"
|
||||||
|
|
@ -0,0 +1,11 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,15 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$user = User::all();
|
||||||
|
return view('admin.user.index', compact('user'));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$user = User::all();
|
||||||
|
return view('admin.user.index', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 FORM EDIT
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$user = User::findOrFail($id);
|
||||||
|
return view('admin.user.edit', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 UPDATE DATA
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$user = User::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'email' => 'required|email',
|
||||||
|
'role' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'name' => $request->name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'role' => $request->role,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$user = User::all();
|
||||||
|
return view('admin.user.index', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 FORM EDIT
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
return view('admin.user.edit', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 UPDATE DATA
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$user = User::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'email' => 'required|email',
|
||||||
|
'role' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'name' => $request->name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'role' => $request->role,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$user = User::all();
|
||||||
|
return view('admin.user.index', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 FORM EDIT
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
return view('admin.user.edit', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 UPDATE DATA
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$user = User::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'email' => 'required|email',
|
||||||
|
'role' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'name' => $request->name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'role' => $request->role,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,43 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$user = User::all();
|
||||||
|
return view('admin.user.index', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 FORM EDIT
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
return view('admin.user.edit', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 UPDATE DATA
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'email' => 'required|email',
|
||||||
|
'role' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'name' => $request->name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'role' => $request->role,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,44 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$user = User::all();
|
||||||
|
return view('admin.user.index', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 FORM EDIT
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
return view('admin.user.edit', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 UPDATE DATA
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'email' => 'required|email',
|
||||||
|
'role' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'name' => $request->name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'role' => $request->role,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$user = User::all();
|
||||||
|
return view('admin.user.index', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 FORM EDIT
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
return view('admin.user.edit', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 UPDATE DATA
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'email' => 'required|email',
|
||||||
|
'role' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'name' => $request->name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'role' => $request->role,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
Route::delete('/admin/user/delete/{id}', [UserController::class, 'destroy'])->name('admin.user.delete');
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$user = User::all();
|
||||||
|
return view('admin.user.index', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 FORM EDIT
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
return view('admin.user.edit', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 UPDATE DATA
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'email' => 'required|email',
|
||||||
|
'role' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'name' => $request->name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'role' => $request->role,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$user = User::all();
|
||||||
|
return view('admin.user.index', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 FORM EDIT
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
return view('admin.user.edit', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 UPDATE DATA
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'email' => 'required|email',
|
||||||
|
'role' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'name' => $request->name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'role' => $request->role,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
Route::delete('/admin/user/delete/{id}', [UserController::class, 'destroy'])->name('admin.user.delete');
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,45 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$user = User::all();
|
||||||
|
return view('admin.user.index', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 FORM EDIT
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
return view('admin.user.edit', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 UPDATE DATA
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'email' => 'required|email',
|
||||||
|
'role' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'name' => $request->name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'role' => $request->role,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$user = User::all();
|
||||||
|
return view('admin.user.index', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 FORM EDIT
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
return view('admin.user.edit', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 UPDATE DATA
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'email' => 'required|email',
|
||||||
|
'role' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'name' => $request->name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'role' => $request->role,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
$user->delete();
|
||||||
|
|
||||||
|
return redirect()->route('admin.user.index')->with('success', 'User berhasil dihapus');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,51 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers\Admin;
|
||||||
|
|
||||||
|
use App\Http\Controllers\Controller;
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
|
||||||
|
class UserController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$user = User::all();
|
||||||
|
return view('admin.user.index', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 FORM EDIT
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
return view('admin.user.edit', compact('user'));
|
||||||
|
}
|
||||||
|
|
||||||
|
// 🔥 UPDATE DATA
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'email' => 'required|email',
|
||||||
|
'role' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'name' => $request->name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'role' => $request->role,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('admin.user.index')->with('success', 'Data berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
$user = \App\Models\User::findOrFail($id);
|
||||||
|
$user->delete();
|
||||||
|
|
||||||
|
return redirect()->route('admin.user.index')->with('success', 'User berhasil dihapus');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,77 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
if (Auth::attempt($request->only('email', 'password'))) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
// CEK ROLE
|
||||||
|
if (Auth::user()->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
} else {
|
||||||
|
return redirect('/penghuni/dashboard');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Email atau password salah!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'penghuni' // default user
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Registrasi berhasil, silakan login');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,83 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required', // bisa email / username
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
// cek login pakai email atau username
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
if (Auth::user()->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
} else {
|
||||||
|
return redirect('/penghuni/dashboard');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username,
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'penghuni'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,82 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
if (Auth::user()->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
} else {
|
||||||
|
return redirect('/penghuni/dashboard');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username,
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'penghuni'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,82 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
if (Auth::user()->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
} else {
|
||||||
|
return redirect('/penghuni/dashboard');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username,
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'penghuni'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
if (Auth::user()->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
} else {
|
||||||
|
return redirect('/penghuni/dashboard');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'penghuni'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
if (Auth::user()->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
} else {
|
||||||
|
return redirect('/penghuni/dashboard');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'penghuni'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
if (Auth::user()->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
} else {
|
||||||
|
return redirect('/user/dashboard');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'penghuni'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
if (Auth::user()->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
} else {
|
||||||
|
return redirect('/user/home');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'penghuni'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
if (Auth::user()->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
} else {
|
||||||
|
return redirect('/user/home');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
if (Auth::user()->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
} else {
|
||||||
|
return redirect('/user');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
if (Auth::user()->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
} else {
|
||||||
|
return redirect('/user/home');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,86 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
if (Auth::user()->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
} else {
|
||||||
|
return redirect('/user');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,92 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/iuran');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect('/user/home');
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,92 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/iuran');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect('/user/home');
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/iuran');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/iuran');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/das');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,96 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,101 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lupaPassword()
|
||||||
|
{
|
||||||
|
return view('auth.lupa-password');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,101 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lupaPassword()
|
||||||
|
{
|
||||||
|
return view('auth.lupa-password');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lupaPassword()
|
||||||
|
{
|
||||||
|
return view('auth.lupa-password');
|
||||||
|
}
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
|
||||||
|
public function kirimOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email|exists:users,email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'otp' => $otp,
|
||||||
|
'otp_expired_at' => now()->addMinutes(5)
|
||||||
|
]);
|
||||||
|
|
||||||
|
// K
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,103 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lupaPassword()
|
||||||
|
{
|
||||||
|
return view('auth.lupa-password');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,120 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lupaPassword()
|
||||||
|
{
|
||||||
|
return view('auth.lupa-password');
|
||||||
|
}
|
||||||
|
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
|
||||||
|
public function kirimOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email|exists:users,email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->update([
|
||||||
|
'otp' => $otp,
|
||||||
|
'otp_expired_at' => now()->addMinutes(5)
|
||||||
|
]);
|
||||||
|
|
||||||
|
// K
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,103 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lupaPassword()
|
||||||
|
{
|
||||||
|
return view('auth.lupa-password');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,104 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lupaPassword()
|
||||||
|
{
|
||||||
|
return view('auth.lupa-password');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,106 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function lupaPassword()
|
||||||
|
{
|
||||||
|
return view('auth.lupa-password');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,106 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,106 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,131 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,131 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,129 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,134 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,134 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,157 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,157 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,162 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetForm()
|
||||||
|
{
|
||||||
|
return view('auth.reset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,162 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetForm()
|
||||||
|
{
|
||||||
|
return view('auth.reset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetForm()
|
||||||
|
{
|
||||||
|
return view('auth.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetPassword(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'password' => 'required|min:6|confirmed'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->password = Hash::make($request->password);
|
||||||
|
$user->otp_code = null;
|
||||||
|
$user->otp_expired = null;
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Password berhasil direset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetForm()
|
||||||
|
{
|
||||||
|
return view('auth.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetPassword(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'password' => 'required|min:6|confirmed'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->password = Hash::make($request->password);
|
||||||
|
$user->otp_code = null;
|
||||||
|
$user->otp_expired = null;
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Password berhasil direset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->emails)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetForm()
|
||||||
|
{
|
||||||
|
return view('auth.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetPassword(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'password' => 'required|min:6|confirmed'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->password = Hash::make($request->password);
|
||||||
|
$user->otp_code = null;
|
||||||
|
$user->otp_expired = null;
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Password berhasil direset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->emails)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->emails]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetForm()
|
||||||
|
{
|
||||||
|
return view('auth.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetPassword(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'password' => 'required|min:6|confirmed'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->password = Hash::make($request->password);
|
||||||
|
$user->otp_code = null;
|
||||||
|
$user->otp_expired = null;
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Password berhasil direset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetForm()
|
||||||
|
{
|
||||||
|
return view('auth.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetPassword(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'password' => 'required|min:6|confirmed'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->password = Hash::make($request->password);
|
||||||
|
$user->otp_code = null;
|
||||||
|
$user->otp_expired = null;
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Password berhasil direset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->emails)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetForm()
|
||||||
|
{
|
||||||
|
return view('auth.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetPassword(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'password' => 'required|min:6|confirmed'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->password = Hash::make($request->password);
|
||||||
|
$user->otp_code = null;
|
||||||
|
$user->otp_expired = null;
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Password berhasil direset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetForm()
|
||||||
|
{
|
||||||
|
return view('auth.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetPassword(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'password' => 'required|min:6|confirmed'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->password = Hash::make($request->password);
|
||||||
|
$user->otp_code = null;
|
||||||
|
$user->otp_expired = null;
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Password berhasil direset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,189 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
|
||||||
|
dd($e->getMessage()); // 🔥 tampilkan error asli
|
||||||
|
}
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetForm()
|
||||||
|
{
|
||||||
|
return view('auth.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetPassword(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'password' => 'required|min:6|confirmed'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->password = Hash::make($request->password);
|
||||||
|
$user->otp_code = null;
|
||||||
|
$user->otp_expired = null;
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Password berhasil direset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,189 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
try {
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
} catch (\Exception $e) {
|
||||||
|
|
||||||
|
dd($e->getMessage()); // 🔥 tampilkan error asli
|
||||||
|
}
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetForm()
|
||||||
|
{
|
||||||
|
return view('auth.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetPassword(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'password' => 'required|min:6|confirmed'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->password = Hash::make($request->password);
|
||||||
|
$user->otp_code = null;
|
||||||
|
$user->otp_expired = null;
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Password berhasil direset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,182 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\User;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
use Illuminate\Support\Facades\Hash;
|
||||||
|
use Illuminate\Support\Facades\Mail;
|
||||||
|
use App\Mail\OtpMail;
|
||||||
|
use Carbon\Carbon;
|
||||||
|
|
||||||
|
class AuthController extends Controller
|
||||||
|
{
|
||||||
|
// ================= LOGIN =================
|
||||||
|
|
||||||
|
public function login()
|
||||||
|
{
|
||||||
|
return view('auth.login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesLogin(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'login' => 'required',
|
||||||
|
'password' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$login = $request->login;
|
||||||
|
|
||||||
|
$field = filter_var($login, FILTER_VALIDATE_EMAIL) ? 'email' : 'username';
|
||||||
|
|
||||||
|
if (Auth::attempt([$field => $login, 'password' => $request->password])) {
|
||||||
|
|
||||||
|
$request->session()->regenerate();
|
||||||
|
|
||||||
|
$user = Auth::user();
|
||||||
|
|
||||||
|
if ($user->role == 'admin') {
|
||||||
|
return redirect('/admin/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->role == 'rt') {
|
||||||
|
return redirect('/rt/dashboard');
|
||||||
|
}
|
||||||
|
|
||||||
|
return match($user->role) {
|
||||||
|
'admin' => redirect('/admin/dashboard'),
|
||||||
|
'rt' => redirect('/rt/iuran'),
|
||||||
|
default => redirect('/user/home'),
|
||||||
|
};
|
||||||
|
}
|
||||||
|
|
||||||
|
return back()->with('error', 'Login gagal!');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= REGISTER =================
|
||||||
|
|
||||||
|
public function register()
|
||||||
|
{
|
||||||
|
return view('auth.register');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function prosesRegister(Request $request)
|
||||||
|
{
|
||||||
|
// VALIDASI
|
||||||
|
$request->validate([
|
||||||
|
'name' => 'required',
|
||||||
|
'username' => 'required|unique:users,username',
|
||||||
|
'email' => 'required|email|unique:users,email',
|
||||||
|
'password' => 'required|min:6',
|
||||||
|
]);
|
||||||
|
|
||||||
|
// DEBUG (WAJIB COBA)
|
||||||
|
// dd($request->all());
|
||||||
|
|
||||||
|
User::create([
|
||||||
|
'name' => $request->name,
|
||||||
|
'username' => $request->username, // 🔥 INI WAJIB ADA
|
||||||
|
'email' => $request->email,
|
||||||
|
'password' => Hash::make($request->password),
|
||||||
|
'role' => 'user'
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Register berhasil');
|
||||||
|
}
|
||||||
|
|
||||||
|
// ================= LOGOUT =================
|
||||||
|
|
||||||
|
public function logout(Request $request)
|
||||||
|
{
|
||||||
|
Auth::logout();
|
||||||
|
|
||||||
|
$request->session()->invalidate();
|
||||||
|
$request->session()->regenerateToken();
|
||||||
|
|
||||||
|
return redirect('/login');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function forgotForm()
|
||||||
|
{
|
||||||
|
return view('auth.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function sendOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'email' => 'required|email'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', $request->email)->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return back()->with('error', 'Email tidak ditemukan');
|
||||||
|
}
|
||||||
|
|
||||||
|
$otp = rand(100000, 999999);
|
||||||
|
|
||||||
|
$user->otp_code = $otp;
|
||||||
|
$user->otp_expired = now()->addMinutes(5);
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
Mail::to($user->email)->send(new OtpMail($otp));
|
||||||
|
|
||||||
|
session(['reset_email' => $user->email]);
|
||||||
|
|
||||||
|
return redirect()->route('password.otp')->with('success', 'OTP dikirim ke email');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function otpForm()
|
||||||
|
{
|
||||||
|
return view('auth.otp');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function verifyOtp(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'otp' => 'required'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
if ($user->otp_code != $request->otp) {
|
||||||
|
return back()->with('error', 'OTP salah');
|
||||||
|
}
|
||||||
|
|
||||||
|
if (Carbon::now()->gt($user->otp_expired)) {
|
||||||
|
return back()->with('error', 'OTP expired');
|
||||||
|
}
|
||||||
|
|
||||||
|
return redirect()->route('password.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetForm()
|
||||||
|
{
|
||||||
|
return view('auth.reset');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function resetPassword(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'password' => 'required|min:6|confirmed'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$user = User::where('email', session('reset_email'))->first();
|
||||||
|
|
||||||
|
if (!$user) {
|
||||||
|
return redirect()->route('password.forgot');
|
||||||
|
}
|
||||||
|
|
||||||
|
$user->password = Hash::make($request->password);
|
||||||
|
$user->otp_code = null;
|
||||||
|
$user->otp_expired = null;
|
||||||
|
$user->save();
|
||||||
|
|
||||||
|
return redirect('/login')->with('success', 'Password berhasil direset');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,10 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
//
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
// nanti simpan ke database
|
||||||
|
return redirect()->route('informasi.index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('.informasi.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
// nanti simpan ke database
|
||||||
|
return redirect()->route('informasi.index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('informasi.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
// nanti simpan ke database
|
||||||
|
return redirect()->route('informasi.index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
// nanti simpan ke database
|
||||||
|
return redirect()->route('informasi.index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('informasi.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
// nanti simpan ke database
|
||||||
|
return redirect()->route('informasi.index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
// nanti simpan ke database
|
||||||
|
return redirect()->route('informasi.index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
dd(view()->exists('admin.informasi.index'));
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,4 @@
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
dd(view()->exists('admin.informasi.index'));
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
// nanti simpan ke database
|
||||||
|
return redirect()->route('informasi.index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
dd(view()->exists('admin.informasi.index'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
// nanti simpan ke database
|
||||||
|
return redirect()->route('informasi.index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('adminformasi.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
// nanti simpan ke database
|
||||||
|
return redirect()->route('informasi.index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('admininformasi.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
// nanti simpan ke database
|
||||||
|
return redirect()->route('informasi.index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,24 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
// nanti simpan ke database
|
||||||
|
return redirect()->route('informasi.index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,25 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\Informasi;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.index');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
// nanti simpan ke database
|
||||||
|
return redirect()->route('informasi.index');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,92 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\Informasi;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$informasi = Informasi::latest()->get();
|
||||||
|
return view('admin.informasi.index', compact('informasi'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = null;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
Informasi::create([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'penulis' => auth()->user()->name,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
return view('admin.informasi.edit', compact('data'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = $data->gambar;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
$data->update([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
Informasi::findOrFail($id)->delete();
|
||||||
|
return back()->with('success', 'Berhasil dihapus');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,92 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\Informasi;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$informasi = Informasi::latest()->get();
|
||||||
|
return view('admin.informasi.index', compact('informasi'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = null;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
Informasi::create([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'penulis' => auth()->user()->name,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
return view('admin.informasi.edit', compact('data'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = $data->gambar;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
$data->update([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
Informasi::findOrFail($id)->delete();
|
||||||
|
return back()->with('success', 'Berhasil dihapus');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,92 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\Informasi;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$informasi = Informasi::latest()->get();
|
||||||
|
return view('admin.informasi.index', compact('informasi'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = null;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
Informasi::create([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'penulis' => auth()->user()->name,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
return view('admin.informasi.edit', compact('data'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = $data->gambar;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
$data->update([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
Informasi::findOrFail($id)->delete();
|
||||||
|
return back()->with('success', 'Berhasil dihapus');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,93 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\Informasi;
|
||||||
|
use
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$informasi = Informasi::latest()->get();
|
||||||
|
return view('admin.informasi.index', compact('informasi'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = null;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
Informasi::create([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'penulis' => auth()->user()->name,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
return view('admin.informasi.edit', compact('data'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = $data->gambar;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
$data->update([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
Informasi::findOrFail($id)->delete();
|
||||||
|
return back()->with('success', 'Berhasil dihapus');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,93 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\Informasi;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$informasi = Informasi::latest()->get();
|
||||||
|
return view('admin.informasi.index', compact('informasi'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = null;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
Informasi::create([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'penulis' => auth()->user()->name,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
return view('admin.informasi.edit', compact('data'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = $data->gambar;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
$data->update([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
Informasi::findOrFail($id)->delete();
|
||||||
|
return back()->with('success', 'Berhasil dihapus');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,93 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\Informasi;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$informasi = Informasi::latest()->get();
|
||||||
|
return view('admin.informasi.index', compact('informasi'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = null;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
Informasi::create([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'penulis' => Auth::user()->name,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
return view('admin.informasi.edit', compact('data'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = $data->gambar;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
$data->update([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
Informasi::findOrFail($id)->delete();
|
||||||
|
return back()->with('success', 'Berhasil dihapus');
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
@ -0,0 +1,103 @@
|
||||||
|
<?php
|
||||||
|
|
||||||
|
namespace App\Http\Controllers;
|
||||||
|
|
||||||
|
use Illuminate\Http\Request;
|
||||||
|
use App\Models\Informasi;
|
||||||
|
use Illuminate\Support\Facades\Auth;
|
||||||
|
|
||||||
|
class InformasiController extends Controller
|
||||||
|
{
|
||||||
|
public function index()
|
||||||
|
{
|
||||||
|
$informasi = Informasi::latest()->get();
|
||||||
|
return view('admin.informasi.index', compact('informasi'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function create()
|
||||||
|
{
|
||||||
|
return view('admin.informasi.create');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function store(Request $request)
|
||||||
|
{
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
'gambar' => 'nullable|image|mimes:jpg,png,jpeg|max:2048'
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = null;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
Informasi::create([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'penulis' => Auth::user()->name,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil ditambahkan');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function edit($id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
return view('admin.informasi.edit', compact('data'));
|
||||||
|
}
|
||||||
|
|
||||||
|
public function update(Request $request, $id)
|
||||||
|
{
|
||||||
|
$data = Informasi::findOrFail($id);
|
||||||
|
|
||||||
|
$request->validate([
|
||||||
|
'judul' => 'required',
|
||||||
|
'isi' => 'required',
|
||||||
|
'tanggal' => 'required|date',
|
||||||
|
]);
|
||||||
|
|
||||||
|
$gambar = $data->gambar;
|
||||||
|
|
||||||
|
if ($request->hasFile('gambar')) {
|
||||||
|
$file = $request->file('gambar');
|
||||||
|
$gambar = time().'.'.$file->getClientOriginalExtension();
|
||||||
|
$file->move(public_path('informasi'), $gambar);
|
||||||
|
}
|
||||||
|
|
||||||
|
$data->update([
|
||||||
|
'judul' => $request->judul,
|
||||||
|
'isi' => $request->isi,
|
||||||
|
'tanggal' => $request->tanggal,
|
||||||
|
'kategori' => $request->kategori,
|
||||||
|
'gambar' => $gambar,
|
||||||
|
'is_penting' => $request->is_penting ? 1 : 0,
|
||||||
|
]);
|
||||||
|
|
||||||
|
return redirect()->route('informasi.index')->with('success', 'Berhasil diupdate');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function destroy($id)
|
||||||
|
{
|
||||||
|
Informasi::findOrFail($id)->delete();
|
||||||
|
return back()->with('success', 'Berhasil dihapus');
|
||||||
|
}
|
||||||
|
|
||||||
|
public function detailInformasi($id)
|
||||||
|
{
|
||||||
|
$info = Informasi::findOrFail($id);
|
||||||
|
|
||||||
|
// 🔥 TAMBAH VIEW DI SINI
|
||||||
|
$info->increment('views');
|
||||||
|
|
||||||
|
return view('user.informasi.detail', compact('info'));
|
||||||
|
}
|
||||||
|
}
|
||||||
Some files were not shown because too many files have changed in this diff Show More
Loading…
Reference in New Issue