dorsale 2.1.10 → 2.1.11
Sign up to get free protection for your applications and to get access to all the features.
- checksums.yaml +4 -4
- data/app/assets/stylesheets/dorsale/all.sass +1 -0
- data/app/assets/stylesheets/dorsale/users.sass +8 -0
- data/app/controllers/dorsale/billing_machine/invoices_controller.rb +2 -1
- data/app/controllers/dorsale/billing_machine/quotations_controller.rb +2 -1
- data/app/controllers/dorsale/users_controller.rb +69 -0
- data/app/mailers/dorsale/application_mailer.rb +8 -0
- data/app/mailers/dorsale/user_mailer.rb +9 -0
- data/app/models/dorsale/ability_helper.rb +4 -0
- data/app/models/dorsale/billing_machine/ability_helper.rb +2 -2
- data/app/models/dorsale/users/active.rb +20 -0
- data/app/models/dorsale/users/password_generation.rb +17 -0
- data/app/views/dorsale/billing_machine/invoices/show.html.slim +8 -4
- data/app/views/dorsale/billing_machine/quotations/show.html.slim +8 -4
- data/app/views/dorsale/comments/_comment.html.slim +1 -1
- data/app/views/dorsale/flyboy/tasks/_form.html.slim +1 -1
- data/app/views/dorsale/user_mailer/new_account.html.slim +4 -0
- data/app/views/dorsale/users/_details.html.slim +1 -0
- data/app/views/dorsale/users/_form.html.slim +6 -0
- data/app/views/dorsale/users/_list.html.slim +18 -0
- data/app/views/dorsale/users/edit.html.slim +3 -0
- data/app/views/dorsale/users/index.html.slim +5 -0
- data/app/views/dorsale/users/new.html.slim +1 -0
- data/app/views/dorsale/users/show.html.slim +1 -0
- data/config/locales/common.fr.yml +1 -0
- data/config/locales/en.yml +17 -1
- data/config/locales/fr.yml +16 -0
- data/config/routes.rb +4 -0
- data/db/migrate/20151103110115_add_is_active_to_users.rb +5 -0
- data/lib/dorsale/version.rb +1 -1
- data/spec/dummy/app/models/ability.rb +1 -0
- data/spec/dummy/app/models/user.rb +3 -0
- data/spec/dummy/app/views/layouts/application.html.slim +5 -0
- data/spec/dummy/db/schema.rb +2 -1
- data/spec/mailers/user_mailer.rb +22 -0
- data/spec/models/dorsale/users_spec.rb +33 -0
- data/spec/routing/dorsale/users_routing_spec.rb +38 -0
- metadata +23 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA1:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: af0902e5d1cea5200ee84a3f215f7bc8ccdc2feb
|
4
|
+
data.tar.gz: 4d9781ebd5ff206216889eed95d17bc525d6705a
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: f2b3f6483735d74a8671217ff2e31453c24d7548defd451a59c768977fb2954c808d8357ced70110399a18b575c24dda35bbc1a343ec0bf1c371e7ca8bcc2181
|
7
|
+
data.tar.gz: bc818dd46b78f372a8039ff22ab9f39879e2a0fafc145f4599338923019c77e1fdc59773e6648f3bd0d1f30eef7e6697394b235482a8379ec0b534e92a2c000a
|
@@ -66,6 +66,7 @@ module Dorsale
|
|
66
66
|
|
67
67
|
respond_to do |format|
|
68
68
|
format.pdf {
|
69
|
+
authorize! :download, @invoice
|
69
70
|
pdf_data = @invoice.pdf.render
|
70
71
|
|
71
72
|
file_name = [
|
@@ -87,7 +88,7 @@ module Dorsale
|
|
87
88
|
def copy
|
88
89
|
# callback in BillingMachine::ApplicationController
|
89
90
|
@original = @invoice
|
90
|
-
authorize! :
|
91
|
+
authorize! :copy, @original
|
91
92
|
|
92
93
|
@invoice = @original.dup
|
93
94
|
|
@@ -86,6 +86,7 @@ module Dorsale
|
|
86
86
|
|
87
87
|
respond_to do |format|
|
88
88
|
format.pdf {
|
89
|
+
authorize! :download, @quotation
|
89
90
|
pdf_data = @quotation.pdf.render_with_attachments
|
90
91
|
|
91
92
|
file_name = [
|
@@ -135,7 +136,7 @@ module Dorsale
|
|
135
136
|
end
|
136
137
|
|
137
138
|
def copy
|
138
|
-
authorize! :
|
139
|
+
authorize! :copy, @quotation
|
139
140
|
|
140
141
|
new_quotation = @quotation.create_copy!
|
141
142
|
flash[:notice] = t("messages.quotations.copy_ok")
|
@@ -0,0 +1,69 @@
|
|
1
|
+
module Dorsale
|
2
|
+
class UsersController < ::Dorsale::ApplicationController
|
3
|
+
handles_sortable_columns
|
4
|
+
|
5
|
+
before_action :set_user, only: [
|
6
|
+
:show,
|
7
|
+
:edit,
|
8
|
+
:update,
|
9
|
+
]
|
10
|
+
|
11
|
+
def show
|
12
|
+
|
13
|
+
end
|
14
|
+
|
15
|
+
def index
|
16
|
+
authorize! :list, User
|
17
|
+
@users = User.all
|
18
|
+
end
|
19
|
+
|
20
|
+
def new
|
21
|
+
@user = User.new
|
22
|
+
authorize! :create, @user
|
23
|
+
end
|
24
|
+
|
25
|
+
def edit
|
26
|
+
authorize! :update, @user
|
27
|
+
end
|
28
|
+
|
29
|
+
def create
|
30
|
+
@user = User.new(user_params)
|
31
|
+
authorize! :create, @user
|
32
|
+
if @user.save
|
33
|
+
redirect_to dorsale.users_path, notice: t("messages.users.create_ok")
|
34
|
+
else
|
35
|
+
flash[:error] = t("messages.users.create_error")
|
36
|
+
render :new
|
37
|
+
end
|
38
|
+
end
|
39
|
+
|
40
|
+
def update
|
41
|
+
authorize! :update, @user
|
42
|
+
if @user.update(user_params)
|
43
|
+
redirect_to dorsale.users_path, notice: t("messages.users.update_ok")
|
44
|
+
else
|
45
|
+
flash[:error] = t("messages.users.update_error")
|
46
|
+
render :edit
|
47
|
+
end
|
48
|
+
end
|
49
|
+
|
50
|
+
private
|
51
|
+
|
52
|
+
def set_user
|
53
|
+
@user = User.find(params[:id])
|
54
|
+
end
|
55
|
+
|
56
|
+
def permitted_params
|
57
|
+
[
|
58
|
+
:email,
|
59
|
+
:password,
|
60
|
+
:password_confirmation,
|
61
|
+
:is_active,
|
62
|
+
]
|
63
|
+
end
|
64
|
+
|
65
|
+
def user_params
|
66
|
+
params.require(:user).permit(permitted_params)
|
67
|
+
end
|
68
|
+
end
|
69
|
+
end
|
@@ -2,8 +2,8 @@ module Dorsale
|
|
2
2
|
module BillingMachine
|
3
3
|
module AbilityHelper
|
4
4
|
def define_dorsale_billing_machine_abilities
|
5
|
-
can [:list, :create, :read, :update, :pay, :copy], ::Dorsale::BillingMachine::Invoice
|
6
|
-
can [:list, :create, :read, :update, :delete],
|
5
|
+
can [:list, :create, :read, :update, :pay, :copy, :download], ::Dorsale::BillingMachine::Invoice
|
6
|
+
can [:list, :create, :read, :update, :delete, :copy, :download], ::Dorsale::BillingMachine::Quotation
|
7
7
|
end
|
8
8
|
end
|
9
9
|
end
|
@@ -0,0 +1,20 @@
|
|
1
|
+
module Dorsale::Users::Active
|
2
|
+
def self.included(user_model)
|
3
|
+
user_model.class_eval do
|
4
|
+
validates :is_active, inclusion: {in: [true, false]}
|
5
|
+
|
6
|
+
def initialize(*)
|
7
|
+
super
|
8
|
+
self.is_active = true if is_active.nil?
|
9
|
+
end
|
10
|
+
|
11
|
+
def active_for_authentication?
|
12
|
+
super && self.is_active?
|
13
|
+
end
|
14
|
+
|
15
|
+
def inactive_message
|
16
|
+
I18n.t("messages.users.inactive")
|
17
|
+
end
|
18
|
+
end
|
19
|
+
end
|
20
|
+
end
|
@@ -0,0 +1,17 @@
|
|
1
|
+
module Dorsale::Users::PasswordGeneration
|
2
|
+
def self.included(user_model)
|
3
|
+
user_model.class_eval do
|
4
|
+
before_validation :generate_password, on: :create
|
5
|
+
after_create :send_welcome_email
|
6
|
+
|
7
|
+
def generate_password
|
8
|
+
self.password ||= SecureRandom.hex(6).to_s
|
9
|
+
end
|
10
|
+
|
11
|
+
def send_welcome_email
|
12
|
+
Dorsale::UserMailer.new_account(self, password).deliver_later
|
13
|
+
end
|
14
|
+
|
15
|
+
end
|
16
|
+
end
|
17
|
+
end
|
@@ -1,10 +1,14 @@
|
|
1
1
|
.billing_machine
|
2
2
|
.invoice-details class="#{@invoice.payment_status}"
|
3
3
|
.actions
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
- if can?(:copy, @invoice)
|
5
|
+
= copy_button dorsale.copy_billing_machine_invoice_path(@invoice)
|
6
|
+
- if can?(:update, @invoice)
|
7
|
+
= update_button dorsale.edit_billing_machine_invoice_path(@invoice)
|
8
|
+
- if can?(:download, @invoice)
|
9
|
+
= download_button dorsale.billing_machine_invoice_path(@invoice, format: :pdf)
|
10
|
+
- if can?(:pay, @invoice)
|
11
|
+
= dorsale_button dorsale.pay_billing_machine_invoice_path(@invoice), icon: :check, action: :pay, method: :patch
|
8
12
|
|
9
13
|
- if @invoice.customer
|
10
14
|
.row
|
@@ -1,10 +1,14 @@
|
|
1
1
|
.billing_machine
|
2
2
|
.quotation-details
|
3
3
|
.actions
|
4
|
-
|
5
|
-
|
6
|
-
|
7
|
-
|
4
|
+
- if can?(:update, @quotation)
|
5
|
+
= update_button dorsale.edit_billing_machine_quotation_path(@quotation)
|
6
|
+
- if can?(:download, @quotation)
|
7
|
+
= download_button dorsale.billing_machine_quotation_path(@quotation, format: :pdf)
|
8
|
+
- if can?(:copy, @quotation)
|
9
|
+
= copy_button dorsale.copy_billing_machine_quotation_path(@quotation), method: :post, confirm: true
|
10
|
+
- if can?(:create, @quotation)
|
11
|
+
= dorsale_button dorsale.create_invoice_billing_machine_quotation_path(@quotation), method: :post, action: :create_invoice, confirm: true, icon: :magic
|
8
12
|
|
9
13
|
|
10
14
|
- if @quotation.customer
|
@@ -0,0 +1 @@
|
|
1
|
+
h1 = @user
|
@@ -0,0 +1,18 @@
|
|
1
|
+
table.default
|
2
|
+
thead
|
3
|
+
tr
|
4
|
+
th.hidden-xs
|
5
|
+
= t("attributes.email")
|
6
|
+
|
7
|
+
th
|
8
|
+
= t("actions.actions")
|
9
|
+
|
10
|
+
tbody
|
11
|
+
- users.each do |user|
|
12
|
+
tr.user-line
|
13
|
+
|
14
|
+
td.hidden-xs.email
|
15
|
+
= user
|
16
|
+
|
17
|
+
td.actions
|
18
|
+
= update_button dorsale.edit_user_path(user)
|
@@ -0,0 +1 @@
|
|
1
|
+
= render "form"
|
@@ -0,0 +1 @@
|
|
1
|
+
= render 'details'
|
data/config/locales/en.yml
CHANGED
@@ -7,4 +7,20 @@ en:
|
|
7
7
|
update_ok : "Comment updated."
|
8
8
|
update_error : "One error occurs, comment can't be updated."
|
9
9
|
delete_ok : "Comment deleted."
|
10
|
-
delete_error : "One error occurs, comment can't be deleted."
|
10
|
+
delete_error : "One error occurs, comment can't be deleted."
|
11
|
+
users:
|
12
|
+
inactive: "This account is inactive"
|
13
|
+
create_ok : "User created."
|
14
|
+
create_error : "One error occurs, user can't be created."
|
15
|
+
update_ok : "User updated."
|
16
|
+
update_error : "One error occurs, user can't be updated."
|
17
|
+
emails:
|
18
|
+
user:
|
19
|
+
new_account:
|
20
|
+
title: "New account"
|
21
|
+
body:
|
22
|
+
title: "New account created"
|
23
|
+
subtitle: "Congratulation for your new account"
|
24
|
+
login: "Your login is: %{login}"
|
25
|
+
password: "Your password is: %{password}"
|
26
|
+
url_label: "Click here to access service"
|
data/config/locales/fr.yml
CHANGED
@@ -8,3 +8,19 @@ fr:
|
|
8
8
|
update_error : "Impossible de modifier le commentaire."
|
9
9
|
delete_ok : "Le commentaire a été supprimé."
|
10
10
|
delete_error : "Impossible de supprimer le commentaire."
|
11
|
+
users:
|
12
|
+
inactive: "Ce compte est inactif"
|
13
|
+
create_ok : "L'utilisateur a été créé."
|
14
|
+
create_error : "Impossible de créer l'utilisateur."
|
15
|
+
update_ok : "L'utilisateur a été modifié."
|
16
|
+
update_error : "Impossible de modifier l'utilisateur."
|
17
|
+
emails:
|
18
|
+
user:
|
19
|
+
new_account:
|
20
|
+
title: "Nouveau compte"
|
21
|
+
body:
|
22
|
+
title: "Nouveau compte créé"
|
23
|
+
subtitle: "Félicitation pour la création de votre compte."
|
24
|
+
login: "Votre login est: %{login}"
|
25
|
+
password: "Votre mot de passe est: %{password}"
|
26
|
+
url_label: "Cliquez ici pour accéder au service"
|
data/config/routes.rb
CHANGED
@@ -1,10 +1,14 @@
|
|
1
1
|
Dorsale::Engine.routes.draw do
|
2
2
|
resources :comments, only: [:create, :edit, :update, :destroy]
|
3
3
|
|
4
|
+
resources :users, except: [:destroy]
|
5
|
+
|
4
6
|
namespace :small_data do
|
5
7
|
resources :filters, only: [:create]
|
6
8
|
end
|
7
9
|
|
10
|
+
|
11
|
+
|
8
12
|
namespace :alexandrie do
|
9
13
|
resources :attachments, only: [:create, :destroy]
|
10
14
|
end
|
data/lib/dorsale/version.rb
CHANGED
@@ -20,6 +20,11 @@ html
|
|
20
20
|
= icon_link_to "check-square-o", "Tâches", dorsale.flyboy_tasks_path
|
21
21
|
= icon_link_to "euro", "Devis", dorsale.billing_machine_quotations_path
|
22
22
|
= icon_link_to "euro", "Factures", dorsale.billing_machine_invoices_path
|
23
|
+
= icon_link_to "users", "Utilisateurs", dorsale.users_path
|
24
|
+
- if current_user
|
25
|
+
= link_to "Déconnexion", main_app.destroy_user_session_path, method: :delete
|
26
|
+
- else
|
27
|
+
= link_to "Connexion", main_app.new_user_session_path
|
23
28
|
|
24
29
|
#flash.container
|
25
30
|
= render "dorsale/flash"
|
data/spec/dummy/db/schema.rb
CHANGED
@@ -11,7 +11,7 @@
|
|
11
11
|
#
|
12
12
|
# It's strongly recommended that you check this file into your version control system.
|
13
13
|
|
14
|
-
ActiveRecord::Schema.define(version:
|
14
|
+
ActiveRecord::Schema.define(version: 20151103110115) do
|
15
15
|
|
16
16
|
create_table "dorsale_addresses", force: :cascade do |t|
|
17
17
|
t.string "street"
|
@@ -295,6 +295,7 @@ ActiveRecord::Schema.define(version: 20151023135421) do
|
|
295
295
|
t.string "last_sign_in_ip"
|
296
296
|
t.datetime "created_at", null: false
|
297
297
|
t.datetime "updated_at", null: false
|
298
|
+
t.boolean "is_active"
|
298
299
|
end
|
299
300
|
|
300
301
|
add_index "users", ["email"], name: "index_users_on_email", unique: true
|
@@ -0,0 +1,22 @@
|
|
1
|
+
require 'rails_helper'
|
2
|
+
|
3
|
+
describe ::Dorsale::UserMailer do
|
4
|
+
describe "New Account" do
|
5
|
+
let(:user) { create(:user) }
|
6
|
+
let(:email) { ::Dorsale::UserMailer.new_account(user, user.password) }
|
7
|
+
|
8
|
+
it 'should send to the right person' do
|
9
|
+
expect(email.to).to eq([user.email])
|
10
|
+
end
|
11
|
+
|
12
|
+
it 'should have the right sender' do
|
13
|
+
expect(email.from).to eq(["contact@example.org"])
|
14
|
+
end
|
15
|
+
|
16
|
+
it 'should contain user_type, login and password' do
|
17
|
+
expect(email.body).to include user.email
|
18
|
+
expect(email.body).to include user.password
|
19
|
+
end
|
20
|
+
|
21
|
+
end
|
22
|
+
end
|
@@ -0,0 +1,33 @@
|
|
1
|
+
require "rails_helper"
|
2
|
+
|
3
|
+
|
4
|
+
RSpec.describe User, type: :model do
|
5
|
+
|
6
|
+
it "should have a valid factores" do
|
7
|
+
expect(create(:user)).to be_valid
|
8
|
+
end
|
9
|
+
|
10
|
+
it { is_expected.to respond_to :is_active }
|
11
|
+
|
12
|
+
describe "default values" do
|
13
|
+
it "default active value should be true" do
|
14
|
+
@user = create(:user)
|
15
|
+
expect(@user.is_active).to eq true
|
16
|
+
end
|
17
|
+
|
18
|
+
it 'should create a valid password upon creation' do
|
19
|
+
user = create(:user, password: nil, password_confirmation: nil)
|
20
|
+
expect(user).to be_persisted
|
21
|
+
end
|
22
|
+
|
23
|
+
it 'should not override choosen password' do
|
24
|
+
user = create(:user, password: "totototo", password_confirmation: nil)
|
25
|
+
expect(user.password).to eq "totototo"
|
26
|
+
end
|
27
|
+
|
28
|
+
it 'should send a welcome message upon creation' do
|
29
|
+
expect { create(:user)}.to change(ActionMailer::Base.deliveries, :count).by(1)
|
30
|
+
end
|
31
|
+
end
|
32
|
+
|
33
|
+
end
|
@@ -0,0 +1,38 @@
|
|
1
|
+
require "rails_helper"
|
2
|
+
|
3
|
+
RSpec.describe ::Dorsale::UsersController, type: :routing do
|
4
|
+
describe "routing" do
|
5
|
+
routes { ::Dorsale::Engine.routes }
|
6
|
+
it "routes to #index" do
|
7
|
+
expect(:get => "users").to route_to("dorsale/users#index")
|
8
|
+
end
|
9
|
+
|
10
|
+
it "routes to #new" do
|
11
|
+
expect(:get => "users/new").to route_to("dorsale/users#new")
|
12
|
+
end
|
13
|
+
|
14
|
+
it "route to #show" do
|
15
|
+
expect(:get => "users/1").to route_to("dorsale/users#show", :id => "1")
|
16
|
+
end
|
17
|
+
|
18
|
+
it "routes to #edit" do
|
19
|
+
expect(:get => "users/1/edit").to route_to("dorsale/users#edit", :id => "1")
|
20
|
+
end
|
21
|
+
|
22
|
+
it "routes to #create" do
|
23
|
+
expect(:post => "users").to route_to("dorsale/users#create")
|
24
|
+
end
|
25
|
+
|
26
|
+
it "routes to #update via PUT" do
|
27
|
+
expect(:put => "users/1").to route_to("dorsale/users#update", :id => "1")
|
28
|
+
end
|
29
|
+
|
30
|
+
it "routes to #update via PATCH" do
|
31
|
+
expect(:patch => "users/1").to route_to("dorsale/users#update", :id => "1")
|
32
|
+
end
|
33
|
+
|
34
|
+
it "doesn't route to #destroy" do
|
35
|
+
expect(:delete => "users/1").not_to be_routable
|
36
|
+
end
|
37
|
+
end
|
38
|
+
end
|
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: dorsale
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 2.1.
|
4
|
+
version: 2.1.11
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- agilidée
|
8
8
|
autorequire:
|
9
9
|
bindir: bin
|
10
10
|
cert_chain: []
|
11
|
-
date: 2015-
|
11
|
+
date: 2015-11-06 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: rails
|
@@ -429,6 +429,7 @@ files:
|
|
429
429
|
- app/assets/stylesheets/dorsale/pagination.sass
|
430
430
|
- app/assets/stylesheets/dorsale/styles.sass
|
431
431
|
- app/assets/stylesheets/dorsale/tables.sass
|
432
|
+
- app/assets/stylesheets/dorsale/users.sass
|
432
433
|
- app/controllers/dorsale/alexandrie/attachments_controller.rb
|
433
434
|
- app/controllers/dorsale/application_controller.rb
|
434
435
|
- app/controllers/dorsale/billing_machine/application_controller.rb
|
@@ -446,6 +447,7 @@ files:
|
|
446
447
|
- app/controllers/dorsale/flyboy/task_comments_controller.rb
|
447
448
|
- app/controllers/dorsale/flyboy/tasks_controller.rb
|
448
449
|
- app/controllers/dorsale/small_data/filters_controller.rb
|
450
|
+
- app/controllers/dorsale/users_controller.rb
|
449
451
|
- app/helpers/dorsale/alexandrie/attachments_helper.rb
|
450
452
|
- app/helpers/dorsale/all_helpers.rb
|
451
453
|
- app/helpers/dorsale/billing_machine/application_helper.rb
|
@@ -460,6 +462,8 @@ files:
|
|
460
462
|
- app/helpers/dorsale/pagination_helper.rb
|
461
463
|
- app/helpers/dorsale/routes_helper.rb
|
462
464
|
- app/helpers/dorsale/text_helper.rb
|
465
|
+
- app/mailers/dorsale/application_mailer.rb
|
466
|
+
- app/mailers/dorsale/user_mailer.rb
|
463
467
|
- app/models/dorsale/ability_helper.rb
|
464
468
|
- app/models/dorsale/address.rb
|
465
469
|
- app/models/dorsale/alexandrie/ability_helper.rb
|
@@ -497,6 +501,8 @@ files:
|
|
497
501
|
- app/models/dorsale/small_data/filter.rb
|
498
502
|
- app/models/dorsale/small_data/filter_strategy.rb
|
499
503
|
- app/models/dorsale/user_scope.rb
|
504
|
+
- app/models/dorsale/users/active.rb
|
505
|
+
- app/models/dorsale/users/password_generation.rb
|
500
506
|
- app/pdfs/dorsale/billing_machine/invoice_pdf.rb
|
501
507
|
- app/pdfs/dorsale/billing_machine/quotation_pdf.rb
|
502
508
|
- app/pdfs/dorsale/flyboy/roadmap.rb
|
@@ -584,6 +590,14 @@ files:
|
|
584
590
|
- app/views/dorsale/flyboy/tasks/show.html.slim
|
585
591
|
- app/views/dorsale/flyboy/tasks/summary.html.slim
|
586
592
|
- app/views/dorsale/search/_form.html.slim
|
593
|
+
- app/views/dorsale/user_mailer/new_account.html.slim
|
594
|
+
- app/views/dorsale/users/_details.html.slim
|
595
|
+
- app/views/dorsale/users/_form.html.slim
|
596
|
+
- app/views/dorsale/users/_list.html.slim
|
597
|
+
- app/views/dorsale/users/edit.html.slim
|
598
|
+
- app/views/dorsale/users/index.html.slim
|
599
|
+
- app/views/dorsale/users/new.html.slim
|
600
|
+
- app/views/dorsale/users/show.html.slim
|
587
601
|
- config/locales/alexandrie.en.yml
|
588
602
|
- config/locales/alexandrie.fr.yml
|
589
603
|
- config/locales/billing_machine.en.yml
|
@@ -613,6 +627,7 @@ files:
|
|
613
627
|
- db/migrate/20151012181412_add_commercial_discount_to_invoices_and_quotations.rb
|
614
628
|
- db/migrate/20151019100134_customer_vault_individuals_add_skype.rb
|
615
629
|
- db/migrate/20151023135421_dorsale_billing_machine_quotations_add_state.rb
|
630
|
+
- db/migrate/20151103110115_add_is_active_to_users.rb
|
616
631
|
- lib/active_record_comma_type_cast.rb
|
617
632
|
- lib/dorsale.rb
|
618
633
|
- lib/dorsale/alexandrie/prawn.rb
|
@@ -1552,6 +1567,7 @@ files:
|
|
1552
1567
|
- spec/helpers/dorsale/flyboy/application_helper_spec.rb
|
1553
1568
|
- spec/helpers/dorsale/link_helper_spec.rb
|
1554
1569
|
- spec/helpers/dorsale/text_helper_spec.rb
|
1570
|
+
- spec/mailers/user_mailer.rb
|
1555
1571
|
- spec/models/dorsale/ability_helper_spec.rb
|
1556
1572
|
- spec/models/dorsale/address_spec.rb
|
1557
1573
|
- spec/models/dorsale/alexandrie/ability_helper_spec.rb
|
@@ -1571,6 +1587,7 @@ files:
|
|
1571
1587
|
- spec/models/dorsale/flyboy/task_comment_spec.rb
|
1572
1588
|
- spec/models/dorsale/flyboy/task_spec.rb
|
1573
1589
|
- spec/models/dorsale/small_data/filter_spec.rb
|
1590
|
+
- spec/models/dorsale/users_spec.rb
|
1574
1591
|
- spec/pdfs/dorsale/billing_machine/invoice_pdf_spec.rb
|
1575
1592
|
- spec/pdfs/dorsale/billing_machine/quotation_pdf_spec.rb
|
1576
1593
|
- spec/rails_helper.rb
|
@@ -1585,6 +1602,7 @@ files:
|
|
1585
1602
|
- spec/routing/dorsale/flyboy/task_comments_routing_spec.rb
|
1586
1603
|
- spec/routing/dorsale/flyboy/tasks_routing_spec.rb
|
1587
1604
|
- spec/routing/dorsale/small_data_routing_spec.rb
|
1605
|
+
- spec/routing/dorsale/users_routing_spec.rb
|
1588
1606
|
- spec/spec_helper.rb
|
1589
1607
|
- spec/support/devise.rb
|
1590
1608
|
homepage: https://github.com/agilidee/dorsale
|
@@ -2537,6 +2555,7 @@ test_files:
|
|
2537
2555
|
- spec/helpers/dorsale/flyboy/application_helper_spec.rb
|
2538
2556
|
- spec/helpers/dorsale/link_helper_spec.rb
|
2539
2557
|
- spec/helpers/dorsale/text_helper_spec.rb
|
2558
|
+
- spec/mailers/user_mailer.rb
|
2540
2559
|
- spec/models/dorsale/ability_helper_spec.rb
|
2541
2560
|
- spec/models/dorsale/address_spec.rb
|
2542
2561
|
- spec/models/dorsale/alexandrie/ability_helper_spec.rb
|
@@ -2556,6 +2575,7 @@ test_files:
|
|
2556
2575
|
- spec/models/dorsale/flyboy/task_comment_spec.rb
|
2557
2576
|
- spec/models/dorsale/flyboy/task_spec.rb
|
2558
2577
|
- spec/models/dorsale/small_data/filter_spec.rb
|
2578
|
+
- spec/models/dorsale/users_spec.rb
|
2559
2579
|
- spec/pdfs/dorsale/billing_machine/invoice_pdf_spec.rb
|
2560
2580
|
- spec/pdfs/dorsale/billing_machine/quotation_pdf_spec.rb
|
2561
2581
|
- spec/rails_helper.rb
|
@@ -2570,5 +2590,6 @@ test_files:
|
|
2570
2590
|
- spec/routing/dorsale/flyboy/task_comments_routing_spec.rb
|
2571
2591
|
- spec/routing/dorsale/flyboy/tasks_routing_spec.rb
|
2572
2592
|
- spec/routing/dorsale/small_data_routing_spec.rb
|
2593
|
+
- spec/routing/dorsale/users_routing_spec.rb
|
2573
2594
|
- spec/spec_helper.rb
|
2574
2595
|
- spec/support/devise.rb
|