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.
- checksums.yaml +7 -0
- data/LICENSE +339 -0
- data/README.md +45 -0
- data/Rakefile +42 -0
- data/app/assets/fonts/DroidNaskh-Bold.ttf +0 -0
- data/app/assets/fonts/DroidNaskh-Regular.ttf +0 -0
- data/app/assets/fonts/OpenSans-Bold.ttf +0 -0
- data/app/assets/fonts/OpenSans-BoldItalic.ttf +0 -0
- data/app/assets/fonts/OpenSans-ExtraBold.ttf +0 -0
- data/app/assets/fonts/OpenSans-ExtraBoldItalic.ttf +0 -0
- data/app/assets/fonts/OpenSans-Italic.ttf +0 -0
- data/app/assets/fonts/OpenSans-Light.ttf +0 -0
- data/app/assets/fonts/OpenSans-LightItalic.ttf +0 -0
- data/app/assets/fonts/OpenSans-Regular.ttf +0 -0
- data/app/assets/fonts/OpenSans-Semibold.ttf +0 -0
- data/app/assets/fonts/OpenSans-SemiboldItalic.ttf +0 -0
- data/app/assets/images/faalis/select2-spinner.gif +0 -0
- data/app/assets/images/faalis/select2.png +0 -0
- data/app/assets/images/faalis/select2x2.png +0 -0
- data/app/assets/javascripts/faalis/application.js +20 -0
- data/app/assets/javascripts/faalis/dashboard/angular.js +9 -0
- data/app/assets/javascripts/faalis/dashboard/app.js +75 -0
- data/app/assets/javascripts/faalis/dashboard/application.js.erb +21 -0
- data/app/assets/javascripts/faalis/dashboard/functions.js.erb +91 -0
- data/app/assets/javascripts/faalis/dashboard/init.js +38 -0
- data/app/assets/javascripts/faalis/dashboard/lib/angular-animate.js +1226 -0
- data/app/assets/javascripts/faalis/dashboard/lib/angular-gettext.js +202 -0
- data/app/assets/javascripts/faalis/dashboard/lib/angular-resource.js +578 -0
- data/app/assets/javascripts/faalis/dashboard/lib/angular-route.js +880 -0
- data/app/assets/javascripts/faalis/dashboard/lib/angular.js +20031 -0
- data/app/assets/javascripts/faalis/dashboard/lib/lodash.underscore.js +4893 -0
- data/app/assets/javascripts/faalis/dashboard/lib/ng-grid.js +3260 -0
- data/app/assets/javascripts/faalis/dashboard/lib/ng-quick-date.js +297 -0
- data/app/assets/javascripts/faalis/dashboard/lib/restangular.js +1066 -0
- data/app/assets/javascripts/faalis/dashboard/lib/select2.js +3255 -0
- data/app/assets/javascripts/faalis/dashboard/lib/ui.select2.js +217 -0
- data/app/assets/javascripts/faalis/dashboard/locale/translations.js +5 -0
- data/app/assets/javascripts/faalis/dashboard/modules/anim.js +32 -0
- data/app/assets/javascripts/faalis/dashboard/modules/api.js +32 -0
- data/app/assets/javascripts/faalis/dashboard/modules/auth/auth.js +34 -0
- data/app/assets/javascripts/faalis/dashboard/modules/auth/group.js +174 -0
- data/app/assets/javascripts/faalis/dashboard/modules/auth/profile.js +59 -0
- data/app/assets/javascripts/faalis/dashboard/modules/auth/user.js +123 -0
- data/app/assets/javascripts/faalis/dashboard/modules/errors.js +47 -0
- data/app/assets/javascripts/faalis/dashboard/modules/filter.js +44 -0
- data/app/assets/javascripts/faalis/dashboard/modules/list-view.js +310 -0
- data/app/assets/javascripts/faalis/dashboard/modules/logs.js +41 -0
- data/app/assets/javascripts/faalis/dashboard/modules/modules.js +50 -0
- data/app/assets/javascripts/faalis/dashboard/modules/nav.js.erb +97 -0
- data/app/assets/javascripts/faalis/dashboard/templates/application.handlebars.erb +42 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/groups/details.handlebars.erb +15 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/groups/index.handlebars.erb +7 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/groups/new.handlebars.erb +39 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/index.handlebars.erb +31 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/users/details.handlebars.erb +15 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/users/index.handlebars.erb +11 -0
- data/app/assets/javascripts/faalis/dashboard/templates/auth/users/new.handlebars.erb +33 -0
- data/app/assets/javascripts/faalis/dashboard/templates/components/list-view.handlebars.erb +59 -0
- data/app/assets/javascripts/faalis/dashboard/templates/components/model-form.handlebars.erb +3 -0
- data/app/assets/javascripts/faalis/dashboard/templates/modules.handlebars.erb +15 -0
- data/app/assets/javascripts/faalis/dashboard/templates/navigation.handlebars.erb +43 -0
- data/app/assets/javascripts/faalis/dashboard/templates/widgets.handlebars +23 -0
- data/app/assets/javascripts/faalis/dashboard/variables.js.erb +17 -0
- data/app/assets/javascripts/faalis/groups.js +2 -0
- data/app/assets/javascripts/faalis/home.js +2 -0
- data/app/assets/javascripts/faalis/i18n.js +13 -0
- data/app/assets/javascripts/faalis/locale/en.json +27 -0
- data/app/assets/javascripts/faalis/locale/fa.json +27 -0
- data/app/assets/javascripts/faalis/users.js +2 -0
- data/app/assets/stylesheets/faalis/base.css.scss +264 -0
- data/app/assets/stylesheets/faalis/dashboard/dashboard.css.scss +226 -0
- data/app/assets/stylesheets/faalis/dashboard/list_view.css.scss +169 -0
- data/app/assets/stylesheets/faalis/dashboard/ltr/application.css +26 -0
- data/app/assets/stylesheets/faalis/dashboard/ltr/base.css.scss.erb +28 -0
- data/app/assets/stylesheets/faalis/dashboard/ltr/buttons.css.scss.erb +48 -0
- data/app/assets/stylesheets/faalis/dashboard/ltr/direction.css.scss +38 -0
- data/app/assets/stylesheets/faalis/dashboard/ltr/foundation_and_overrides.css.scss +1014 -0
- data/app/assets/stylesheets/faalis/dashboard/ng-grid.css.scss +442 -0
- data/app/assets/stylesheets/faalis/dashboard/ng-quick-date-default-theme.css.scss +20 -0
- data/app/assets/stylesheets/faalis/dashboard/ng-quick-date.css.scss +19 -0
- data/app/assets/stylesheets/faalis/dashboard/rtl/application.css +26 -0
- data/app/assets/stylesheets/faalis/dashboard/rtl/base.css.scss.erb +31 -0
- data/app/assets/stylesheets/faalis/dashboard/rtl/base.css_flymake.scss +25 -0
- data/app/assets/stylesheets/faalis/dashboard/rtl/buttons.css.scss.erb +45 -0
- data/app/assets/stylesheets/faalis/dashboard/rtl/direction.css.scss +37 -0
- data/app/assets/stylesheets/faalis/dashboard/rtl/foundation_and_overrides.css.scss +1014 -0
- data/app/assets/stylesheets/faalis/dashboard/select2.css.scss.erb +618 -0
- data/app/assets/stylesheets/faalis/dashboard/sidebar.css.scss +93 -0
- data/app/assets/stylesheets/faalis/devise.css.scss +34 -0
- data/app/assets/stylesheets/faalis/groups.css +4 -0
- data/app/assets/stylesheets/faalis/home.css.scss +14 -0
- data/app/assets/stylesheets/faalis/ltr/application.css +20 -0
- data/app/assets/stylesheets/faalis/ltr/buttons.css.scss.erb +48 -0
- data/app/assets/stylesheets/faalis/ltr/foundation_and_overrides.scss.erb +1012 -0
- data/app/assets/stylesheets/faalis/mixins.css.scss +15 -0
- data/app/assets/stylesheets/faalis/rtl/application.css +20 -0
- data/app/assets/stylesheets/faalis/rtl/buttons.css.scss.erb +48 -0
- data/app/assets/stylesheets/faalis/rtl/foundation_and_overrides.scss.erb +1012 -0
- data/app/assets/stylesheets/faalis/users.css +4 -0
- data/app/assets/stylesheets/faalis/variables.css.scss +102 -0
- data/app/controllers/faalis/api/v1/groups_controller.rb +75 -0
- data/app/controllers/faalis/api/v1/logs_controller.rb +12 -0
- data/app/controllers/faalis/api/v1/permissions_controller.rb +17 -0
- data/app/controllers/faalis/api/v1/profiles_controller.rb +42 -0
- data/app/controllers/faalis/api/v1/users_controller.rb +75 -0
- data/app/controllers/faalis/api_controller.rb +51 -0
- data/app/controllers/faalis/application_controller.rb +34 -0
- data/app/controllers/faalis/dashboard_controller.rb +44 -0
- data/app/controllers/faalis/home_controller.rb +19 -0
- data/app/controllers/faalis/omniauth/callbacks_controller.rb +43 -0
- data/app/helpers/faalis/application_helper.rb +4 -0
- data/app/helpers/faalis/dashboard_helper.rb +5 -0
- data/app/helpers/faalis/groups_helper.rb +4 -0
- data/app/helpers/faalis/home_helper.rb +4 -0
- data/app/helpers/faalis/users_helper.rb +4 -0
- data/app/models/ability.rb +42 -0
- data/app/models/faalis/group.rb +27 -0
- data/app/models/faalis/permission.rb +15 -0
- data/app/models/faalis/user.rb +81 -0
- data/app/views/angularjs_templates/#index.html# +8 -0
- data/app/views/angularjs_templates/auth/groups/details.html +21 -0
- data/app/views/angularjs_templates/auth/groups/index.html +5 -0
- data/app/views/angularjs_templates/auth/groups/new.html +41 -0
- data/app/views/angularjs_templates/auth/index.html +30 -0
- data/app/views/angularjs_templates/auth/profile/edit.html +54 -0
- data/app/views/angularjs_templates/auth/users/details.html +28 -0
- data/app/views/angularjs_templates/auth/users/index.html +6 -0
- data/app/views/angularjs_templates/auth/users/new.html +56 -0
- data/app/views/angularjs_templates/filter/index.html +15 -0
- data/app/views/angularjs_templates/index.html +8 -0
- data/app/views/angularjs_templates/list-view/index.html +81 -0
- data/app/views/angularjs_templates/locale/fa.po +25 -0
- data/app/views/angularjs_templates/locale/templates.pot +24 -0
- data/app/views/angularjs_templates/logs/index.html +6 -0
- data/app/views/angularjs_templates/modules.html +17 -0
- data/app/views/angularjs_templates/nav.html.erb +38 -0
- data/app/views/devise/confirmations/new.html.erb +34 -0
- data/app/views/devise/mailer/confirmation_instructions.html.erb +5 -0
- data/app/views/devise/mailer/reset_password_instructions.html.erb +8 -0
- data/app/views/devise/mailer/unlock_instructions.html.erb +7 -0
- data/app/views/devise/passwords/edit.html.erb +44 -0
- data/app/views/devise/passwords/new.html.erb +32 -0
- data/app/views/devise/registrations/edit.html.erb +29 -0
- data/app/views/devise/registrations/new.html.erb +91 -0
- data/app/views/devise/sessions/new.html.erb +98 -0
- data/app/views/devise/shared/_links.erb +25 -0
- data/app/views/devise/unlocks/new.html.erb +30 -0
- data/app/views/faalis/api/v1/groups/create.json.jbuilder +4 -0
- data/app/views/faalis/api/v1/groups/destroy.html.erb +2 -0
- data/app/views/faalis/api/v1/groups/destroy.json.jbuilder +1 -0
- data/app/views/faalis/api/v1/groups/edit.html.erb +2 -0
- data/app/views/faalis/api/v1/groups/index.html.erb +2 -0
- data/app/views/faalis/api/v1/groups/index.json.jbuilder +6 -0
- data/app/views/faalis/api/v1/groups/new.html.erb +2 -0
- data/app/views/faalis/api/v1/groups/show.html.erb +2 -0
- data/app/views/faalis/api/v1/groups/show.json.jbuilder +5 -0
- data/app/views/faalis/api/v1/groups/update.json.jbuilder +4 -0
- data/app/views/faalis/api/v1/logs/index.json.jbuilder +1 -0
- data/app/views/faalis/api/v1/permissions/index.json.jbuilder +1 -0
- data/app/views/faalis/api/v1/users/create.html.erb +2 -0
- data/app/views/faalis/api/v1/users/create.json.jbuilder +1 -0
- data/app/views/faalis/api/v1/users/destroy.json.jbuilder +1 -0
- data/app/views/faalis/api/v1/users/distroy.html.erb +2 -0
- data/app/views/faalis/api/v1/users/edit.html.erb +2 -0
- data/app/views/faalis/api/v1/users/index.html.erb +2 -0
- data/app/views/faalis/api/v1/users/index.json.jbuilder +4 -0
- data/app/views/faalis/api/v1/users/show.html.erb +2 -0
- data/app/views/faalis/api/v1/users/show.json.jbuilder +2 -0
- data/app/views/faalis/api/v1/users/update.json.jbuilder +1 -0
- data/app/views/faalis/dashboard/index.html.erb +37 -0
- data/app/views/faalis/dashboard/login_required_page.html.erb +5 -0
- data/app/views/faalis/home/index.html.erb +119 -0
- data/app/views/layouts/faalis/application.html.erb +90 -0
- data/app/views/layouts/faalis/dashboard.html.erb +21 -0
- data/config/initializers/devise.rb +28 -0
- data/config/locales/devise.en.yml +59 -0
- data/config/locales/devise.fa.yml +56 -0
- data/config/locales/fa/LC_MESSAGES/faalis.mo +0 -0
- data/config/locales/fa/faalis.po +181 -0
- data/config/locales/fa/messages.mo +0 -0
- data/config/locales/faalis.pot +181 -0
- data/config/routes.rb +36 -0
- data/db/migrate/20131013091000_devise_create_red_base_users.rb +64 -0
- data/db/migrate/20131020124701_create_red_base_groups.rb +9 -0
- data/db/migrate/20131021170923_create_red_base_permissions.rb +10 -0
- data/db/migrate/20131123120422_add_permissions_groups_table.rb +8 -0
- data/db/seeds.rb +15 -0
- data/lib/faalis.rb +30 -0
- data/lib/faalis/active_record.rb +64 -0
- data/lib/faalis/api.rb +61 -0
- data/lib/faalis/api/groups_api.rb +41 -0
- data/lib/faalis/api/permissions_api.rb +24 -0
- data/lib/faalis/api/root.rb +15 -0
- data/lib/faalis/api/users_api.rb +20 -0
- data/lib/faalis/cucumber.rb +25 -0
- data/lib/faalis/cucumber/auth.rb +45 -0
- data/lib/faalis/cucumber/exceptions.rb +40 -0
- data/lib/faalis/cucumber/interaction.rb +43 -0
- data/lib/faalis/cucumber/query.rb +28 -0
- data/lib/faalis/cucumber/urls.rb +76 -0
- data/lib/faalis/dashboard.rb +60 -0
- data/lib/faalis/dashboard/controller.rb +42 -0
- data/lib/faalis/dashboard/module.rb +45 -0
- data/lib/faalis/engine.rb +128 -0
- data/lib/faalis/exceptions.rb +26 -0
- data/lib/faalis/i18n.rb +35 -0
- data/lib/faalis/initialize.rb +7 -0
- data/lib/faalis/omniauth.rb +24 -0
- data/lib/faalis/omniauth/callbacks.rb +58 -0
- data/lib/faalis/plugins.rb +44 -0
- data/lib/faalis/version.rb +22 -0
- data/lib/faalis_plugin.rb +476 -0
- data/lib/generators/faalis/USAGE +8 -0
- data/lib/generators/faalis/angularjs_resource_generator.rb +74 -0
- data/lib/generators/faalis/install_all_generator.rb +38 -0
- data/lib/generators/faalis/install_generator.rb +42 -0
- data/lib/generators/faalis/install_specs_generator.rb +48 -0
- data/lib/generators/faalis/js_scaffold_generator.rb +273 -0
- data/lib/generators/faalis/templates/README +41 -0
- data/lib/generators/faalis/templates/SPECS +13 -0
- data/lib/generators/faalis/templates/angularjs/details.html.erb +20 -0
- data/lib/generators/faalis/templates/angularjs/index.html.erb +62 -0
- data/lib/generators/faalis/templates/angularjs/module.js.erb +309 -0
- data/lib/generators/faalis/templates/angularjs/new.html.erb +105 -0
- data/lib/generators/faalis/templates/api/controller.rb.erb +56 -0
- data/lib/generators/faalis/templates/devise.rb +251 -0
- data/lib/generators/faalis/templates/faalis.rb +14 -0
- data/lib/generators/faalis/templates/fast_gettext.rb +4 -0
- data/lib/generators/faalis/templates/features/api.feature +92 -0
- data/lib/generators/faalis/templates/features/api.step.rb +7 -0
- data/lib/generators/faalis/templates/features/step_definitions/email_steps.rb +206 -0
- data/lib/generators/faalis/templates/features/support/email_spec.rb +1 -0
- data/lib/generators/faalis/templates/features/support/env.rb +79 -0
- data/lib/generators/faalis/templates/formtastic.rb +76 -0
- data/lib/generators/faalis/templates/js_scaffold.README +25 -0
- data/lib/generators/faalis/templates/seeds.rb +1 -0
- data/lib/generators/faalis/templates/spec/factories/groups.rb +5 -0
- data/lib/generators/faalis/templates/spec/factories/users.rb +10 -0
- data/lib/generators/faalis/templates/spec/spec_helper.rb +69 -0
- data/lib/generators/faalis/templates/spec/support/devise.rb +3 -0
- data/lib/generators/faalis/templates/views/create.json.jbuilder.erb +2 -0
- data/lib/generators/faalis/templates/views/destroy.json.jbuilder.erb +1 -0
- data/lib/generators/faalis/templates/views/index.json.jbuilder.erb +10 -0
- data/lib/generators/faalis/templates/views/show.json.jbuilder.erb +7 -0
- data/lib/generators/faalis/templates/views/update.json.jbuilder.erb +6 -0
- data/lib/generators/faalis/views_generator.rb +41 -0
- data/lib/tasks/faalis_tasks.rake +23 -0
- data/lib/tasks/grunt/Gruntfile.js +25 -0
- data/spec/dummy/README.rdoc +28 -0
- data/spec/dummy/Rakefile +6 -0
- data/spec/dummy/app/assets/javascripts/application.js +13 -0
- data/spec/dummy/app/assets/stylesheets/application.css +13 -0
- data/spec/dummy/app/controllers/application_controller.rb +5 -0
- data/spec/dummy/app/helpers/application_helper.rb +2 -0
- data/spec/dummy/app/views/layouts/application.html.erb +14 -0
- data/spec/dummy/bin/bundle +3 -0
- data/spec/dummy/bin/rails +4 -0
- data/spec/dummy/bin/rake +4 -0
- data/spec/dummy/config.ru +4 -0
- data/spec/dummy/config/application.rb +23 -0
- data/spec/dummy/config/boot.rb +5 -0
- data/spec/dummy/config/database.yml +25 -0
- data/spec/dummy/config/environment.rb +5 -0
- data/spec/dummy/config/environments/development.rb +29 -0
- data/spec/dummy/config/environments/production.rb +80 -0
- data/spec/dummy/config/environments/test.rb +36 -0
- data/spec/dummy/config/initializers/backtrace_silencers.rb +7 -0
- data/spec/dummy/config/initializers/filter_parameter_logging.rb +4 -0
- data/spec/dummy/config/initializers/inflections.rb +16 -0
- data/spec/dummy/config/initializers/mime_types.rb +5 -0
- data/spec/dummy/config/initializers/secret_token.rb +12 -0
- data/spec/dummy/config/initializers/session_store.rb +3 -0
- data/spec/dummy/config/initializers/wrap_parameters.rb +14 -0
- data/spec/dummy/config/locales/en.yml +23 -0
- data/spec/dummy/config/routes.rb +4 -0
- data/spec/dummy/db/test.sqlite3 +0 -0
- data/spec/dummy/log/development.log +0 -0
- data/spec/dummy/log/test.log +15 -0
- data/spec/dummy/public/404.html +58 -0
- data/spec/dummy/public/422.html +58 -0
- data/spec/dummy/public/500.html +57 -0
- data/spec/dummy/public/favicon.ico +0 -0
- data/spec/dummy/tmp/ember-rails/ember-data.js +10204 -0
- data/spec/dummy/tmp/ember-rails/ember.js +36991 -0
- data/spec/spec_helper.rb +52 -0
- 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,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,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>
|