erp_app 3.0.13 → 3.0.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (100) hide show
  1. data/app/controllers/erp_app/desktop/audit_log_viewer/base_controller.rb +1 -1
  2. data/app/controllers/erp_app/desktop/file_manager/base_controller.rb +5 -5
  3. data/app/controllers/erp_app/desktop/scaffold/role_controller.rb +1 -1
  4. data/app/controllers/erp_app/desktop/security_management/base_controller.rb +47 -0
  5. data/app/controllers/erp_app/desktop/security_management/capabilities_controller.rb +129 -0
  6. data/app/controllers/erp_app/desktop/security_management/groups_controller.rb +201 -0
  7. data/app/controllers/erp_app/desktop/security_management/roles_controller.rb +188 -0
  8. data/app/controllers/erp_app/desktop/security_management/users_controller.rb +145 -0
  9. data/app/controllers/erp_app/desktop/user_management/base_controller.rb +2 -2
  10. data/app/controllers/erp_app/desktop/user_management/role_management_controller.rb +6 -6
  11. data/app/controllers/erp_app/public_controller.rb +3 -14
  12. data/app/models/application.rb +1 -10
  13. data/app/models/configuration_item_type.rb +1 -1
  14. data/app/models/configuration_option.rb +1 -1
  15. data/app/models/widget.rb +2 -11
  16. data/config/routes.rb +6 -3
  17. data/db/data_migrations/20110728201729_erp_app_setup.rb +2 -48
  18. data/db/data_migrations/20110816161238_create_desktop_app_audit_log_viewer.rb +4 -1
  19. data/db/data_migrations/20111108183739_add_default_capabilities.rb +11 -18
  20. data/db/data_migrations/20111108183740_add_new_contact_widgets.rb +4 -13
  21. data/db/data_migrations/20120229160222_add_userinfo_widget.rb +6 -8
  22. data/db/data_migrations/20120418164215_create_configuration_management_desktop_application.rb +4 -0
  23. data/db/data_migrations/20121130201859_upgrade_remove_system_mgmt_app.rb +15 -0
  24. data/db/data_migrations/20121218175028_create_security_management_desktop_application.rb +28 -0
  25. data/lib/erp_app/engine.rb +5 -5
  26. data/lib/erp_app/extensions/railties/action_view/helpers/include_helper.rb +4 -3
  27. data/lib/erp_app/extensions/railties/action_view/helpers/tag_helper.rb +8 -2
  28. data/lib/erp_app/version.rb +1 -1
  29. data/lib/erp_app/widgets/base.rb +4 -0
  30. data/lib/erp_app/widgets/loader.rb +40 -34
  31. data/public/images/icons/add/Thumbs.db +0 -0
  32. data/public/images/icons/calendar/Thumbs.db +0 -0
  33. data/public/images/icons/copy/Thumbs.db +0 -0
  34. data/public/images/icons/cut/Thumbs.db +0 -0
  35. data/public/images/icons/delete/Thumbs.db +0 -0
  36. data/public/images/icons/edit/Thumbs.db +0 -0
  37. data/public/images/icons/folder/Thumbs.db +0 -0
  38. data/public/images/icons/gear/Thumbs.db +0 -0
  39. data/public/images/icons/globe/Thumbs.db +0 -0
  40. data/public/images/icons/grid/Thumbs.db +0 -0
  41. data/public/images/icons/help/Thumbs.db +0 -0
  42. data/public/images/icons/information/Thumbs.db +0 -0
  43. data/public/images/icons/key/Thumbs.db +0 -0
  44. data/public/images/icons/log_out/Thumbs.db +0 -0
  45. data/public/images/icons/mail/Thumbs.db +0 -0
  46. data/public/images/icons/new/Thumbs.db +0 -0
  47. data/public/images/icons/next/Thumbs.db +0 -0
  48. data/public/images/icons/open/Thumbs.db +0 -0
  49. data/public/images/icons/paste/Thumbs.db +0 -0
  50. data/public/images/icons/picture/Thumbs.db +0 -0
  51. data/public/images/icons/presentation/Thumbs.db +0 -0
  52. data/public/images/icons/preview/Thumbs.db +0 -0
  53. data/public/images/icons/previous/Thumbs.db +0 -0
  54. data/public/images/icons/print/Thumbs.db +0 -0
  55. data/public/images/icons/properties/Thumbs.db +0 -0
  56. data/public/images/icons/redo/Thumbs.db +0 -0
  57. data/public/images/icons/refresh/Thumbs.db +0 -0
  58. data/public/images/icons/remove/Thumbs.db +0 -0
  59. data/public/images/icons/rename/Thumbs.db +0 -0
  60. data/public/images/icons/save/Thumbs.db +0 -0
  61. data/public/images/icons/search/Thumbs.db +0 -0
  62. data/public/images/icons/send/Thumbs.db +0 -0
  63. data/public/images/icons/settings/Thumbs.db +0 -0
  64. data/public/images/icons/synchronize/Thumbs.db +0 -0
  65. data/public/images/icons/undo/Thumbs.db +0 -0
  66. data/public/images/icons/upload/Thumbs.db +0 -0
  67. data/public/images/icons/user/Thumbs.db +0 -0
  68. data/public/images/icons/zoom_in/Thumbs.db +0 -0
  69. data/public/images/icons/zoom_out/Thumbs.db +0 -0
  70. data/public/javascripts/erp_app/authentication/compass_user.js +22 -19
  71. data/public/javascripts/erp_app/authentication/widget_manager.js +107 -107
  72. data/public/javascripts/erp_app/ckeditor/plugins/inlineeditsave/plugin.js +23 -23
  73. data/public/javascripts/erp_app/ckeditor/plugins/jwplayer/jwplayer/Thumbs.db +0 -0
  74. data/public/javascripts/erp_app/desktop/applications/file_manager/module.js +2 -2
  75. data/public/javascripts/erp_app/desktop/applications/security_management/capabilities_panel.js +82 -0
  76. data/public/javascripts/erp_app/desktop/applications/security_management/capabilities_widget.js +254 -0
  77. data/public/javascripts/erp_app/desktop/applications/security_management/groups_effective_security.js +98 -0
  78. data/public/javascripts/erp_app/desktop/applications/security_management/groups_panel.js +295 -0
  79. data/public/javascripts/erp_app/desktop/applications/security_management/groups_widget.js +254 -0
  80. data/public/javascripts/erp_app/desktop/applications/security_management/module.js +71 -0
  81. data/public/javascripts/erp_app/desktop/applications/security_management/roles_panel.js +298 -0
  82. data/public/javascripts/erp_app/desktop/applications/security_management/roles_widget.js +254 -0
  83. data/public/javascripts/erp_app/desktop/applications/security_management/users_effective_security.js +125 -0
  84. data/public/javascripts/erp_app/desktop/applications/security_management/users_panel.js +95 -0
  85. data/public/javascripts/erp_app/desktop/applications/security_management/users_widget.js +254 -0
  86. data/public/javascripts/erp_app/desktop/applications/user_management/module.js +38 -58
  87. data/public/javascripts/erp_app/organizer/applications/crm/base.js +698 -698
  88. data/public/javascripts/erp_app/organizer/applications/crm/contact_mechanism_grid.js +1 -4
  89. data/public/javascripts/erp_app/shared/compass_codemirror.js +1 -1
  90. data/public/javascripts/erp_app/shared/dynamic_editable_grid_loader_panel.js +1 -1
  91. data/public/javascripts/erp_app/shared/dynamic_forms/dynamic_form_fields.js +99 -0
  92. data/public/javascripts/erp_app/shared/file_manager_tree.js +1 -2
  93. data/public/javascripts/erp_app/shared/notes_grid.js +4 -13
  94. data/public/stylesheets/erp_app/shared/compass-ext-all.css +5 -0
  95. metadata +70 -20
  96. data/config/environment.rb +0 -0
  97. data/spec/dummy/db/schema.rb +0 -806
  98. data/spec/dummy/db/spec.sqlite3 +0 -0
  99. data/spec/dummy/log/adam.log +0 -1
  100. data/spec/dummy/log/spec.log +0 -92886
@@ -0,0 +1,145 @@
1
+ module ErpApp
2
+ module Desktop
3
+ module SecurityManagement
4
+ class UsersController < ErpApp::Desktop::SecurityManagement::BaseController
5
+
6
+ def available_setup
7
+ begin
8
+ columns = []
9
+ columns << DynamicGridColumn.build_column({ :fieldLabel => "Party Description", :name => 'party_description', :xtype => 'textfield', :width => 200 })
10
+ columns << DynamicGridColumn.build_column({ :fieldLabel => "Username", :name => 'username', :xtype => 'textfield', :width => 95 })
11
+ columns << DynamicGridColumn.build_column({ :fieldLabel => "Email", :name => 'email', :xtype => 'textfield', :width => 100 })
12
+
13
+ definition = []
14
+ definition << DynamicFormField.textfield({ :fieldLabel => "Party Description", :name => 'party_description' })
15
+ definition << DynamicFormField.textfield({ :fieldLabel => "Username", :name => 'username' })
16
+ definition << DynamicFormField.textfield({ :fieldLabel => "Email", :name => 'email' })
17
+ definition << DynamicFormField.hidden({ :fieldLabel => "ID", :name => 'id' })
18
+
19
+ render :inline => "{
20
+ \"success\": true,
21
+ \"columns\": [#{columns.join(',')}],
22
+ \"fields\": #{definition.to_json}
23
+ }"
24
+ rescue Exception => e
25
+ Rails.logger.error e.message
26
+ Rails.logger.error e.backtrace.join("\n")
27
+ render :inline => {
28
+ :success => false,
29
+ :message => e.message
30
+ }.to_json
31
+ end
32
+ end
33
+
34
+ def selected_setup
35
+ available_setup
36
+ end
37
+
38
+ def available
39
+ assign_to = params[:assign_to]
40
+ assign_to_id = params[:id]
41
+ sort = (params[:sort] || 'username').downcase
42
+ dir = (params[:dir] || 'asc').downcase
43
+ query_filter = params[:query_filter].strip rescue nil
44
+
45
+ ar = assign_to_id.blank? ? User : assign_to.constantize.find(assign_to_id).users_not
46
+ ar = params[:query_filter].blank? ? ar : ar.where("UPPER(username) LIKE UPPER('%#{query_filter}%') OR UPPER(email) LIKE UPPER('%#{query_filter}%') ")
47
+ available = ar.paginate(:page => page, :per_page => per_page, :order => "#{sort} #{dir}")
48
+
49
+ render :json => {:total => ar.count, :data => available.map{|x| {:username => x.username, :email => x.email, :party_description => x.party.description, :id => x.id}}}
50
+ end
51
+
52
+ def selected
53
+ assign_to = params[:assign_to]
54
+ assign_to_id = params[:id]
55
+ sort = (params[:sort] || 'username').downcase
56
+ dir = (params[:dir] || 'asc').downcase
57
+ query_filter = params[:query_filter].strip rescue nil
58
+
59
+ ar = assign_to_id.blank? ? User : assign_to.constantize.find(assign_to_id).users
60
+ ar = (params[:query_filter].blank? ? ar : ar.where("UPPER(username) LIKE UPPER('%#{query_filter}%') OR UPPER(email) LIKE UPPER('%#{query_filter}%') "))
61
+ selected = ar.paginate(:page => page, :per_page => per_page, :order => "#{sort} #{dir}")
62
+
63
+ render :json => {:total => ar.count, :data => selected.map{|x| {:username => x.username, :email => x.email, :party_description => x.party.description, :id => x.id}}}
64
+ end
65
+
66
+ def add
67
+ begin
68
+ assign_to = params[:assign_to]
69
+ assign_to_id = params[:id]
70
+ selected = JSON.parse(params[:selection])
71
+
72
+ a = assign_to.constantize.find(assign_to_id)
73
+ selected.each do |x|
74
+ u = User.find(x)
75
+ case assign_to
76
+ when 'Group'
77
+ a.add_user(u)
78
+ when 'SecurityRole'
79
+ u.add_role(a)
80
+ when 'Capability'
81
+ u.add_capability(a)
82
+ end
83
+ end
84
+
85
+ render :json => {:success => true, :message => 'Group(s) Added'}
86
+ rescue Exception => e
87
+ Rails.logger.error e.message
88
+ Rails.logger.error e.backtrace.join("\n")
89
+ render :inline => {
90
+ :success => false,
91
+ :message => e.message
92
+ }.to_json
93
+ end
94
+ end
95
+
96
+ def remove
97
+ begin
98
+ assign_to = params[:assign_to]
99
+ assign_to_id = params[:id]
100
+ selected = JSON.parse(params[:selection])
101
+
102
+ a = assign_to.constantize.find(assign_to_id)
103
+ selected.each do |x|
104
+ u = User.find(x)
105
+ case assign_to
106
+ when 'Group'
107
+ a.remove_user(u)
108
+ when 'SecurityRole'
109
+ u.remove_role(a)
110
+ when 'Capability'
111
+ u.remove_capability(a)
112
+ end
113
+ end
114
+
115
+ render :json => {:success => true, :message => 'Group(s) Removed'}
116
+ rescue Exception => e
117
+ Rails.logger.error e.message
118
+ Rails.logger.error e.backtrace.join("\n")
119
+ render :inline => {
120
+ :success => false,
121
+ :message => e.message
122
+ }.to_json
123
+ end
124
+ end
125
+
126
+ def effective_security
127
+ begin
128
+ assign_to_id = params[:id]
129
+ u = User.find(assign_to_id)
130
+
131
+ render :json => {:success => true, :roles => u.all_roles, :capabilities => u.class_capabilities_to_hash }
132
+ rescue Exception => e
133
+ Rails.logger.error e.message
134
+ Rails.logger.error e.backtrace.join("\n")
135
+ render :inline => {
136
+ :success => false,
137
+ :message => e.message
138
+ }.to_json
139
+ end
140
+ end
141
+
142
+ end
143
+ end
144
+ end
145
+ end
@@ -28,7 +28,7 @@ module ErpApp
28
28
  response = {}
29
29
  application = DesktopApplication.find_by_internal_identifier('user_management')
30
30
  begin
31
- current_user.with_capability(application, :create, 'User') do
31
+ current_user.with_capability(:create, 'User') do
32
32
 
33
33
  user = User.new(
34
34
  :email => params[:email],
@@ -76,7 +76,7 @@ module ErpApp
76
76
 
77
77
  def delete
78
78
  application = DesktopApplication.find_by_internal_identifier('user_management')
79
- if current_user.has_capability?(application, 'create', 'User')
79
+ if current_user.has_capability?('create', 'User')
80
80
  unless @user.party.nil?
81
81
  @user.party.destroy
82
82
  else
@@ -5,7 +5,7 @@ module ErpApp
5
5
 
6
6
  def available_roles
7
7
  user_id = params[:user_id]
8
- roles = Role.all
8
+ roles = SecurityRole.order('description ASC').all
9
9
 
10
10
  unless user_id.empty?
11
11
  current_role_ids = User.find(user_id).roles.collect{|r| r.id}
@@ -20,7 +20,7 @@ module ErpApp
20
20
  roles = []
21
21
 
22
22
  unless user_id.empty?
23
- roles = User.find(user_id).roles
23
+ roles = User.find(user_id).roles.order('description ASC')
24
24
  end
25
25
 
26
26
  render :json => roles.map{|role| {:text => role.description, :iconCls => 'icon-user', :leaf => true, :role_id => role.id}}
@@ -31,10 +31,10 @@ module ErpApp
31
31
  user_id = params[:user_id]
32
32
 
33
33
  user = User.find(user_id)
34
- roles = Role.where("id in (#{role_ids.join(',')})").all
35
- user.remove_all_roles
36
- user.add_roles(roles)
37
- user.save
34
+ roles = SecurityRole.where("id in (#{role_ids.join(',')})").all
35
+ user.party.remove_all_roles
36
+ user.party.add_roles(roles)
37
+ user.party.save
38
38
 
39
39
  render :json => {:success => true, :message => 'Roles Saved'}
40
40
  end
@@ -2,17 +2,6 @@ module ErpApp
2
2
  class PublicController < ActionController::Base
3
3
  before_filter :set_file_support
4
4
 
5
- # DEPRECATED, use erp_app/public#download
6
- # def download_file
7
- # path = params[:path]
8
- # file_klass = FileAsset.type_by_extension(File.extname(path))
9
- # if file_klass == Image
10
- # send_file path, :type => "image/#{File.extname(path)}"
11
- # else
12
- # send_file path, :type => file_klass.content_type
13
- # end
14
- # end
15
-
16
5
  # TODO:
17
6
  # reorder menuitems
18
7
  # drag and drop image into ckeditor uses bad (but somehow not broken, i.e. ../../images/) url (filesystem on firefox, chrome OK)
@@ -28,10 +17,10 @@ module ErpApp
28
17
  file = file.first
29
18
 
30
19
  unless file.nil?
31
- if file.has_capabilities?
20
+ if file.is_secured?
32
21
  begin
33
22
  unless current_user == false
34
- current_user.with_capability(file, :download, nil) do
23
+ current_user.with_capability(:download, file) do
35
24
  serve_file(file, disposition)
36
25
  end
37
26
  else
@@ -58,7 +47,7 @@ module ErpApp
58
47
  if ErpTechSvcs::Config.file_storage == :s3
59
48
  path = File.join(file.directory,file.name).sub(%r{^/},'')
60
49
  options = { :response_content_disposition => disposition }
61
- options[:expires] = ErpTechSvcs::Config.s3_url_expires_in_seconds if file.has_capabilities?
50
+ options[:expires] = ErpTechSvcs::Config.s3_url_expires_in_seconds if file.is_secured?
62
51
  redirect_to @file_support.bucket.objects[path].url_for(:read, options).to_s
63
52
  else
64
53
  # to use X-Sendfile or X-Accel-Redirect, set config.action_dispatch.x_sendfile_header in environment config file
@@ -1,20 +1,11 @@
1
1
  class Application < ActiveRecord::Base
2
- has_capabilities
3
2
  has_user_preferences
4
3
 
5
4
  has_and_belongs_to_many :app_containers
6
5
  has_and_belongs_to_many :widgets
7
6
 
8
7
  validates_uniqueness_of :javascript_class_name
9
- validates_uniqueness_of :internal_identifier, :scope => :type
10
-
11
- def to_access_hash
12
- {
13
- :iid => self.internal_identifier,
14
- :capabilities => self.capabilites_to_hash,
15
- :widgets => widgets.collect{|widget| widget.to_access_hash}
16
- }
17
- end
8
+ validates_uniqueness_of :internal_identifier, :scope => :type, :case_sensitive => false
18
9
 
19
10
  def locate_resources(resource_type)
20
11
  resource_loader = ErpApp::ApplicationResourceLoader::DesktopOrganizerLoader.new(self)
@@ -1,5 +1,5 @@
1
1
  class ConfigurationItemType < ActiveRecord::Base
2
- validates :internal_identifier, :uniqueness => true
2
+ validates :internal_identifier, :uniqueness => {:case_sensitive => false}
3
3
 
4
4
  has_and_belongs_to_many :configuration_options, :uniq => true do
5
5
  def default
@@ -1,5 +1,5 @@
1
1
  class ConfigurationOption < ActiveRecord::Base
2
- validates :internal_identifier, :uniqueness => {:scope => :id}
2
+ validates :internal_identifier, :uniqueness => {:scope => :id, :case_sensitive => false}
3
3
 
4
4
  has_and_belongs_to_many :configuration_item_types
5
5
  has_and_belongs_to_many :configuration_items
@@ -1,18 +1,9 @@
1
1
  class Widget < ActiveRecord::Base
2
- has_roles
3
- has_capabilities
4
2
 
5
3
  has_and_belongs_to_many :applications
6
4
  has_many :user_preferences, :as => :preferenced_record
7
5
 
8
- validates_uniqueness_of :xtype
9
- validates_uniqueness_of :internal_identifier
6
+ validates_uniqueness_of :xtype, :case_sensitive => false
7
+ validates_uniqueness_of :internal_identifier, :case_sensitive => false
10
8
 
11
- def to_access_hash
12
- {
13
- :xtype => self.xtype,
14
- :roles => self.roles.collect{|role| role.internal_identifier},
15
- :capabilities => self.capabilites_to_hash
16
- }
17
- end
18
9
  end
@@ -50,9 +50,12 @@ ErpApp::Engine.routes.draw do
50
50
  match '/desktop/user_management/role_management/:action' => "desktop/user_management/role_management"
51
51
  match '/desktop/user_management/application_management/:action' => "desktop/user_management/application_management"
52
52
 
53
- #system_management
54
- match '/desktop/system_management/:action' => "desktop/system_management/base#index"
55
- match '/desktop/system_management/application_role_management/:action' => "desktop/system_management/application_role_management"
53
+ #security_management
54
+ match '/desktop/security_management/groups(/:action(/:assign_to(/:id)))' => "desktop/security_management/groups"
55
+ match '/desktop/security_management/users(/:action(/:assign_to(/:id)))' => "desktop/security_management/users"
56
+ match '/desktop/security_management/roles(/:action(/:assign_to(/:id)))' => "desktop/security_management/roles"
57
+ match '/desktop/security_management/capabilities(/:action(/:assign_to(/:id)))' => "desktop/security_management/capabilities"
58
+ match '/desktop/security_management/(/:action)' => "desktop/security_management/base"
56
59
 
57
60
  #control_panel
58
61
  match '/desktop/control_panel/application_management/:action(/:id)' => "desktop/control_panel/application_management"
@@ -30,8 +30,8 @@ class ErpAppSetup
30
30
  #######################################
31
31
  #roles
32
32
  #######################################
33
- Role.create(:description => 'Admin', :internal_identifier => 'admin')
34
- Role.create(:description => 'Employee', :internal_identifier => 'employee')
33
+ SecurityRole.create(:description => 'Admin', :internal_identifier => 'admin')
34
+ SecurityRole.create(:description => 'Employee', :internal_identifier => 'employee')
35
35
 
36
36
  #######################################
37
37
  #desktop setup
@@ -97,9 +97,6 @@ class ErpAppSetup
97
97
  :xtype => 'shared_notesgrid',
98
98
  :internal_identifier => 'shared_notes_grid'
99
99
  )
100
-
101
- notes_grid.add_role('admin')
102
- notes_grid.add_role('employee')
103
100
  notes_grid.save
104
101
 
105
102
  #######################################
@@ -111,8 +108,6 @@ class ErpAppSetup
111
108
  :xtype => 'controlpanel_userapplicationmgtpanel',
112
109
  :internal_identifier => 'application_management'
113
110
  )
114
-
115
- app_mgr.add_role('admin')
116
111
  app_mgr.save
117
112
 
118
113
  role_mgr = ::Widget.create(
@@ -121,8 +116,6 @@ class ErpAppSetup
121
116
  :xtype => 'usermanagement_rolemanagementpanel',
122
117
  :internal_identifier => 'role_management'
123
118
  )
124
-
125
- role_mgr.add_role('admin')
126
119
  role_mgr.save
127
120
 
128
121
  personal_info = ::Widget.create(
@@ -131,9 +124,6 @@ class ErpAppSetup
131
124
  :xtype => 'usermanagement_personalinfopanel',
132
125
  :internal_identifier => 'user_personal_info'
133
126
  )
134
-
135
- personal_info.add_role('admin')
136
- personal_info.add_role('employee')
137
127
  personal_info.save
138
128
 
139
129
  #create application and assign widgets
@@ -154,34 +144,6 @@ class ErpAppSetup
154
144
  user_mgr_app.widgets << notes_grid
155
145
  user_mgr_app.save
156
146
 
157
- #######################################
158
- #system management app
159
- #######################################
160
- app_role_management = ::Widget.create(
161
- :description => 'Application Role Management',
162
- :icon => 'icon-document',
163
- :xtype => 'systemmanagement_applicationrolemanagment',
164
- :internal_identifier => 'application_role_management'
165
- )
166
-
167
- app_role_management.add_role('admin')
168
- app_role_management.save
169
-
170
- system_management_app = DesktopApplication.create(
171
- :description => 'System Management',
172
- :icon => 'icon-monitor',
173
- :javascript_class_name => 'Compass.ErpApp.Desktop.Applications.SystemManagement',
174
- :internal_identifier => 'system_management',
175
- :shortcut_id => 'system_management-win'
176
- )
177
-
178
- system_management_app.preference_types << desktop_shortcut_pt
179
- system_management_app.preference_types << auto_load_app_pt
180
-
181
- system_management_app.widgets << app_role_management
182
- system_management_app.save
183
-
184
-
185
147
  #######################################
186
148
  #scaffold app
187
149
  #######################################
@@ -207,9 +169,6 @@ class ErpAppSetup
207
169
  :xtype => 'contactmechanismgrid',
208
170
  :internal_identifier => 'party_contact_management'
209
171
  )
210
-
211
- party_contact_mgm_widget.add_role('admin')
212
- party_contact_mgm_widget.add_role('employee')
213
172
  party_contact_mgm_widget.save
214
173
 
215
174
  party_mgm_widget = ::Widget.create(
@@ -218,9 +177,6 @@ class ErpAppSetup
218
177
  :xtype => 'partygrid',
219
178
  :internal_identifier => 'party_management_widget'
220
179
  )
221
-
222
- party_mgm_widget.add_role('admin')
223
- party_mgm_widget.add_role('employee')
224
180
  party_mgm_widget.save
225
181
 
226
182
  #create application
@@ -275,14 +231,12 @@ class ErpAppSetup
275
231
  truenorth_user.save
276
232
 
277
233
  admin_user.desktop.applications << user_mgr_app
278
- admin_user.desktop.applications << system_management_app
279
234
  admin_user.desktop.applications << scaffold_app
280
235
  admin_user.desktop.save
281
236
  admin_user.organizer.applications << crm_app
282
237
  admin_user.organizer.save
283
238
 
284
239
  truenorth_user.desktop.applications << user_mgr_app
285
- truenorth_user.desktop.applications << system_management_app
286
240
  truenorth_user.desktop.applications << scaffold_app
287
241
  truenorth_user.desktop.save
288
242
  truenorth_user.organizer.applications << crm_app
@@ -11,7 +11,10 @@ class CreateDesktopAppAuditLogViewer
11
11
  app.preference_types << PreferenceType.iid('desktop_shortcut')
12
12
  app.preference_types << PreferenceType.iid('autoload_application')
13
13
  app.save
14
-
14
+
15
+ admin_user = User.find_by_username('admin')
16
+ admin_user.desktop.applications << app
17
+ admin_user.desktop.save
15
18
  end
16
19
 
17
20
  def self.down
@@ -1,29 +1,22 @@
1
1
  class AddDefaultCapabilities
2
2
 
3
3
  def self.up
4
- CapabilityType.create(:internal_identifier => 'edit', :description => 'Edit')
5
- CapabilityType.create(:internal_identifier => 'delete', :description => 'Delete')
6
- CapabilityType.create(:internal_identifier => 'create', :description => 'Create')
7
- CapabilityType.create(:internal_identifier => 'view', :description => 'View')
4
+ admin = SecurityRole.find_by_internal_identifier('admin')
5
+ employee = SecurityRole.find_by_internal_identifier('employee')
8
6
 
9
- user_management_application = DesktopApplication.find_by_internal_identifier('user_management')
10
- user_management_application.add_capability('create', 'User', 'admin')
11
- user_management_application.add_capability('delete', 'User', 'admin')
7
+ admin.add_capability('create', 'User')
8
+ admin.add_capability('delete', 'User')
12
9
 
13
- notes_widget = Widget.find_by_internal_identifier('shared_notes_grid')
14
- notes_widget.add_capability('create', 'Note', 'admin', 'employee')
15
- notes_widget.add_capability('view', 'Note', 'admin', 'employee')
16
- notes_widget.add_capability('delete', 'Note', 'admin')
10
+ admin.add_capability('create', 'Note')
11
+ employee.add_capability('create', 'Note')
12
+
13
+ admin.add_capability('view', 'Note')
14
+ employee.add_capability('view', 'Note')
15
+
16
+ admin.add_capability('delete', 'Note')
17
17
  end
18
18
 
19
19
  def self.down
20
- CapabilityType.destroy_all("internal_identifier in (#{%w(edit,delete,create,view).map{|iid| "'#{iid}'"}.join(',')}")
21
-
22
- user_management_application = DesktopApplication.find_by_internal_identifier('user_management')
23
- user_management_application.remove_all_capabilities
24
-
25
- notes_widget = Widget.find_by_internal_identifier('shared_notes_grid')
26
- notes_widget.remove_all_capabilities
27
20
  end
28
21
 
29
22
  end