User management

This commit is contained in:
Alexey Nayden 2011-03-11 00:48:15 +03:00
parent d7cedacd11
commit 0ff80b3e16
12 changed files with 120 additions and 5 deletions

View File

@ -1,2 +1,40 @@
class UsersController < ApplicationController
def index
@users = User.all
end
def new
@user = User.new
end
def edit
@user = User.find params[:id]
end
def destroy
User.destroy params[:id]
redirect_to users_path
end
def create
@user = User.new params[:user]
if @user.save
flash[:notice] = t('flash.user.saved')
redirect_to users_path
else
flash[:error] = t('flash.user.save_error')
render :action => :new
end
end
def update
@user = User.find params[:id]
if @user.update_attributes(params[:user])
flash[:notice] = t('flash.user.saved')
redirect_to users_path
else
flash[:error] = t('flash.user.save_error')
render :action => :edit
end
end
end

View File

@ -0,0 +1,8 @@
class UserMailer < ActionMailer::Base
default :from => APP_CONFIG['no-reply-email']
def new_user_notification(user)
@user = user
mail(:to => user.email, :subject => "Регистрация на проекте «#{APP_CONFIG['project_name']}»")
end
end

View File

@ -1,6 +1,20 @@
require 'digest/md5'
class User < ActiveRecord::Base
devise :database_authenticatable,
:recoverable, :rememberable, :validatable
attr_accessible :email, :password, :password_confirmation, :remember_me, :name
before_validation :generate_password, :on => :create
after_create :send_notification_email
protected
def generate_password
self.password = self.password_confirmation = Digest::MD5.hexdigest(Date.today.to_s)[0..6]
end
def send_notification_email
UserMailer.new_user_notification(self).deliver
end
end

View File

@ -1,6 +1,7 @@
%h1
= t('layout.platforms.show')
= @platform.name
= link_to t('layout.platforms.back_to_the_list'), platforms_path
%h2= t('layout.platforms.projects')
- @projects.each do |project|

View File

@ -0,0 +1,5 @@
== Здравствуйте, #{@user.name}
== Вы зарегистрированы на проекте «#{APP_CONFIG['project_name']}» и теперь можете войти в систему. Ваш пароль: #{@user.password}
== Команда поддержки #{APP_CONFIG['project_name']}

View File

@ -0,0 +1,11 @@
%h1= @user.name
= form_for @user do |f|
%p
= f.label :name
= f.text_field :name
%p
= f.label :email
= f.text_field :email
%p
= f.submit
= link_to t('layout.users.back_to_the_list'), users_path

View File

@ -0,0 +1,12 @@
%h1= t('layout.user_list')
%ul
- @users.each do |user|
%li
= link_to user.name, edit_user_path(user)
(
%span>= user.email
)
= link_to t('layout.delete'), user_path(user), :method => :delete, :confirm => t('layout.are_you_sure')
%p
= link_to t('layout.users.new'), new_user_path
= link_to t('layout.platforms.back_to_the_list'), platforms_path

View File

@ -0,0 +1,11 @@
%h1= t('layout.users.new')
= form_for @user do |f|
%p
= f.label :name
= f.text_field :name
%p
= f.label :email
= f.text_field :email
%p
= f.submit
= link_to t('layout.users.back_to_the_list'), users_path

View File

@ -1 +1 @@
APP_CONFIG = YAML.load_file("#{RAILS_ROOT}/config/application.yml")[RAILS_ENV]
APP_CONFIG = YAML.load_file("#{Rails.root}/config/application.yml")[Rails.env]

View File

@ -1,9 +1,6 @@
ru:
devise:
sessions:
link: 'Войти'
signed_in: 'Вы вошли.'
signed_out: 'Вы вышли.'
failure:
unauthenticated: 'Вы должны войти или зарегистрироваться, прежде чем сможете продолжить.'
unconfirmed: 'Вы должны подтвердить вашу учетную запись, прежде чем сможете продолжить.'
locked: 'Ваша учетная запись заблокирована.'
@ -11,6 +8,10 @@ ru:
invalid_token: 'Неверный ключ аутентификации.'
timeout: 'Ваша сессия закончена. Пожалуйста, войдите еще раз, чтобы продолжить.'
inactive: 'Ваша учетная запись еще не активирована.'
sessions:
link: 'Войти'
signed_in: 'Вы вошли.'
signed_out: 'Вы вышли.'
passwords:
link: 'Забыли пароль?'
send_instructions: 'Вы получите письмо с инструкциями о том, как сбросить ваш пароль, через несколько минут.'

View File

@ -6,7 +6,9 @@ ru:
user_list: Список пользователей
cancel: Отмена
create: Создать
delete: удалить
save: Сохранить
are_you_sure: "Вы уверены?"
platforms:
list: Платформы
new: Создать новую платформу
@ -14,13 +16,20 @@ ru:
show: Платформа
projects: Проекты
products: Продукты
back_to_the_list: ⇐К списку платформ
projects:
new: Новый проект
users:
new: Новый пользователь
back_to_the_list: ⇐К списку пользователей
flash:
project:
saved: Проект успешно сохранен
save_error: Не удалось сохранить проект
user:
saved: Пользователь успешно сохранен
save_error: Не удалось сохранить данные о пользователе
attributes:
password: Пароль

View File

@ -0,0 +1,5 @@
require "spec_helper"
describe UserMailer do
pending "add some examples to (or delete) #{__FILE__}"
end