authorails 1.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (347) hide show
  1. data/AUTHORAILS_README +20 -0
  2. data/CHANGELOG +1366 -0
  3. data/MIT-LICENSE +20 -0
  4. data/README +182 -0
  5. data/Rakefile +334 -0
  6. data/bin/about +3 -0
  7. data/bin/authorails +19 -0
  8. data/bin/breakpointer +3 -0
  9. data/bin/console +3 -0
  10. data/bin/destroy +3 -0
  11. data/bin/generate +3 -0
  12. data/bin/performance/benchmarker +3 -0
  13. data/bin/performance/profiler +3 -0
  14. data/bin/plugin +3 -0
  15. data/bin/process/inspector +3 -0
  16. data/bin/process/reaper +3 -0
  17. data/bin/process/spawner +3 -0
  18. data/bin/runner +3 -0
  19. data/bin/server +3 -0
  20. data/builtin/rails_info/rails/info.rb +123 -0
  21. data/builtin/rails_info/rails/info_controller.rb +9 -0
  22. data/builtin/rails_info/rails/info_helper.rb +2 -0
  23. data/builtin/rails_info/rails_info_controller.rb +2 -0
  24. data/configs/apache.conf +40 -0
  25. data/configs/databases/frontbase.yml +28 -0
  26. data/configs/databases/mysql.yml +48 -0
  27. data/configs/databases/oracle.yml +39 -0
  28. data/configs/databases/postgresql.yml +44 -0
  29. data/configs/databases/sqlite2.yml +16 -0
  30. data/configs/databases/sqlite3.yml +19 -0
  31. data/configs/empty.log +0 -0
  32. data/configs/lighttpd.conf +54 -0
  33. data/configs/routes.rb +23 -0
  34. data/controllers/accounts_controller.rb +11 -0
  35. data/controllers/admin_controller.rb +76 -0
  36. data/controllers/begin_controller.rb +5 -0
  37. data/controllers/login_controller.rb +101 -0
  38. data/controllers/permission_controller.rb +91 -0
  39. data/controllers/roles_controller.rb +58 -0
  40. data/controllers/tables_controller.rb +714 -0
  41. data/dispatches/dispatch.fcgi +24 -0
  42. data/dispatches/dispatch.rb +10 -0
  43. data/dispatches/gateway.cgi +97 -0
  44. data/doc/README_FOR_APP +2 -0
  45. data/environments/boot.rb +45 -0
  46. data/environments/development.rb +21 -0
  47. data/environments/environment.rb +63 -0
  48. data/environments/production.rb +18 -0
  49. data/environments/test.rb +19 -0
  50. data/fresh_rakefile +10 -0
  51. data/helpers/application.rb +607 -0
  52. data/helpers/application_helper.rb +315 -0
  53. data/helpers/permission_helper.rb +27 -0
  54. data/helpers/test_helper.rb +28 -0
  55. data/html/404.html +30 -0
  56. data/html/500.html +30 -0
  57. data/html/favicon.ico +0 -0
  58. data/html/images/ArrowDn.png +0 -0
  59. data/html/images/ArrowUp.png +0 -0
  60. data/html/images/arrow.gif +0 -0
  61. data/html/images/authorails_logo.gif +0 -0
  62. data/html/images/delete.png +0 -0
  63. data/html/images/edit.png +0 -0
  64. data/html/images/minus.gif +0 -0
  65. data/html/images/plus.gif +0 -0
  66. data/html/images/rails.png +0 -0
  67. data/html/images/show.png +0 -0
  68. data/html/images/spinner.gif +0 -0
  69. data/html/index.html +273 -0
  70. data/html/javascripts/application.js +2 -0
  71. data/html/javascripts/controls.js +833 -0
  72. data/html/javascripts/dragdrop.js +942 -0
  73. data/html/javascripts/effects.js +1088 -0
  74. data/html/javascripts/live_validation.js +4 -0
  75. data/html/javascripts/prototype.js +2515 -0
  76. data/html/robots.txt +1 -0
  77. data/lib/authorails/version.rb +9 -0
  78. data/lib/binding_of_caller.rb +85 -0
  79. data/lib/breakpoint.rb +553 -0
  80. data/lib/breakpoint_client.rb +196 -0
  81. data/lib/code_statistics.rb +107 -0
  82. data/lib/commands.rb +17 -0
  83. data/lib/commands/about.rb +2 -0
  84. data/lib/commands/breakpointer.rb +1 -0
  85. data/lib/commands/console.rb +25 -0
  86. data/lib/commands/destroy.rb +6 -0
  87. data/lib/commands/generate.rb +6 -0
  88. data/lib/commands/ncgi/listener +86 -0
  89. data/lib/commands/ncgi/tracker +69 -0
  90. data/lib/commands/performance/benchmarker.rb +24 -0
  91. data/lib/commands/performance/profiler.rb +50 -0
  92. data/lib/commands/plugin.rb +918 -0
  93. data/lib/commands/process/inspector.rb +68 -0
  94. data/lib/commands/process/reaper.rb +149 -0
  95. data/lib/commands/process/spawner.rb +209 -0
  96. data/lib/commands/process/spinner.rb +57 -0
  97. data/lib/commands/runner.rb +48 -0
  98. data/lib/commands/server.rb +39 -0
  99. data/lib/commands/servers/base.rb +19 -0
  100. data/lib/commands/servers/lighttpd.rb +94 -0
  101. data/lib/commands/servers/mongrel.rb +65 -0
  102. data/lib/commands/servers/webrick.rb +59 -0
  103. data/lib/commands/update.rb +4 -0
  104. data/lib/console_app.rb +27 -0
  105. data/lib/console_sandbox.rb +6 -0
  106. data/lib/console_with_helpers.rb +23 -0
  107. data/lib/dispatcher.rb +173 -0
  108. data/lib/fcgi_handler.rb +225 -0
  109. data/lib/initializer.rb +702 -0
  110. data/lib/rails_generator.rb +43 -0
  111. data/lib/rails_generator/base.rb +261 -0
  112. data/lib/rails_generator/commands.rb +581 -0
  113. data/lib/rails_generator/generated_attribute.rb +42 -0
  114. data/lib/rails_generator/generators/applications/app/USAGE +16 -0
  115. data/lib/rails_generator/generators/applications/app/app_generator.rb +341 -0
  116. data/lib/rails_generator/generators/components/controller/USAGE +30 -0
  117. data/lib/rails_generator/generators/components/controller/controller_generator.rb +37 -0
  118. data/lib/rails_generator/generators/components/controller/templates/controller.rb +10 -0
  119. data/lib/rails_generator/generators/components/controller/templates/functional_test.rb +18 -0
  120. data/lib/rails_generator/generators/components/controller/templates/helper.rb +2 -0
  121. data/lib/rails_generator/generators/components/controller/templates/view.rhtml +2 -0
  122. data/lib/rails_generator/generators/components/integration_test/USAGE +14 -0
  123. data/lib/rails_generator/generators/components/integration_test/integration_test_generator.rb +16 -0
  124. data/lib/rails_generator/generators/components/integration_test/templates/integration_test.rb +10 -0
  125. data/lib/rails_generator/generators/components/mailer/USAGE +18 -0
  126. data/lib/rails_generator/generators/components/mailer/mailer_generator.rb +34 -0
  127. data/lib/rails_generator/generators/components/mailer/templates/fixture.rhtml +3 -0
  128. data/lib/rails_generator/generators/components/mailer/templates/mailer.rb +13 -0
  129. data/lib/rails_generator/generators/components/mailer/templates/unit_test.rb +37 -0
  130. data/lib/rails_generator/generators/components/mailer/templates/view.rhtml +3 -0
  131. data/lib/rails_generator/generators/components/migration/USAGE +14 -0
  132. data/lib/rails_generator/generators/components/migration/migration_generator.rb +7 -0
  133. data/lib/rails_generator/generators/components/migration/templates/migration.rb +7 -0
  134. data/lib/rails_generator/generators/components/model/USAGE +26 -0
  135. data/lib/rails_generator/generators/components/model/model_generator.rb +38 -0
  136. data/lib/rails_generator/generators/components/model/templates/fixtures.yml +11 -0
  137. data/lib/rails_generator/generators/components/model/templates/migration.rb +13 -0
  138. data/lib/rails_generator/generators/components/model/templates/model.rb +2 -0
  139. data/lib/rails_generator/generators/components/model/templates/unit_test.rb +10 -0
  140. data/lib/rails_generator/generators/components/observer/USAGE +15 -0
  141. data/lib/rails_generator/generators/components/observer/observer_generator.rb +16 -0
  142. data/lib/rails_generator/generators/components/observer/templates/observer.rb +2 -0
  143. data/lib/rails_generator/generators/components/observer/templates/unit_test.rb +10 -0
  144. data/lib/rails_generator/generators/components/plugin/USAGE +35 -0
  145. data/lib/rails_generator/generators/components/plugin/plugin_generator.rb +38 -0
  146. data/lib/rails_generator/generators/components/plugin/templates/README +4 -0
  147. data/lib/rails_generator/generators/components/plugin/templates/Rakefile +22 -0
  148. data/lib/rails_generator/generators/components/plugin/templates/USAGE +8 -0
  149. data/lib/rails_generator/generators/components/plugin/templates/generator.rb +8 -0
  150. data/lib/rails_generator/generators/components/plugin/templates/init.rb +1 -0
  151. data/lib/rails_generator/generators/components/plugin/templates/install.rb +1 -0
  152. data/lib/rails_generator/generators/components/plugin/templates/plugin.rb +1 -0
  153. data/lib/rails_generator/generators/components/plugin/templates/tasks.rake +4 -0
  154. data/lib/rails_generator/generators/components/plugin/templates/uninstall.rb +1 -0
  155. data/lib/rails_generator/generators/components/plugin/templates/unit_test.rb +8 -0
  156. data/lib/rails_generator/generators/components/resource/resource_generator.rb +76 -0
  157. data/lib/rails_generator/generators/components/resource/templates/USAGE +18 -0
  158. data/lib/rails_generator/generators/components/resource/templates/controller.rb +2 -0
  159. data/lib/rails_generator/generators/components/resource/templates/fixtures.yml +11 -0
  160. data/lib/rails_generator/generators/components/resource/templates/functional_test.rb +20 -0
  161. data/lib/rails_generator/generators/components/resource/templates/helper.rb +2 -0
  162. data/lib/rails_generator/generators/components/resource/templates/migration.rb +13 -0
  163. data/lib/rails_generator/generators/components/resource/templates/model.rb +2 -0
  164. data/lib/rails_generator/generators/components/resource/templates/unit_test.rb +10 -0
  165. data/lib/rails_generator/generators/components/scaffold/USAGE +32 -0
  166. data/lib/rails_generator/generators/components/scaffold/scaffold_generator.rb +208 -0
  167. data/lib/rails_generator/generators/components/scaffold/templates/controller.rb +134 -0
  168. data/lib/rails_generator/generators/components/scaffold/templates/form.rhtml +3 -0
  169. data/lib/rails_generator/generators/components/scaffold/templates/form_scaffolding.rhtml +35 -0
  170. data/lib/rails_generator/generators/components/scaffold/templates/functional_test.rb +102 -0
  171. data/lib/rails_generator/generators/components/scaffold/templates/helper.rb +2 -0
  172. data/lib/rails_generator/generators/components/scaffold/templates/layout.rhtml +17 -0
  173. data/lib/rails_generator/generators/components/scaffold/templates/partial_list_elements.rhtml +127 -0
  174. data/lib/rails_generator/generators/components/scaffold/templates/style.css +74 -0
  175. data/lib/rails_generator/generators/components/scaffold/templates/view_edit.rhtml +75 -0
  176. data/lib/rails_generator/generators/components/scaffold/templates/view_list.rhtml +30 -0
  177. data/lib/rails_generator/generators/components/scaffold/templates/view_new.rhtml +8 -0
  178. data/lib/rails_generator/generators/components/scaffold/templates/view_show.rhtml +37 -0
  179. data/lib/rails_generator/generators/components/scaffold_resource/USAGE +29 -0
  180. data/lib/rails_generator/generators/components/scaffold_resource/scaffold_resource_generator.rb +92 -0
  181. data/lib/rails_generator/generators/components/scaffold_resource/templates/controller.rb +79 -0
  182. data/lib/rails_generator/generators/components/scaffold_resource/templates/fixtures.yml +11 -0
  183. data/lib/rails_generator/generators/components/scaffold_resource/templates/functional_test.rb +57 -0
  184. data/lib/rails_generator/generators/components/scaffold_resource/templates/helper.rb +2 -0
  185. data/lib/rails_generator/generators/components/scaffold_resource/templates/layout.rhtml +17 -0
  186. data/lib/rails_generator/generators/components/scaffold_resource/templates/migration.rb +13 -0
  187. data/lib/rails_generator/generators/components/scaffold_resource/templates/model.rb +2 -0
  188. data/lib/rails_generator/generators/components/scaffold_resource/templates/style.css +74 -0
  189. data/lib/rails_generator/generators/components/scaffold_resource/templates/unit_test.rb +10 -0
  190. data/lib/rails_generator/generators/components/scaffold_resource/templates/view_edit.rhtml +19 -0
  191. data/lib/rails_generator/generators/components/scaffold_resource/templates/view_index.rhtml +24 -0
  192. data/lib/rails_generator/generators/components/scaffold_resource/templates/view_new.rhtml +18 -0
  193. data/lib/rails_generator/generators/components/scaffold_resource/templates/view_show.rhtml +10 -0
  194. data/lib/rails_generator/generators/components/session_migration/USAGE +15 -0
  195. data/lib/rails_generator/generators/components/session_migration/session_migration_generator.rb +18 -0
  196. data/lib/rails_generator/generators/components/session_migration/templates/migration.rb +16 -0
  197. data/lib/rails_generator/generators/components/web_service/USAGE +28 -0
  198. data/lib/rails_generator/generators/components/web_service/templates/api_definition.rb +5 -0
  199. data/lib/rails_generator/generators/components/web_service/templates/controller.rb +8 -0
  200. data/lib/rails_generator/generators/components/web_service/templates/functional_test.rb +19 -0
  201. data/lib/rails_generator/generators/components/web_service/web_service_generator.rb +29 -0
  202. data/lib/rails_generator/lookup.rb +209 -0
  203. data/lib/rails_generator/manifest.rb +53 -0
  204. data/lib/rails_generator/options.rb +143 -0
  205. data/lib/rails_generator/scripts.rb +83 -0
  206. data/lib/rails_generator/scripts/destroy.rb +7 -0
  207. data/lib/rails_generator/scripts/generate.rb +7 -0
  208. data/lib/rails_generator/scripts/update.rb +12 -0
  209. data/lib/rails_generator/simple_logger.rb +46 -0
  210. data/lib/rails_generator/spec.rb +44 -0
  211. data/lib/railties_path.rb +1 -0
  212. data/lib/ruby_version_check.rb +17 -0
  213. data/lib/rubyprof_ext.rb +35 -0
  214. data/lib/tasks/databases.rake +187 -0
  215. data/lib/tasks/documentation.rake +82 -0
  216. data/lib/tasks/framework.rake +112 -0
  217. data/lib/tasks/log.rake +9 -0
  218. data/lib/tasks/misc.rake +4 -0
  219. data/lib/tasks/pre_namespace_aliases.rake +53 -0
  220. data/lib/tasks/rails.rb +8 -0
  221. data/lib/tasks/statistics.rake +18 -0
  222. data/lib/tasks/testing.rake +120 -0
  223. data/lib/tasks/tmp.rake +37 -0
  224. data/lib/test_help.rb +19 -0
  225. data/lib/webrick_server.rb +166 -0
  226. data/libs/migration_helper.rb +11 -0
  227. data/migrations/001_create_logins.rb +22 -0
  228. data/migrations/002_create_admins.rb +16 -0
  229. data/migrations/003_create_roles.rb +13 -0
  230. data/migrations/004_create_tables.rb +11 -0
  231. data/migrations/005_create_attr_types.rb +13 -0
  232. data/migrations/006_create_table_fields.rb +22 -0
  233. data/migrations/007_create_tab_operations.rb +13 -0
  234. data/migrations/008_create_attr_operations.rb +13 -0
  235. data/migrations/009_create_tab_permissions.rb +21 -0
  236. data/migrations/010_create_attr_permissions.rb +21 -0
  237. data/migrations/011_create_relations.rb +23 -0
  238. data/migrations/012_create_scaffolds.rb +11 -0
  239. data/migrations/013_create_relation_permissions.rb +20 -0
  240. data/models/admin.rb +38 -0
  241. data/models/attr_operation.rb +3 -0
  242. data/models/attr_permission.rb +5 -0
  243. data/models/attr_type.rb +3 -0
  244. data/models/login.rb +51 -0
  245. data/models/relation.rb +5 -0
  246. data/models/relation_permission.rb +4 -0
  247. data/models/role.rb +13 -0
  248. data/models/scaffold.rb +2 -0
  249. data/models/tab_operation.rb +3 -0
  250. data/models/tab_permission.rb +5 -0
  251. data/models/table.rb +18 -0
  252. data/models/table_field.rb +6 -0
  253. data/plugins/redhillonrails_core/CHANGELOG +186 -0
  254. data/plugins/redhillonrails_core/MIT-LICENSE +20 -0
  255. data/plugins/redhillonrails_core/README +152 -0
  256. data/plugins/redhillonrails_core/init.rb +1 -0
  257. data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/base.rb +54 -0
  258. data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/abstract_adapter.rb +46 -0
  259. data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/column.rb +21 -0
  260. data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/foreign_key_definition.rb +26 -0
  261. data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/index_definition.rb +11 -0
  262. data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/mysql_adapter.rb +94 -0
  263. data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/mysql_column.rb +8 -0
  264. data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/postgresql_adapter.rb +131 -0
  265. data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/schema_statements.rb +23 -0
  266. data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/sqlite3_adapter.rb +9 -0
  267. data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/connection_adapters/table_definition.rb +27 -0
  268. data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/schema.rb +25 -0
  269. data/plugins/redhillonrails_core/lib/red_hill_consulting/core/active_record/schema_dumper.rb +58 -0
  270. data/plugins/redhillonrails_core/lib/redhillonrails_core.rb +19 -0
  271. data/plugins/redhillonrails_core/tasks/db/comments.rake +9 -0
  272. data/plugins/schema_validations/CHANGELOG +149 -0
  273. data/plugins/schema_validations/MIT-LICENSE +20 -0
  274. data/plugins/schema_validations/README +54 -0
  275. data/plugins/schema_validations/about.yml +5 -0
  276. data/plugins/schema_validations/init.rb +1 -0
  277. data/plugins/schema_validations/install.rb +1 -0
  278. data/plugins/schema_validations/lib/red_hill_consulting/schema_validations/active_record/base.rb +108 -0
  279. data/plugins/schema_validations/lib/schema_validations.rb +1 -0
  280. data/plugins/svn/README +69 -0
  281. data/plugins/svn/Rakefile +22 -0
  282. data/plugins/svn/assets/javascripts/live_validation.js +4 -0
  283. data/plugins/svn/assets/stylesheets/live_validation.css +28 -0
  284. data/plugins/svn/init.rb +2 -0
  285. data/plugins/svn/install.rb +1 -0
  286. data/plugins/svn/lib/form_helpers.rb +49 -0
  287. data/plugins/svn/lib/live_validations.rb +73 -0
  288. data/plugins/svn/tasks/live_validation_tasks.rake +17 -0
  289. data/plugins/svn/test/form_helpers_test.rb +214 -0
  290. data/plugins/svn/test/live_validations_test.rb +124 -0
  291. data/plugins/svn/test/resource.rb +17 -0
  292. data/plugins/svn/uninstall.rb +1 -0
  293. data/stylesheets/live_validation.css +28 -0
  294. data/stylesheets/print.css +72 -0
  295. data/stylesheets/scaffold.css +175 -0
  296. data/views/accounts/index.rhtml +12 -0
  297. data/views/accounts/show.rhtml +5 -0
  298. data/views/admin/_form.rhtml +15 -0
  299. data/views/admin/add_user.rhtml +21 -0
  300. data/views/admin/change_pwd.rhtml +23 -0
  301. data/views/admin/edit_user.rhtml +12 -0
  302. data/views/admin/index.rhtml +19 -0
  303. data/views/begin/index.rhtml +0 -0
  304. data/views/layouts/general.rhtml +59 -0
  305. data/views/layouts/login.rhtml +18 -0
  306. data/views/login/change_pwd.rhtml +21 -0
  307. data/views/login/expired_pwd.rhtml +19 -0
  308. data/views/login/index.rhtml +15 -0
  309. data/views/permission/index.rhtml +17 -0
  310. data/views/permission/relations.rhtml +28 -0
  311. data/views/permission/roles.rhtml +45 -0
  312. data/views/permission/tables.rhtml +53 -0
  313. data/views/roles/_form.rhtml +8 -0
  314. data/views/roles/edit.rhtml +11 -0
  315. data/views/roles/list.rhtml +28 -0
  316. data/views/roles/new.rhtml +8 -0
  317. data/views/roles/show.rhtml +14 -0
  318. data/views/shared_views/_advanced_search.rhtml +35 -0
  319. data/views/shared_views/_child_elements.rhtml +30 -0
  320. data/views/shared_views/_childs.rhtml +20 -0
  321. data/views/shared_views/_father_elements.rhtml +27 -0
  322. data/views/shared_views/_fathers.rhtml +21 -0
  323. data/views/shared_views/_fathers_header.rhtml +58 -0
  324. data/views/shared_views/_many_to_many_elements.rhtml +50 -0
  325. data/views/shared_views/_many_to_manys.rhtml +18 -0
  326. data/views/shared_views/_one_to_one_elements.rhtml +24 -0
  327. data/views/shared_views/_one_to_one_father_elements.rhtml +26 -0
  328. data/views/shared_views/_one_to_ones.rhtml +42 -0
  329. data/views/shared_views/_one_to_ones_header.rhtml +117 -0
  330. data/views/shared_views/edit_child.rhtml +89 -0
  331. data/views/shared_views/edit_many.rhtml +75 -0
  332. data/views/tables/_cascade.rhtml +10 -0
  333. data/views/tables/_field.rhtml +10 -0
  334. data/views/tables/_fk.rhtml +9 -0
  335. data/views/tables/_form.rhtml +9 -0
  336. data/views/tables/_join_table_name.rhtml +16 -0
  337. data/views/tables/_relation_types.rhtml +5 -0
  338. data/views/tables/_tables.rhtml +15 -0
  339. data/views/tables/attributes.rhtml +15 -0
  340. data/views/tables/edit.rhtml +11 -0
  341. data/views/tables/edit_field.rhtml +18 -0
  342. data/views/tables/list.rhtml +39 -0
  343. data/views/tables/new.rhtml +8 -0
  344. data/views/tables/new_field.rhtml +25 -0
  345. data/views/tables/relations.rhtml +24 -0
  346. data/views/tables/show.rhtml +24 -0
  347. metadata +518 -0
@@ -0,0 +1,13 @@
1
+ class CreateAttrTypes < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :attr_types, :force => true do |t|
4
+ t.column :name, :string, :null => false
5
+ end
6
+
7
+ AttrType.create([{:name => "string"},{:name => "integer"},{:name => "boolean"},{:name => "date"},{:name => "datetime"},{:name => "decimal"},{:name => "float"},{:name => "text"},{:name => "time"},{:name => "timestamp"}])
8
+ end
9
+
10
+ def self.down
11
+ drop_table :attr_types
12
+ end
13
+ end
@@ -0,0 +1,22 @@
1
+ require "migration_helper"
2
+
3
+ class CreateTableFields < ActiveRecord::Migration
4
+ extend MigrationHelper
5
+
6
+ def self.up
7
+ create_table :table_fields do |t|
8
+ t.column :name, :string, :null => false
9
+ t.column :attr_type_id, :int, :null => false
10
+ t.column :is_not_null, :boolean
11
+ t.column :is_unique, :boolean
12
+ t.column :table_id, :int, :null => false
13
+ end
14
+
15
+ foreign_key(:table_fields,:attr_type_id,:attr_types,:id)
16
+ foreign_key(:table_fields,:table_id,:tables,:id)
17
+ end
18
+
19
+ def self.down
20
+ drop_table :table_fields
21
+ end
22
+ end
@@ -0,0 +1,13 @@
1
+ class CreateTabOperations < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :tab_operations, :force => true do |t|
4
+ t.column :operation, :string, :null => false
5
+ end
6
+
7
+ TabOperation.create([{:operation => "create"},{:operation => "destroy"}])
8
+ end
9
+
10
+ def self.down
11
+ drop_table :tab_operations
12
+ end
13
+ end
@@ -0,0 +1,13 @@
1
+ class CreateAttrOperations < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :attr_operations, :force => true do |t|
4
+ t.column :operation, :string, :null => false
5
+ end
6
+
7
+ AttrOperation.create([{:operation => "read"},{:operation => "update"}])
8
+ end
9
+
10
+ def self.down
11
+ drop_table :attr_operations
12
+ end
13
+ end
@@ -0,0 +1,21 @@
1
+ require "migration_helper"
2
+
3
+ class CreateTabPermissions < ActiveRecord::Migration
4
+ extend MigrationHelper
5
+
6
+ def self.up
7
+ create_table :tab_permissions, :force => true do |t|
8
+ t.column :role_id, :int, :null => false
9
+ t.column :table_id, :int, :null => false
10
+ t.column :tab_operation_id, :int, :null => false
11
+ end
12
+
13
+ foreign_key(:tab_permissions,:role_id,:roles,:id)
14
+ foreign_key(:tab_permissions,:table_id,:tables,:id)
15
+ foreign_key(:tab_permissions,:tab_operation_id,:tab_operations,:id)
16
+ end
17
+
18
+ def self.down
19
+ drop_table :tab_permissions
20
+ end
21
+ end
@@ -0,0 +1,21 @@
1
+ require "migration_helper"
2
+
3
+ class CreateAttrPermissions < ActiveRecord::Migration
4
+ extend MigrationHelper
5
+
6
+ def self.up
7
+ create_table :attr_permissions, :force => true do |t|
8
+ t.column :role_id, :int, :null => false
9
+ t.column :table_field_id, :int, :null => false
10
+ t.column :attr_operation_id, :int, :null => false
11
+ end
12
+
13
+ foreign_key(:attr_permissions,:role_id,:roles,:id)
14
+ foreign_key(:attr_permissions,:table_field_id,:table_fields,:id)
15
+ foreign_key(:attr_permissions,:attr_operation_id,:attr_operations,:id)
16
+ end
17
+
18
+ def self.down
19
+ drop_table :attr_permissions
20
+ end
21
+ end
@@ -0,0 +1,23 @@
1
+ require "migration_helper"
2
+
3
+ class CreateRelations < ActiveRecord::Migration
4
+ extend MigrationHelper
5
+
6
+ def self.up
7
+ create_table :relations do |t|
8
+ t.column :table_field_id, :integer
9
+ t.column :table_id, :integer
10
+ t.column :relation_type, :string
11
+ t.column :dependent, :string
12
+ t.column :for_join_table, :string, :default => "no"
13
+ t.column :join_table, :string
14
+ end
15
+
16
+ foreign_key(:relations,:table_field_id,:table_fields,:id)
17
+ foreign_key(:relations,:table_id,:tables,:id)
18
+ end
19
+
20
+ def self.down
21
+ drop_table :relations
22
+ end
23
+ end
@@ -0,0 +1,11 @@
1
+ class CreateScaffolds < ActiveRecord::Migration
2
+ def self.up
3
+ create_table :scaffolds do |t|
4
+ t.column :name, :string, :null => false
5
+ end
6
+ end
7
+
8
+ def self.down
9
+ drop_table :scaffolds
10
+ end
11
+ end
@@ -0,0 +1,20 @@
1
+ require "migration_helper"
2
+
3
+ class CreateRelationPermissions < ActiveRecord::Migration
4
+ extend MigrationHelper
5
+
6
+ def self.up
7
+ create_table :relation_permissions do |t|
8
+ t.column :role_id, :integer
9
+ t.column :relation_id, :integer
10
+ t.column :action, :string
11
+ end
12
+
13
+ foreign_key(:relation_permissions,:role_id,:roles,:id)
14
+ foreign_key(:relation_permissions,:relation_id,:relations,:id)
15
+ end
16
+
17
+ def self.down
18
+ drop_table :relation_permissions
19
+ end
20
+ end
@@ -0,0 +1,38 @@
1
+ require 'digest/md5' #� incluso il metodo per il criptaggio della password
2
+
3
+ #il modello per la tabella admins dell'amministratore del sistema
4
+
5
+ class Admin < ActiveRecord::Base
6
+
7
+ validates_presence_of :username, :password, :message => "can't be blank!"
8
+
9
+ before_save :encrypt_password #filtro, prima del salvataggio assicura che la password sia criptata richiamando il metodo encrypt_password
10
+ attr_accessor :password_confirmation #campo accessorio per la conferma della password
11
+ validates_confirmation_of :password #il valore immesso per la password deve essere uguale al valore immesso nel campo di conferma password
12
+
13
+
14
+ def encrypt_password #metodo che inserisce nel db la password criptata
15
+ self.password = encrypt(self.password)
16
+ end
17
+
18
+ def encrypt(password) #criptaggio password
19
+ self.class.encrypt(password)
20
+ end
21
+
22
+ def self.encrypt(password) #metodo che ha il compito di criptare la password
23
+ Digest::MD5.hexdigest(password) #la password viene criptata secondo il meccanismo MD5
24
+ end
25
+
26
+ def self.autentica(user, password) #metodo dell' autenticazione dell' amministatore
27
+ find_by_username_and_password(user, encrypt(password)) #avviene la ricerca nella tabella del coppia di valori dell' username e dalle password
28
+ end
29
+
30
+ def self.check_pwd(user_pwd,pwd) #metodo di verifica, dopo il primo accesso all' utente viene chiesto di cambiare la password, questo metodo ha il compito di evitare che la nuova password scelta dall'utente sia diversa da quella precedente
31
+ if user_pwd == encrypt(pwd)
32
+ def validate
33
+ errors.add_to_base("Please choose a different password!") #se l'utente sceglie una nuova password identica alla precendete viene visualizzato un messaggio di errore
34
+ end
35
+ end
36
+ end
37
+
38
+ end
@@ -0,0 +1,3 @@
1
+ class AttrOperation < ActiveRecord::Base
2
+ has_many :attr_permissions
3
+ end
@@ -0,0 +1,5 @@
1
+ class AttrPermission < ActiveRecord::Base
2
+ belongs_to :role
3
+ belongs_to :table_field
4
+ belongs_to :attr_operation
5
+ end
@@ -0,0 +1,3 @@
1
+ class AttrType < ActiveRecord::Base
2
+ has_many :table_fields
3
+ end
@@ -0,0 +1,51 @@
1
+ require 'digest/md5'
2
+
3
+ #modello della tabella del database logins
4
+
5
+ class Login < ActiveRecord::Base
6
+
7
+ schema_validations :only => {}
8
+
9
+ before_save :encrypt_password #filtro, prima del salvataggio assicura che la password sia criptata richiamando il metodo encrypt_password
10
+
11
+ belongs_to :role
12
+
13
+ #elenco di validator
14
+ validates_presence_of :usernameMail,:username,:role_id, :message => "can't be blank!" #verifica la presenza dell' attributo usernameMail e genera un messaggio nel caso in cui l'attributo sia lasciato vuoto
15
+ validates_uniqueness_of :usernameMail, :message => "already exists!" #verifica che il valore immesso x l' attributo usernameMail non sia gi� presente, non possono esserci valori identici per questo attributo. Viene generato un messaggio nel caso in cui il valore sia gi� presente
16
+ validates_uniqueness_of :username, :message => "already exists!"
17
+ validates_length_of :password, :minimum => 8, :message => "too short! At least 8 chars." #verifica che il valore della password abbia lunghezza minima di 8 caratteri, il messaggio avvisa l'utente nel caso in cui tale vincolo non sia rispettato
18
+ attr_accessor :password_confirmation #campo accessorio per la conferma della password
19
+ validates_confirmation_of :password #il valore immesso per la password deve essere uguale al valore immesso nel campo di conferma password
20
+ validates_format_of :usernameMail, :allow_nil => true,
21
+ :with => /\A([^@\s]+)@((?:[-a-z0-9]+\.)+[a-z]{2,})\Z/i,
22
+ :message => "incorrect" #controlla che il valore immesso per l'usernameMail sia una email, con il seguente formato xxx@xx.xx
23
+
24
+
25
+
26
+ def encrypt_password #metodo che inserisce nel db la password criptata
27
+ self.password = encrypt(self.password)
28
+ end
29
+
30
+ def encrypt(password) #criptaggio password
31
+ self.class.encrypt(password)
32
+ end
33
+
34
+ def self.encrypt(password) #metodo che cripta la password secondo il meccanismo MD5
35
+ Digest::MD5.hexdigest(password)
36
+ end
37
+
38
+ def self.autentica(user, password) #metodo per l'autenticazione della coppia di nome utente e password, funziona cercando la coppia nella tabella logins
39
+ find_by_usernameMail_and_password(user, encrypt(password)) #include ci permette di poter navigare nel database sfruttando la relazione con la tabella drivers
40
+ end
41
+
42
+ def self.check_pwd(user_pwd,pwd) #metodo di verifica, dopo il primo accesso all' utente viene chiesto di cambiare la password, questo metodo ha il compito di evitare che la nuova password scelta dall'utente sia diversa da quella precedente
43
+ if user_pwd == encrypt(pwd)
44
+ def validate
45
+ errors.add_to_base("Please choose a different password!") #se l'utente sceglie una nuova password identica alla precendete viene visualizzato un messaggio di errore
46
+ end
47
+ end
48
+ end
49
+
50
+
51
+ end
@@ -0,0 +1,5 @@
1
+ class Relation < ActiveRecord::Base
2
+ belongs_to :table_field
3
+ belongs_to :table
4
+ has_many :relation_permissions, :dependent => :destroy
5
+ end
@@ -0,0 +1,4 @@
1
+ class RelationPermission < ActiveRecord::Base
2
+ belongs_to :role
3
+ belongs_to :relation
4
+ end
@@ -0,0 +1,13 @@
1
+ class Role < ActiveRecord::Base
2
+ has_many :logins
3
+ has_many :tab_permissions
4
+ has_many :tables, :through => :tab_permissions
5
+ has_many :attr_permissions
6
+ has_many :table_fields, :through => :attr_permissions
7
+ has_many :relation_permissions, :dependent => :destroy
8
+
9
+ validates_presence_of :role
10
+ validates_uniqueness_of :role
11
+ schema_validations :only => {}
12
+ end
13
+
@@ -0,0 +1,2 @@
1
+ class Scaffold < ActiveRecord::Base
2
+ end
@@ -0,0 +1,3 @@
1
+ class TabOperation < ActiveRecord::Base
2
+ has_many :tab_permissions
3
+ end
@@ -0,0 +1,5 @@
1
+ class TabPermission < ActiveRecord::Base
2
+ belongs_to :role
3
+ belongs_to :table
4
+ belongs_to :tab_operation
5
+ end
@@ -0,0 +1,18 @@
1
+ class Table < ActiveRecord::Base
2
+ has_many :tab_permissions, :dependent => :destroy
3
+ has_many :roles, :through => :tab_permissions
4
+ has_many :table_fields, :dependent => :destroy
5
+ has_many :attr_permissions, :through => :table_fields
6
+ has_many :relations, :dependent => :destroy
7
+
8
+ validates_uniqueness_of :name
9
+
10
+ def validate
11
+ #we have to check if already exists a table with the same name of that choosen from the admin
12
+ %w{admins attr_operations attr_permissions attr_types logins relation_permissions relations roles scaffolds tab_operations tab_permissions table_fields tables}.each do |t|
13
+ if t==name
14
+ errors.add_to_base("Table name already used from system! Please choose different one.")
15
+ end
16
+ end
17
+ end
18
+ end
@@ -0,0 +1,6 @@
1
+ class TableField < ActiveRecord::Base
2
+ belongs_to :table
3
+ has_many :attr_permissions, :dependent => :destroy
4
+ has_many :relations, :dependent => :destroy
5
+ belongs_to :attr_type
6
+ end
@@ -0,0 +1,186 @@
1
+ [REVISION 20080318]
2
+
3
+ [FIXED] Case-insensitive text columns not recognised.
4
+
5
+ [REVISION 20080221]
6
+
7
+ [NEW] PostgreSQL view management via create_view and drop_view.
8
+
9
+ [REVISION 20080209]
10
+
11
+ [FIXED] PostgreSQL columns named the same as database keywords (eg. type, column, user, etc.) caused NoSuchMethod errors during model validation.
12
+
13
+ [REVISION 20080110]
14
+
15
+ [FIXED] Workaround for bug in MySQL that adversely affects INFORMATION schema performance take 3 (Michael Latta).
16
+
17
+ [REVISION 20080103]
18
+
19
+ [FIXED] Workaround for bug in MySQL that adversely affects INFORMATION schema performance take 2 (Michael Latta).
20
+
21
+ [REVISION 20080102]
22
+
23
+ [FIXED] Workaround for bug in MySQL that adversely affects INFORMATION schema performance (Michael Latta).
24
+
25
+ [REVISION 20071128]
26
+
27
+ [FIXED] Workaround to ensure plugin is only ever loaded once.
28
+
29
+ [REVISION 20071013]
30
+
31
+ [NEW] Rake task (db:comments) to show database table comments.
32
+
33
+ [REVISION 20071013]
34
+
35
+ [NEW] New migration script methods: set_table_comment and clear_table_comment. Implemented for MySQL and PostgreSQL. Currently not written to schema.rb.
36
+
37
+ [REVISION 20070905]
38
+
39
+ [NEW] Explicitly ignore add_foreign_key() and remove_foreign_key() when running under SQLite. This solves issues when migrating schema from other databases.
40
+
41
+ [REVISION 20070707]
42
+
43
+ [NEW] Make the table name in table definition accessible.
44
+
45
+ [REVISION 20070529]
46
+
47
+ [FIXED] Undefined constant errors when patching connection adapters. Rails now only loads the connection adapter for the specified database (it used to load them all).
48
+
49
+ [REVISION 20070503]
50
+
51
+ [NEW] Support for SQL92 [NOT] DEFERRABLE on foreign keys.
52
+ [CHANGED] Foreign key names are now assigned by the database unless an explicit name is given (using :name).
53
+
54
+ [REVISION 20070221]
55
+
56
+ [NEW] Where possible, determine if a column is case sensitive (or not) based on the presence of case-insensitive indexes.
57
+
58
+ [REVISION 20070220]
59
+
60
+ [CHANGED] :ignore_case => true option when creating indexes change to :case_sensitive => false in keeping with the new Rails 1.2 option of the same name on validates_uniqueness_of. You may need to re-create your schema.rb (by using rake db:schema:dump) to pickup the new syntax.
61
+
62
+ [FIXED] Multi-column, case-insensitive indexes only selecting one of the columns!
63
+
64
+ [REVISION 20070219]
65
+
66
+ [FIXED] Can't drop table referenced in a foreign-key. All reverse foreign keys are now dropped before dropping the table.
67
+
68
+ [CHANGED] Upgrade to Rails 1.2.2.
69
+
70
+ [REVISION 20070217]
71
+
72
+ [NEW] Support reverse_foreign_keys for MySQL using the (typically bastardised) MySQL flavour of information_schema.
73
+
74
+ [CHANGED] Merged ForiegnKey and ForeignKeyDefinition as they were practically the same.
75
+
76
+ [REVISION 20070214]
77
+
78
+ [NEW] :name option when creating foreign keys.
79
+
80
+ [FIXED] Foreign key names are preserved in schema dumps. This means they will be copied from one database to another rather than leaving it up to the target database to make one up.
81
+
82
+ [NEW] Foreign keys are automatically assigned a name (fkey_<tablename>_col1_and_col2_and_col3) if none is specified.
83
+
84
+ [REVISION 20061206]
85
+
86
+ [NEW] Added :ignore_case option to add_index in PostgreSQL to support case-insensitive indexes. The generated indexes are actually expression indexes of the form: lower(column_name).
87
+
88
+ [REVISION 20061206]
89
+
90
+ [NEW] reverse_foreign_keys methods.
91
+
92
+ [REVISION 20061202]
93
+
94
+ [CHANGED] Use Rails 1.2 alias_method_chain.
95
+
96
+ [CHANGED] Separate modules into individual files.
97
+
98
+ [REVISION 20061129]
99
+
100
+ [FIXED] Foreign-key ON DELETE and ON UPDATE flipped in schema dump.
101
+
102
+ [REVISION 20061121]
103
+
104
+ [FIXED] MySQL doesn't support SQL92 'DROP CONSTRAINT SYNTAX'; use 'DROP FOREIGN KEY' instead.
105
+
106
+ [REVISION 20061116]
107
+
108
+ [FIXED] 'DROP FOREIGN KEY' should be 'DROP CONSTRAINT'.
109
+
110
+ [REVISION 20061114]
111
+
112
+ [CHANGED] Removed Column.required as it didn't handle updates correctly. Instead we now have Column.required_on which returns an appropriate event (nil, :save, :update).
113
+
114
+ [REVISION 20061110]
115
+
116
+ [FIXED] MySQL driver uses single AND double quotes around identifiers.
117
+
118
+ [REVISION 20061028]
119
+
120
+ [FIXED] Syntax error when generating schema under MySQL when a foreign key specifies both ON UPDATE and ON DELETE.
121
+
122
+ [REVISION 20061024]
123
+
124
+ [FIXED] Foreign key associations for key-word table-names are quoted in postgresql.
125
+
126
+ [REVISION 20061011]
127
+
128
+ [NEW] ActiveRecord::Base.base_class? returns true if the class is a base class; false otherwise.
129
+
130
+ [REVISION 20061009]
131
+
132
+ [NEW] ActiveRecord::Base.abstract_class? returns true if class name starts with 'Abstract'; false otherwise.
133
+
134
+ [REVISION 20061001]
135
+
136
+ [NEW] remove_foreign_key for completeness.
137
+
138
+ [FIXED] MySQL barfs when attempting to drop a column that participates in a foreign key constraint.
139
+
140
+ [REVISION 20060921]
141
+
142
+ [FIXED] add_foreign_key doesn't support on_delete or on_update--It doesn't do anything with the options hash.
143
+
144
+ [REVISION 20060919]
145
+
146
+ [CHANGED] Column.unique is now derived based on the presence of Column.unique_scope (which is an empty array for single column unique indexes).
147
+
148
+ [REVISION 20060915]
149
+
150
+ [NEW] Unique columns contain scoping meta-data for multi-column unique indexes. The column to be marked as unique is either the last column not ending in '_id' or simply the last column. This follows the typical composite unique index column ordering where the scoping is specified first but will attempt to find the last non-foreign-key column just-in-case. Eg, both add_index :states, [:country_id, :name] and add_index :states, [:name, :country_id] would result in the name column marked as unique with a scope of [:country_id].
151
+
152
+ [REVISION 20060913]
153
+
154
+ [NEW] Column.required: returns true if a column is marked as not allowing null and has no default.
155
+
156
+ [REVISION 20060911]
157
+
158
+ [NEW] Patch rails MysqlColumn so that empty string defaults are treated as nil when a column is marked as NOT NULL. This primarily affects schema dumps incorrectly assigning a default of 0 to numbers and '' to strings when none was originally specified.
159
+
160
+ [REVISION 20060909]
161
+
162
+ [CHANGED] Renamed from Foreign Key Support.
163
+
164
+ [NEW] ActiveRecord::Base.indexes.
165
+
166
+ [REVISION 20060906]
167
+
168
+ [FIXED] :on_update with :on_delete producing invalid SQL.
169
+
170
+ [REVISION 20060905]
171
+
172
+ [NEW] Schema dumper outputs foreign keys when available.
173
+
174
+ [NEW] Foreign-key meta-data for: PostgreSQL; and MySQL. (Still needs a bit of DRY-ing up but it works which is the first step.)
175
+
176
+ [REVISION 20060901]
177
+
178
+ [FIXED] Incorrect generation of ON UPDATE/ON DELETE clauses.
179
+
180
+ [NEW] Support :restrict in ON UPDATE/ON DELETE clauses.
181
+
182
+ [NEW] Preliminary support for querying foreign-keys in PostgreSQL.
183
+
184
+ [REVISION 20060831]
185
+
186
+ [NEW] Initial version.