diff --git a/app/assets/stylesheets/users.scss b/app/assets/stylesheets/users.scss new file mode 100644 index 0000000..efc2526 --- /dev/null +++ b/app/assets/stylesheets/users.scss @@ -0,0 +1,3 @@ +// Place all the styles related to the Users controller here. +// They will automatically be included in application.css. +// You can use Sass (SCSS) here: https://sass-lang.com/ diff --git a/app/controllers/users_controller.rb b/app/controllers/users_controller.rb new file mode 100644 index 0000000..634633e --- /dev/null +++ b/app/controllers/users_controller.rb @@ -0,0 +1,55 @@ +class UsersController < ApplicationController + def new + @user=User.new + end + + def create + @user=User.new(user_params) + if @user.save + render 'show' + else + redirect_to new_user_path + end + end + + def edit + @user = User.find(params[:id]) + end + + def update + @user = User.find(params[:id]) + attrs = user_params + respond_to do |format| + if @user.update(attrs) + flash[:notice] = 'Konto wurde erfolgreich aktualisiert.' + format.html { redirect_to user_url(@user) } + format.xml { head :ok } + else + format.html { render :action => "edit" } + format.xml { render :xml => @user.errors.to_xml } + end + end + end + + def show + @user = User.find_by_id(params[:id]) + end + + def index + @users = User.all + end + + def destroy + @user = User.find(params[:id]) + @user.destroy + respond_to do |format| + format.html { redirect_to users_url } + format.xml { head :ok } + end + end + + private + def user_params + params.require(:user).permit(:email, :password) + end +end diff --git a/app/helpers/users_helper.rb b/app/helpers/users_helper.rb new file mode 100644 index 0000000..2310a24 --- /dev/null +++ b/app/helpers/users_helper.rb @@ -0,0 +1,2 @@ +module UsersHelper +end diff --git a/app/models/user.rb b/app/models/user.rb index 211764d..f37e483 100644 --- a/app/models/user.rb +++ b/app/models/user.rb @@ -2,6 +2,7 @@ class User < ApplicationRecord has_many :user_accesses, :dependent => :destroy has_many :suppliers, :through => :user_accesses + attr_accessor :password before_save :encrypt_password diff --git a/app/views/suppliers/index.haml b/app/views/suppliers/index.haml index 5850248..b3e7780 100644 --- a/app/views/suppliers/index.haml +++ b/app/views/suppliers/index.haml @@ -20,4 +20,6 @@ %br/ = link_to 'Neuer Lieferant', new_supplier_url - \ No newline at end of file +| += link_to 'Konten', users_url + diff --git a/app/views/users/_form.haml b/app/views/users/_form.haml new file mode 100644 index 0000000..3c973a6 --- /dev/null +++ b/app/views/users/_form.haml @@ -0,0 +1,9 @@ += simple_form_for @user do |f| + = f.input :email, required: true + = f.input :password, required: true + = f.input :password_confirmation, required: true + + .form-actions + = f.submit class: 'btn' + += link_to 'Zurück', users_path diff --git a/app/views/users/edit.haml b/app/views/users/edit.haml new file mode 100644 index 0000000..97d030b --- /dev/null +++ b/app/views/users/edit.haml @@ -0,0 +1,2 @@ +%h1 Konto bearbeiten += render 'form' diff --git a/app/views/users/index.html.haml b/app/views/users/index.html.haml new file mode 100644 index 0000000..6232640 --- /dev/null +++ b/app/views/users/index.html.haml @@ -0,0 +1,8 @@ +%h1 Konten +- for user in @users + %li + = link_to user.email, user_path(user) +%br += link_to 'Neues Konto', new_user_url +| += link_to 'Zurück', suppliers_path diff --git a/app/views/users/new.html.haml b/app/views/users/new.html.haml new file mode 100644 index 0000000..7aa0f9e --- /dev/null +++ b/app/views/users/new.html.haml @@ -0,0 +1,2 @@ +%h1 Neues Konto anlegen += render 'form' diff --git a/app/views/users/show.html.haml b/app/views/users/show.html.haml new file mode 100644 index 0000000..93c1a5e --- /dev/null +++ b/app/views/users/show.html.haml @@ -0,0 +1,9 @@ +%h1 Konto bearbeiten += @user.email +%br +%br += link_to 'Bearbeiten', edit_user_path(@user) +| += link_to 'Löschen', user_path(@user), data: { confirm: 'Bist du sicher?' }, :method => :delete +| +=link_to 'Zurück', users_path diff --git a/config/routes.rb b/config/routes.rb index edeaf24..c503c42 100644 --- a/config/routes.rb +++ b/config/routes.rb @@ -1,4 +1,6 @@ Rails.application.routes.draw do + get 'users/new' + get 'users/show' get 'log_in' => 'sessions#new', :as => :log_in match 'log_out' => 'sessions#destroy', :as => :log_out, :via => [:get, :post] resources :sessions, :only => [:new, :create, :destroy] @@ -15,5 +17,9 @@ Rails.application.routes.draw do end end + resources :users + match '/:controller(/:action(/:id))', :via => [:get, :post] + match '/users', to: 'users#index', via: 'get' + match '/users/:id', to: 'users#show', via: 'get' end