faalis 0.7.0

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 (286) hide show
  1. checksums.yaml +7 -0
  2. data/LICENSE +339 -0
  3. data/README.md +45 -0
  4. data/Rakefile +42 -0
  5. data/app/assets/fonts/DroidNaskh-Bold.ttf +0 -0
  6. data/app/assets/fonts/DroidNaskh-Regular.ttf +0 -0
  7. data/app/assets/fonts/OpenSans-Bold.ttf +0 -0
  8. data/app/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
  9. data/app/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
  10. data/app/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
  11. data/app/assets/fonts/OpenSans-Italic.ttf +0 -0
  12. data/app/assets/fonts/OpenSans-Light.ttf +0 -0
  13. data/app/assets/fonts/OpenSans-LightItalic.ttf +0 -0
  14. data/app/assets/fonts/OpenSans-Regular.ttf +0 -0
  15. data/app/assets/fonts/OpenSans-Semibold.ttf +0 -0
  16. data/app/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
  17. data/app/assets/images/faalis/select2-spinner.gif +0 -0
  18. data/app/assets/images/faalis/select2.png +0 -0
  19. data/app/assets/images/faalis/select2x2.png +0 -0
  20. data/app/assets/javascripts/faalis/application.js +20 -0
  21. data/app/assets/javascripts/faalis/dashboard/angular.js +9 -0
  22. data/app/assets/javascripts/faalis/dashboard/app.js +75 -0
  23. data/app/assets/javascripts/faalis/dashboard/application.js.erb +21 -0
  24. data/app/assets/javascripts/faalis/dashboard/functions.js.erb +91 -0
  25. data/app/assets/javascripts/faalis/dashboard/init.js +38 -0
  26. data/app/assets/javascripts/faalis/dashboard/lib/angular-animate.js +1226 -0
  27. data/app/assets/javascripts/faalis/dashboard/lib/angular-gettext.js +202 -0
  28. data/app/assets/javascripts/faalis/dashboard/lib/angular-resource.js +578 -0
  29. data/app/assets/javascripts/faalis/dashboard/lib/angular-route.js +880 -0
  30. data/app/assets/javascripts/faalis/dashboard/lib/angular.js +20031 -0
  31. data/app/assets/javascripts/faalis/dashboard/lib/lodash.underscore.js +4893 -0
  32. data/app/assets/javascripts/faalis/dashboard/lib/ng-grid.js +3260 -0
  33. data/app/assets/javascripts/faalis/dashboard/lib/ng-quick-date.js +297 -0
  34. data/app/assets/javascripts/faalis/dashboard/lib/restangular.js +1066 -0
  35. data/app/assets/javascripts/faalis/dashboard/lib/select2.js +3255 -0
  36. data/app/assets/javascripts/faalis/dashboard/lib/ui.select2.js +217 -0
  37. data/app/assets/javascripts/faalis/dashboard/locale/translations.js +5 -0
  38. data/app/assets/javascripts/faalis/dashboard/modules/anim.js +32 -0
  39. data/app/assets/javascripts/faalis/dashboard/modules/api.js +32 -0
  40. data/app/assets/javascripts/faalis/dashboard/modules/auth/auth.js +34 -0
  41. data/app/assets/javascripts/faalis/dashboard/modules/auth/group.js +174 -0
  42. data/app/assets/javascripts/faalis/dashboard/modules/auth/profile.js +59 -0
  43. data/app/assets/javascripts/faalis/dashboard/modules/auth/user.js +123 -0
  44. data/app/assets/javascripts/faalis/dashboard/modules/errors.js +47 -0
  45. data/app/assets/javascripts/faalis/dashboard/modules/filter.js +44 -0
  46. data/app/assets/javascripts/faalis/dashboard/modules/list-view.js +310 -0
  47. data/app/assets/javascripts/faalis/dashboard/modules/logs.js +41 -0
  48. data/app/assets/javascripts/faalis/dashboard/modules/modules.js +50 -0
  49. data/app/assets/javascripts/faalis/dashboard/modules/nav.js.erb +97 -0
  50. data/app/assets/javascripts/faalis/dashboard/templates/application.handlebars.erb +42 -0
  51. data/app/assets/javascripts/faalis/dashboard/templates/auth/groups/details.handlebars.erb +15 -0
  52. data/app/assets/javascripts/faalis/dashboard/templates/auth/groups/index.handlebars.erb +7 -0
  53. data/app/assets/javascripts/faalis/dashboard/templates/auth/groups/new.handlebars.erb +39 -0
  54. data/app/assets/javascripts/faalis/dashboard/templates/auth/index.handlebars.erb +31 -0
  55. data/app/assets/javascripts/faalis/dashboard/templates/auth/users/details.handlebars.erb +15 -0
  56. data/app/assets/javascripts/faalis/dashboard/templates/auth/users/index.handlebars.erb +11 -0
  57. data/app/assets/javascripts/faalis/dashboard/templates/auth/users/new.handlebars.erb +33 -0
  58. data/app/assets/javascripts/faalis/dashboard/templates/components/list-view.handlebars.erb +59 -0
  59. data/app/assets/javascripts/faalis/dashboard/templates/components/model-form.handlebars.erb +3 -0
  60. data/app/assets/javascripts/faalis/dashboard/templates/modules.handlebars.erb +15 -0
  61. data/app/assets/javascripts/faalis/dashboard/templates/navigation.handlebars.erb +43 -0
  62. data/app/assets/javascripts/faalis/dashboard/templates/widgets.handlebars +23 -0
  63. data/app/assets/javascripts/faalis/dashboard/variables.js.erb +17 -0
  64. data/app/assets/javascripts/faalis/groups.js +2 -0
  65. data/app/assets/javascripts/faalis/home.js +2 -0
  66. data/app/assets/javascripts/faalis/i18n.js +13 -0
  67. data/app/assets/javascripts/faalis/locale/en.json +27 -0
  68. data/app/assets/javascripts/faalis/locale/fa.json +27 -0
  69. data/app/assets/javascripts/faalis/users.js +2 -0
  70. data/app/assets/stylesheets/faalis/base.css.scss +264 -0
  71. data/app/assets/stylesheets/faalis/dashboard/dashboard.css.scss +226 -0
  72. data/app/assets/stylesheets/faalis/dashboard/list_view.css.scss +169 -0
  73. data/app/assets/stylesheets/faalis/dashboard/ltr/application.css +26 -0
  74. data/app/assets/stylesheets/faalis/dashboard/ltr/base.css.scss.erb +28 -0
  75. data/app/assets/stylesheets/faalis/dashboard/ltr/buttons.css.scss.erb +48 -0
  76. data/app/assets/stylesheets/faalis/dashboard/ltr/direction.css.scss +38 -0
  77. data/app/assets/stylesheets/faalis/dashboard/ltr/foundation_and_overrides.css.scss +1014 -0
  78. data/app/assets/stylesheets/faalis/dashboard/ng-grid.css.scss +442 -0
  79. data/app/assets/stylesheets/faalis/dashboard/ng-quick-date-default-theme.css.scss +20 -0
  80. data/app/assets/stylesheets/faalis/dashboard/ng-quick-date.css.scss +19 -0
  81. data/app/assets/stylesheets/faalis/dashboard/rtl/application.css +26 -0
  82. data/app/assets/stylesheets/faalis/dashboard/rtl/base.css.scss.erb +31 -0
  83. data/app/assets/stylesheets/faalis/dashboard/rtl/base.css_flymake.scss +25 -0
  84. data/app/assets/stylesheets/faalis/dashboard/rtl/buttons.css.scss.erb +45 -0
  85. data/app/assets/stylesheets/faalis/dashboard/rtl/direction.css.scss +37 -0
  86. data/app/assets/stylesheets/faalis/dashboard/rtl/foundation_and_overrides.css.scss +1014 -0
  87. data/app/assets/stylesheets/faalis/dashboard/select2.css.scss.erb +618 -0
  88. data/app/assets/stylesheets/faalis/dashboard/sidebar.css.scss +93 -0
  89. data/app/assets/stylesheets/faalis/devise.css.scss +34 -0
  90. data/app/assets/stylesheets/faalis/groups.css +4 -0
  91. data/app/assets/stylesheets/faalis/home.css.scss +14 -0
  92. data/app/assets/stylesheets/faalis/ltr/application.css +20 -0
  93. data/app/assets/stylesheets/faalis/ltr/buttons.css.scss.erb +48 -0
  94. data/app/assets/stylesheets/faalis/ltr/foundation_and_overrides.scss.erb +1012 -0
  95. data/app/assets/stylesheets/faalis/mixins.css.scss +15 -0
  96. data/app/assets/stylesheets/faalis/rtl/application.css +20 -0
  97. data/app/assets/stylesheets/faalis/rtl/buttons.css.scss.erb +48 -0
  98. data/app/assets/stylesheets/faalis/rtl/foundation_and_overrides.scss.erb +1012 -0
  99. data/app/assets/stylesheets/faalis/users.css +4 -0
  100. data/app/assets/stylesheets/faalis/variables.css.scss +102 -0
  101. data/app/controllers/faalis/api/v1/groups_controller.rb +75 -0
  102. data/app/controllers/faalis/api/v1/logs_controller.rb +12 -0
  103. data/app/controllers/faalis/api/v1/permissions_controller.rb +17 -0
  104. data/app/controllers/faalis/api/v1/profiles_controller.rb +42 -0
  105. data/app/controllers/faalis/api/v1/users_controller.rb +75 -0
  106. data/app/controllers/faalis/api_controller.rb +51 -0
  107. data/app/controllers/faalis/application_controller.rb +34 -0
  108. data/app/controllers/faalis/dashboard_controller.rb +44 -0
  109. data/app/controllers/faalis/home_controller.rb +19 -0
  110. data/app/controllers/faalis/omniauth/callbacks_controller.rb +43 -0
  111. data/app/helpers/faalis/application_helper.rb +4 -0
  112. data/app/helpers/faalis/dashboard_helper.rb +5 -0
  113. data/app/helpers/faalis/groups_helper.rb +4 -0
  114. data/app/helpers/faalis/home_helper.rb +4 -0
  115. data/app/helpers/faalis/users_helper.rb +4 -0
  116. data/app/models/ability.rb +42 -0
  117. data/app/models/faalis/group.rb +27 -0
  118. data/app/models/faalis/permission.rb +15 -0
  119. data/app/models/faalis/user.rb +81 -0
  120. data/app/views/angularjs_templates/#index.html# +8 -0
  121. data/app/views/angularjs_templates/auth/groups/details.html +21 -0
  122. data/app/views/angularjs_templates/auth/groups/index.html +5 -0
  123. data/app/views/angularjs_templates/auth/groups/new.html +41 -0
  124. data/app/views/angularjs_templates/auth/index.html +30 -0
  125. data/app/views/angularjs_templates/auth/profile/edit.html +54 -0
  126. data/app/views/angularjs_templates/auth/users/details.html +28 -0
  127. data/app/views/angularjs_templates/auth/users/index.html +6 -0
  128. data/app/views/angularjs_templates/auth/users/new.html +56 -0
  129. data/app/views/angularjs_templates/filter/index.html +15 -0
  130. data/app/views/angularjs_templates/index.html +8 -0
  131. data/app/views/angularjs_templates/list-view/index.html +81 -0
  132. data/app/views/angularjs_templates/locale/fa.po +25 -0
  133. data/app/views/angularjs_templates/locale/templates.pot +24 -0
  134. data/app/views/angularjs_templates/logs/index.html +6 -0
  135. data/app/views/angularjs_templates/modules.html +17 -0
  136. data/app/views/angularjs_templates/nav.html.erb +38 -0
  137. data/app/views/devise/confirmations/new.html.erb +34 -0
  138. data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
  139. data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
  140. data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
  141. data/app/views/devise/passwords/edit.html.erb +44 -0
  142. data/app/views/devise/passwords/new.html.erb +32 -0
  143. data/app/views/devise/registrations/edit.html.erb +29 -0
  144. data/app/views/devise/registrations/new.html.erb +91 -0
  145. data/app/views/devise/sessions/new.html.erb +98 -0
  146. data/app/views/devise/shared/_links.erb +25 -0
  147. data/app/views/devise/unlocks/new.html.erb +30 -0
  148. data/app/views/faalis/api/v1/groups/create.json.jbuilder +4 -0
  149. data/app/views/faalis/api/v1/groups/destroy.html.erb +2 -0
  150. data/app/views/faalis/api/v1/groups/destroy.json.jbuilder +1 -0
  151. data/app/views/faalis/api/v1/groups/edit.html.erb +2 -0
  152. data/app/views/faalis/api/v1/groups/index.html.erb +2 -0
  153. data/app/views/faalis/api/v1/groups/index.json.jbuilder +6 -0
  154. data/app/views/faalis/api/v1/groups/new.html.erb +2 -0
  155. data/app/views/faalis/api/v1/groups/show.html.erb +2 -0
  156. data/app/views/faalis/api/v1/groups/show.json.jbuilder +5 -0
  157. data/app/views/faalis/api/v1/groups/update.json.jbuilder +4 -0
  158. data/app/views/faalis/api/v1/logs/index.json.jbuilder +1 -0
  159. data/app/views/faalis/api/v1/permissions/index.json.jbuilder +1 -0
  160. data/app/views/faalis/api/v1/users/create.html.erb +2 -0
  161. data/app/views/faalis/api/v1/users/create.json.jbuilder +1 -0
  162. data/app/views/faalis/api/v1/users/destroy.json.jbuilder +1 -0
  163. data/app/views/faalis/api/v1/users/distroy.html.erb +2 -0
  164. data/app/views/faalis/api/v1/users/edit.html.erb +2 -0
  165. data/app/views/faalis/api/v1/users/index.html.erb +2 -0
  166. data/app/views/faalis/api/v1/users/index.json.jbuilder +4 -0
  167. data/app/views/faalis/api/v1/users/show.html.erb +2 -0
  168. data/app/views/faalis/api/v1/users/show.json.jbuilder +2 -0
  169. data/app/views/faalis/api/v1/users/update.json.jbuilder +1 -0
  170. data/app/views/faalis/dashboard/index.html.erb +37 -0
  171. data/app/views/faalis/dashboard/login_required_page.html.erb +5 -0
  172. data/app/views/faalis/home/index.html.erb +119 -0
  173. data/app/views/layouts/faalis/application.html.erb +90 -0
  174. data/app/views/layouts/faalis/dashboard.html.erb +21 -0
  175. data/config/initializers/devise.rb +28 -0
  176. data/config/locales/devise.en.yml +59 -0
  177. data/config/locales/devise.fa.yml +56 -0
  178. data/config/locales/fa/LC_MESSAGES/faalis.mo +0 -0
  179. data/config/locales/fa/faalis.po +181 -0
  180. data/config/locales/fa/messages.mo +0 -0
  181. data/config/locales/faalis.pot +181 -0
  182. data/config/routes.rb +36 -0
  183. data/db/migrate/20131013091000_devise_create_red_base_users.rb +64 -0
  184. data/db/migrate/20131020124701_create_red_base_groups.rb +9 -0
  185. data/db/migrate/20131021170923_create_red_base_permissions.rb +10 -0
  186. data/db/migrate/20131123120422_add_permissions_groups_table.rb +8 -0
  187. data/db/seeds.rb +15 -0
  188. data/lib/faalis.rb +30 -0
  189. data/lib/faalis/active_record.rb +64 -0
  190. data/lib/faalis/api.rb +61 -0
  191. data/lib/faalis/api/groups_api.rb +41 -0
  192. data/lib/faalis/api/permissions_api.rb +24 -0
  193. data/lib/faalis/api/root.rb +15 -0
  194. data/lib/faalis/api/users_api.rb +20 -0
  195. data/lib/faalis/cucumber.rb +25 -0
  196. data/lib/faalis/cucumber/auth.rb +45 -0
  197. data/lib/faalis/cucumber/exceptions.rb +40 -0
  198. data/lib/faalis/cucumber/interaction.rb +43 -0
  199. data/lib/faalis/cucumber/query.rb +28 -0
  200. data/lib/faalis/cucumber/urls.rb +76 -0
  201. data/lib/faalis/dashboard.rb +60 -0
  202. data/lib/faalis/dashboard/controller.rb +42 -0
  203. data/lib/faalis/dashboard/module.rb +45 -0
  204. data/lib/faalis/engine.rb +128 -0
  205. data/lib/faalis/exceptions.rb +26 -0
  206. data/lib/faalis/i18n.rb +35 -0
  207. data/lib/faalis/initialize.rb +7 -0
  208. data/lib/faalis/omniauth.rb +24 -0
  209. data/lib/faalis/omniauth/callbacks.rb +58 -0
  210. data/lib/faalis/plugins.rb +44 -0
  211. data/lib/faalis/version.rb +22 -0
  212. data/lib/faalis_plugin.rb +476 -0
  213. data/lib/generators/faalis/USAGE +8 -0
  214. data/lib/generators/faalis/angularjs_resource_generator.rb +74 -0
  215. data/lib/generators/faalis/install_all_generator.rb +38 -0
  216. data/lib/generators/faalis/install_generator.rb +42 -0
  217. data/lib/generators/faalis/install_specs_generator.rb +48 -0
  218. data/lib/generators/faalis/js_scaffold_generator.rb +273 -0
  219. data/lib/generators/faalis/templates/README +41 -0
  220. data/lib/generators/faalis/templates/SPECS +13 -0
  221. data/lib/generators/faalis/templates/angularjs/details.html.erb +20 -0
  222. data/lib/generators/faalis/templates/angularjs/index.html.erb +62 -0
  223. data/lib/generators/faalis/templates/angularjs/module.js.erb +309 -0
  224. data/lib/generators/faalis/templates/angularjs/new.html.erb +105 -0
  225. data/lib/generators/faalis/templates/api/controller.rb.erb +56 -0
  226. data/lib/generators/faalis/templates/devise.rb +251 -0
  227. data/lib/generators/faalis/templates/faalis.rb +14 -0
  228. data/lib/generators/faalis/templates/fast_gettext.rb +4 -0
  229. data/lib/generators/faalis/templates/features/api.feature +92 -0
  230. data/lib/generators/faalis/templates/features/api.step.rb +7 -0
  231. data/lib/generators/faalis/templates/features/step_definitions/email_steps.rb +206 -0
  232. data/lib/generators/faalis/templates/features/support/email_spec.rb +1 -0
  233. data/lib/generators/faalis/templates/features/support/env.rb +79 -0
  234. data/lib/generators/faalis/templates/formtastic.rb +76 -0
  235. data/lib/generators/faalis/templates/js_scaffold.README +25 -0
  236. data/lib/generators/faalis/templates/seeds.rb +1 -0
  237. data/lib/generators/faalis/templates/spec/factories/groups.rb +5 -0
  238. data/lib/generators/faalis/templates/spec/factories/users.rb +10 -0
  239. data/lib/generators/faalis/templates/spec/spec_helper.rb +69 -0
  240. data/lib/generators/faalis/templates/spec/support/devise.rb +3 -0
  241. data/lib/generators/faalis/templates/views/create.json.jbuilder.erb +2 -0
  242. data/lib/generators/faalis/templates/views/destroy.json.jbuilder.erb +1 -0
  243. data/lib/generators/faalis/templates/views/index.json.jbuilder.erb +10 -0
  244. data/lib/generators/faalis/templates/views/show.json.jbuilder.erb +7 -0
  245. data/lib/generators/faalis/templates/views/update.json.jbuilder.erb +6 -0
  246. data/lib/generators/faalis/views_generator.rb +41 -0
  247. data/lib/tasks/faalis_tasks.rake +23 -0
  248. data/lib/tasks/grunt/Gruntfile.js +25 -0
  249. data/spec/dummy/README.rdoc +28 -0
  250. data/spec/dummy/Rakefile +6 -0
  251. data/spec/dummy/app/assets/javascripts/application.js +13 -0
  252. data/spec/dummy/app/assets/stylesheets/application.css +13 -0
  253. data/spec/dummy/app/controllers/application_controller.rb +5 -0
  254. data/spec/dummy/app/helpers/application_helper.rb +2 -0
  255. data/spec/dummy/app/views/layouts/application.html.erb +14 -0
  256. data/spec/dummy/bin/bundle +3 -0
  257. data/spec/dummy/bin/rails +4 -0
  258. data/spec/dummy/bin/rake +4 -0
  259. data/spec/dummy/config.ru +4 -0
  260. data/spec/dummy/config/application.rb +23 -0
  261. data/spec/dummy/config/boot.rb +5 -0
  262. data/spec/dummy/config/database.yml +25 -0
  263. data/spec/dummy/config/environment.rb +5 -0
  264. data/spec/dummy/config/environments/development.rb +29 -0
  265. data/spec/dummy/config/environments/production.rb +80 -0
  266. data/spec/dummy/config/environments/test.rb +36 -0
  267. data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
  268. data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
  269. data/spec/dummy/config/initializers/inflections.rb +16 -0
  270. data/spec/dummy/config/initializers/mime_types.rb +5 -0
  271. data/spec/dummy/config/initializers/secret_token.rb +12 -0
  272. data/spec/dummy/config/initializers/session_store.rb +3 -0
  273. data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
  274. data/spec/dummy/config/locales/en.yml +23 -0
  275. data/spec/dummy/config/routes.rb +4 -0
  276. data/spec/dummy/db/test.sqlite3 +0 -0
  277. data/spec/dummy/log/development.log +0 -0
  278. data/spec/dummy/log/test.log +15 -0
  279. data/spec/dummy/public/404.html +58 -0
  280. data/spec/dummy/public/422.html +58 -0
  281. data/spec/dummy/public/500.html +57 -0
  282. data/spec/dummy/public/favicon.ico +0 -0
  283. data/spec/dummy/tmp/ember-rails/ember-data.js +10204 -0
  284. data/spec/dummy/tmp/ember-rails/ember.js +36991 -0
  285. data/spec/spec_helper.rb +52 -0
  286. metadata +678 -0
@@ -0,0 +1,19 @@
1
+ require_dependency "faalis/application_controller"
2
+
3
+ module Faalis
4
+ class HomeController < ApplicationController
5
+ include Faalis::Dashboard::Module
6
+
7
+ name = "home"
8
+ # priority 100
9
+
10
+ # show_me_on :header
11
+
12
+ def index
13
+ end
14
+
15
+ def content_for_header
16
+ render "homelink"
17
+ end
18
+ end
19
+ end
@@ -0,0 +1,43 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Red Base - Basic website skel engine
3
+ # Copyright (C) 2012-2013 Yellowen
4
+ #
5
+ # This program is free software; you can redistribute it and/or modify
6
+ # it under the terms of the GNU General Public License as published by
7
+ # the Free Software Foundation; either version 2 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU General Public License along
16
+ # with this program; if not, write to the Free Software Foundation, Inc.,
17
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
+ # -----------------------------------------------------------------------------
19
+
20
+ module Faalis
21
+ module Omniauth
22
+ class CallbacksController < Devise::OmniauthCallbacksController
23
+
24
+ # Create a method for each service you want to override
25
+ # If you do not provide a method a default one will used
26
+ # Here is facebook method for an example
27
+ def facebook
28
+ create_or_find_user
29
+
30
+ if @user.persisted?
31
+ sign_in_and_redirect @user, :event => :authentication #this will throw if @user is not activated
32
+ set_flash_message(:notice, :success, :kind => "Facebook") if is_navigational_format?
33
+ else
34
+ session["devise.facebook_data"] = request.env["omniauth.auth"]
35
+ redirect_to new_user_registration_url
36
+ end
37
+ end
38
+
39
+ include Faalis::Omniauth::Callbacks
40
+
41
+ end
42
+ end
43
+ end
@@ -0,0 +1,4 @@
1
+ module Faalis
2
+ module ApplicationHelper
3
+ end
4
+ end
@@ -0,0 +1,5 @@
1
+ module Faalis
2
+ module DashboardHelper
3
+
4
+ end
5
+ end
@@ -0,0 +1,4 @@
1
+ module Faalis
2
+ module GroupsHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Faalis
2
+ module HomeHelper
3
+ end
4
+ end
@@ -0,0 +1,4 @@
1
+ module Faalis
2
+ module UsersHelper
3
+ end
4
+ end
@@ -0,0 +1,42 @@
1
+ class Ability
2
+ include CanCan::Ability
3
+
4
+ def initialize(user)
5
+ # Define abilities for the passed in user here. For example:
6
+ #
7
+ # user ||= User.new # guest user (not logged in)
8
+ # if user.admin?
9
+ # can :manage, :all
10
+ # else
11
+ # can :read, :all
12
+ # end
13
+ #
14
+ # The first argument to `can` is the action you are giving the user
15
+ # permission to do.
16
+ # If you pass :manage it will apply to every action. Other common actions
17
+ # here are :read, :create, :update and :destroy.
18
+ #
19
+ # The second argument is the resource the user can perform the action on.
20
+ # If you pass :all it will apply to every resource. Otherwise pass a Ruby
21
+ # class of the resource.
22
+ #
23
+ # The third argument is an optional hash of conditions to further filter the
24
+ # objects.
25
+ # For example, here the user can only update published articles.
26
+ #
27
+ # can :update, Article, :published => true
28
+ #
29
+ # See the wiki for details:
30
+ # https://github.com/ryanb/cancan/wiki/Defining-Abilities
31
+
32
+ # IMPORTANT: Remove this snippet with more suitable one
33
+ # TODO: Remove this snippet with more suitable one
34
+ user.group.permissions.each do |permission|
35
+ can permission.permission_type.to_sym, permission.model.constantize
36
+ end
37
+
38
+ if user and user.group_id == 1
39
+ can :manage, :all
40
+ end
41
+ end
42
+ end
@@ -0,0 +1,27 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Red Base - Basic website skel engine
3
+ # Copyright (C) 2012-2013 Yellowen
4
+ #
5
+ # This program is free software; you can redistribute it and/or modify
6
+ # it under the terms of the GNU General Public License as published by
7
+ # the Free Software Foundation; either version 2 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU General Public License along
16
+ # with this program; if not, write to the Free Software Foundation, Inc.,
17
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
+ # -----------------------------------------------------------------------------
19
+
20
+ module Faalis
21
+ class Group < ActiveRecord::Base
22
+ validates :name, :presence => true
23
+
24
+ has_and_belongs_to_many :permissions
25
+ has_many :users
26
+ end
27
+ end
@@ -0,0 +1,15 @@
1
+ module Faalis
2
+ class Permission < ActiveRecord::Base
3
+
4
+ has_and_belongs_to_many :groups
5
+
6
+ def string_repr
7
+ _("can %s %s") % [_(self.permission_type.to_s), self.model.underscore.humanize]
8
+ end
9
+
10
+ def id_repr
11
+ "#{self.permission_type.to_s}|#{self.model}"
12
+ end
13
+
14
+ end
15
+ end
@@ -0,0 +1,81 @@
1
+ # -----------------------------------------------------------------------------
2
+ # Red Base - Basic website skel engine
3
+ # Copyright (C) 2012-2013 Yellowen
4
+ #
5
+ # This program is free software; you can redistribute it and/or modify
6
+ # it under the terms of the GNU General Public License as published by
7
+ # the Free Software Foundation; either version 2 of the License, or
8
+ # (at your option) any later version.
9
+ #
10
+ # This program is distributed in the hope that it will be useful,
11
+ # but WITHOUT ANY WARRANTY; without even the implied warranty of
12
+ # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
13
+ # GNU General Public License for more details.
14
+ #
15
+ # You should have received a copy of the GNU General Public License along
16
+ # with this program; if not, write to the Free Software Foundation, Inc.,
17
+ # 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.
18
+ # -----------------------------------------------------------------------------
19
+
20
+ module Faalis
21
+ class User < ActiveRecord::Base
22
+ validates :password, presence: true, length: {minimum: 5, maximum: 120}, on: :create
23
+ validates :password, length: {minimum: 5, maximum: 120}, on: :update, allow_blank: true
24
+ validates :email, presence: true, length: {minimum: 6}
25
+ #validates :password,presence: true, length: { in: 6..20 }
26
+ # Include default devise modules. Others available are:
27
+ # :token_authenticatable, :confirmable,
28
+ # :lockable, :timeoutable and :omniauthable
29
+ @@devise_options = [:database_authenticatable,
30
+ :registerable,
31
+ :recoverable,
32
+ :rememberable,
33
+ :trackable,
34
+ :lockable,
35
+ :timeoutable,
36
+ :validatable]
37
+
38
+ if Rails.env.production?
39
+ @@devise_options << :confirmable
40
+ end
41
+
42
+ if Devise.omniauth_configs.any?
43
+ @@devise_options << :omniauthable
44
+ @@devise_options << {:omniauth_providers => Devise.omniauth_configs.keys}
45
+ belongs_to :group
46
+ end
47
+
48
+ devise *@@devise_options
49
+
50
+ def password_required?
51
+ # TODO: nil? is not suitable for here we should use empty? or blink?
52
+
53
+ (provider.nil? || password.nil?) && super
54
+ end
55
+
56
+ def self.find_from_oauth(auth, signed_in_resource=nil)
57
+ user = User.where(:provider => auth.provider, :uid => auth.uid).first
58
+
59
+ first_name = auth.info.first_name
60
+ last_name = auth.info.last_name
61
+
62
+ if first_name.blank?
63
+ # With first_name being blank last_name is probably is blank too
64
+ name = auth.info.name.split(" ")
65
+ first_name = name[0]
66
+ last_name = name[1,] || ""
67
+ end
68
+ unless user
69
+ user = User.create(first_name: first_name,
70
+ last_name: last_name,
71
+ provider: auth.provider,
72
+ uid: auth.uid,
73
+ email: auth.info.email,
74
+ password: Devise.friendly_token[0,20])
75
+ end
76
+ user
77
+
78
+ end
79
+
80
+ end
81
+ end
@@ -0,0 +1,8 @@
1
+ <div class="row">
2
+ <div class="small-2 columns widget whitewidget text-center">
3
+ <h3>34 <i class="fa fa-user"></i></h3>
4
+ </div>
5
+ <div class="small-2 columns widget greenwidget">
6
+ sdfsdf
7
+ </div>
8
+ </div>
@@ -0,0 +1,21 @@
1
+ <div class="details">
2
+ <p>
3
+ <b translate>Group Name :</b>{{this.object.name}}
4
+ </p>
5
+
6
+ <p>
7
+ <b translate>Permissions :</b>
8
+ <ul>
9
+ <li ng-repeat="perm in this.object.permissions">{{ perm.string_repr }}</li>
10
+ </ul>
11
+ </p>
12
+
13
+ <ul class="button-group float-right">
14
+ <a ng-href="#/auth/groups/{{ this.object.id }}/edit" class="small">
15
+ <span class="fa fa-edit"></span> <span translated>Edit</span>
16
+ </a>
17
+ <!--<a ng-href="#/auth/groups/{{ this.object.id }}" class="small">
18
+ <span class="fa fa-eye"></span><span translated>Show</span>-->
19
+ </a>
20
+ </ul>
21
+ </div>
@@ -0,0 +1,5 @@
1
+ <list-view buttons="buttons" objects="groups" title-attribute="'name'" details-template="details_template" item-per-page="10" on_delete="on_delete">
2
+ <div class="small-6 column text-left clearpadding">
3
+ <h3><i class="fa fa-group"></i> <span translate>Groups</span></h3>
4
+ </div>
5
+ </list-view>
@@ -0,0 +1,41 @@
1
+ <div class="newform">
2
+ <fieldset class="form">
3
+
4
+ <legend ng-if="!editing"><span translate>New Group</span></legend>
5
+ <legend ng-if="editing"><span translate>Edit Group</span></legend>
6
+
7
+ <div class="row">
8
+ <div class="small-4 columns">
9
+ <label translate>Name :</label>
10
+ <input id="id_name" ng-model="new_name" type="text" class="">
11
+ <small id="id_name_msg"></small>
12
+ </div>
13
+ </div>
14
+
15
+ <div class="row">
16
+ <label for="permissions" translate>Permissions</label>
17
+
18
+ <div class="small-10 columns permissions">
19
+
20
+ <div class="row">
21
+ <div id="id_permissions" class="small-8 columns field">
22
+ <ul>
23
+
24
+ <li ng-repeat="permission in permissions" id="{{permission.name}}" class="" ng-click="select_permission(permission)"> <i ng-show="is_selected(permission)" class="fa fa-check"></i> {{ permission.string }} </li>
25
+
26
+ </ul>
27
+ </div>
28
+ <small id="id_permissions_msg"></small>
29
+ </div>
30
+ </div>
31
+ </div>
32
+ </fieldset>
33
+
34
+
35
+ <div class="row">
36
+ <div class="small-6 columns">
37
+ <button class="btn small green" ng-click="save()"><i class="fa fa-check"></i> <span translate>Save</span></button>
38
+ <button class="btn small red" ng-click="cancel()"><i class="fa fa-times"></i><span translate>Cansel</span></button>
39
+ </div>
40
+ </div>
41
+ </div>
@@ -0,0 +1,30 @@
1
+ <div class="row clearmargin">
2
+
3
+ <div class="columns large-5 small-offset-1 clearpadding">
4
+
5
+ <a href="#/auth/users">
6
+ <div class="widget red">
7
+ <div class="text-center">
8
+ <span class="icon text-4x"><i class="fa fa-user"></i></span>
9
+ <span class="text-2x" translate>Users</span>
10
+ </div>
11
+
12
+ </div>
13
+ </a>
14
+
15
+ </div>
16
+
17
+
18
+ <div class="columns large-5 clearpadding">
19
+
20
+ <a href="#/auth/groups">
21
+ <div class="widget blue">
22
+ <div class=" text-center">
23
+ <span class="icon text-4x"><i class="fa fa-group"></i></span>
24
+ <span class="text-2x" translate>Groups</span>
25
+ </div>
26
+ </div>
27
+ </a>
28
+ </div>
29
+
30
+ </div>
@@ -0,0 +1,54 @@
1
+ <div class="newform">
2
+ <fieldset class="form">
3
+
4
+ <legend translate>Edit Profile</legend>
5
+
6
+ <div class="row">
7
+ <div class="small-4 columns">
8
+ <label for="first_name" translate>First Name :</label>
9
+ <input id="id_first_name" type="text" name="first_name" required ng-model="first_name" required>
10
+ <small id="id_first_name_msg"></small>
11
+ </div>
12
+
13
+ <div class="small-4 columns float-left small-offset-2">
14
+ <label for="last_name" translate>Last Name :</label>
15
+ <input id="id_last_name" type="text" name="last_name" required ng-model="last_name">
16
+ <small id="id_last_name_msg"></small>
17
+
18
+ </div>
19
+ </div>
20
+
21
+ <div class="row">
22
+ <div class="small-4 columns">
23
+ <label for="password" translate>Password :</label>
24
+ <input id="id_password" type="password" name="password" required ng-model="password" required>
25
+ <small id="id_first_name_msg"></small>
26
+ </div>
27
+
28
+ <div class="small-4 columns float-left small-offset-2">
29
+ <label for="password_confirmation" translate>Confirm Password :</label>
30
+ <input id="id_password_confirmation" type="password" name="password_confirmation" required ng-model="password_confirmation">
31
+ <small id="id_password_confirmation_msg"></small>
32
+
33
+ </div>
34
+ </div>
35
+ <div class="row">
36
+
37
+ <div class="small-4 columns">
38
+ <label for="email" translate>E-mail :</label>
39
+ <input id="id_email" type="email" name="email" required ng-model="email">
40
+ <small id="id_email_msg"></small>
41
+
42
+ </div>
43
+ </div>
44
+
45
+ </fieldset>
46
+
47
+ <div class="row">
48
+ <div class="small-4 columns">
49
+ <button ng-click="save()" class="btn small green" ng-disabled="form.first_name.$pristine || form.first_name.$dirty && form.fist_name.$invalid"><i class="fa fa-check"></i> <span translate>Save</span></button>
50
+ <button ng-click="cancel()" class="btn small red"><i class="fa fa-times"></i> <span translate>Cancel</span></button>
51
+ </div>
52
+ </div>
53
+
54
+ </div>
@@ -0,0 +1,28 @@
1
+ <div class="details">
2
+ <p >
3
+ <b translate>First Name :</b>{{this.object.first_name}}
4
+ </p>
5
+
6
+ <p>
7
+ <b translate>Last Name :</b>{{this.object.last_name}}
8
+ </p>
9
+
10
+ <p>
11
+ <b translate>E-mail :</b>{{this.object.email}}
12
+ </p>
13
+ <p>
14
+ <b translate>Group :</b>{{this.object.group.name}}
15
+ </p>
16
+
17
+ <ul class="button-group float-right">
18
+ <a href="#/auth/users/{{this.object.id}}/edit" class="small">
19
+ <span class="fa fa-edit"></span> <span translated>Edit</span>
20
+ </a>
21
+ <a href="" class="small">
22
+ <span class="fa fa-eye"></span><span translated>Show</span>
23
+ </a>
24
+ <a href="" class="small">
25
+ <span class="fa fa-check-circle-o"></span><span translated>Active</span>
26
+ </a>
27
+ </ul>
28
+ </div>