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