red_base 0.5.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.rdoc +40 -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/javascripts/red_base/application.js +20 -0
- data/app/assets/javascripts/red_base/dashboard/angular.js +9 -0
- data/app/assets/javascripts/red_base/dashboard/app.js +65 -0
- data/app/assets/javascripts/red_base/dashboard/application.js.erb +24 -0
- data/app/assets/javascripts/red_base/dashboard/functions.js.erb +91 -0
- data/app/assets/javascripts/red_base/dashboard/init.js +38 -0
- data/app/assets/javascripts/red_base/dashboard/init.js~ +0 -0
- data/app/assets/javascripts/red_base/dashboard/lib/angular-animate.js +1226 -0
- data/app/assets/javascripts/red_base/dashboard/lib/angular-gettext.js +202 -0
- data/app/assets/javascripts/red_base/dashboard/lib/angular-resource.js +578 -0
- data/app/assets/javascripts/red_base/dashboard/lib/angular-route.js +880 -0
- data/app/assets/javascripts/red_base/dashboard/lib/angular.js +20031 -0
- data/app/assets/javascripts/red_base/dashboard/lib/lodash.underscore.js +4893 -0
- data/app/assets/javascripts/red_base/dashboard/lib/restangular.js +1066 -0
- data/app/assets/javascripts/red_base/dashboard/locale/translations.js +5 -0
- data/app/assets/javascripts/red_base/dashboard/modules/anim.js +32 -0
- data/app/assets/javascripts/red_base/dashboard/modules/api.js +32 -0
- data/app/assets/javascripts/red_base/dashboard/modules/auth/auth.js +34 -0
- data/app/assets/javascripts/red_base/dashboard/modules/auth/group.js +174 -0
- data/app/assets/javascripts/red_base/dashboard/modules/auth/user.js +122 -0
- data/app/assets/javascripts/red_base/dashboard/modules/list-view.js +293 -0
- data/app/assets/javascripts/red_base/dashboard/modules/logs.js +41 -0
- data/app/assets/javascripts/red_base/dashboard/modules/modules.js +50 -0
- data/app/assets/javascripts/red_base/dashboard/modules/nav.js.erb +92 -0
- data/app/assets/javascripts/red_base/dashboard/templates/application.handlebars.erb +42 -0
- data/app/assets/javascripts/red_base/dashboard/templates/auth/groups/details.handlebars.erb +15 -0
- data/app/assets/javascripts/red_base/dashboard/templates/auth/groups/index.handlebars.erb +7 -0
- data/app/assets/javascripts/red_base/dashboard/templates/auth/groups/new.handlebars.erb +39 -0
- data/app/assets/javascripts/red_base/dashboard/templates/auth/index.handlebars.erb +31 -0
- data/app/assets/javascripts/red_base/dashboard/templates/auth/users/details.handlebars.erb +15 -0
- data/app/assets/javascripts/red_base/dashboard/templates/auth/users/index.handlebars.erb +11 -0
- data/app/assets/javascripts/red_base/dashboard/templates/auth/users/new.handlebars.erb +33 -0
- data/app/assets/javascripts/red_base/dashboard/templates/components/list-view.handlebars.erb +59 -0
- data/app/assets/javascripts/red_base/dashboard/templates/components/model-form.handlebars.erb +3 -0
- data/app/assets/javascripts/red_base/dashboard/templates/modules.handlebars.erb +15 -0
- data/app/assets/javascripts/red_base/dashboard/templates/navigation.handlebars.erb +43 -0
- data/app/assets/javascripts/red_base/dashboard/templates/widgets.handlebars +23 -0
- data/app/assets/javascripts/red_base/dashboard/variables.js.erb +17 -0
- data/app/assets/javascripts/red_base/groups.js +2 -0
- data/app/assets/javascripts/red_base/home.js +2 -0
- data/app/assets/javascripts/red_base/i18n.js +13 -0
- data/app/assets/javascripts/red_base/locale/en.json +27 -0
- data/app/assets/javascripts/red_base/locale/fa.json +27 -0
- data/app/assets/javascripts/red_base/users.js +2 -0
- data/app/assets/stylesheets/red_base/base.css.scss +402 -0
- data/app/assets/stylesheets/red_base/dashboard/dashboard.css.scss +169 -0
- data/app/assets/stylesheets/red_base/dashboard/ltr/application.css +21 -0
- data/app/assets/stylesheets/red_base/dashboard/ltr/base.css.scss.erb +28 -0
- data/app/assets/stylesheets/red_base/dashboard/ltr/base.css.scss~ +15 -0
- data/app/assets/stylesheets/red_base/dashboard/ltr/buttons.css.scss.erb +48 -0
- data/app/assets/stylesheets/red_base/dashboard/ltr/direction.css.scss +38 -0
- data/app/assets/stylesheets/red_base/dashboard/ltr/foundation_and_overrides.css.scss +1014 -0
- data/app/assets/stylesheets/red_base/dashboard/rtl/application.css +21 -0
- data/app/assets/stylesheets/red_base/dashboard/rtl/base.css.scss.erb +31 -0
- data/app/assets/stylesheets/red_base/dashboard/rtl/base.css.scss~ +1 -0
- data/app/assets/stylesheets/red_base/dashboard/rtl/base.css_flymake.scss +25 -0
- data/app/assets/stylesheets/red_base/dashboard/rtl/buttons.css.scss.erb +45 -0
- data/app/assets/stylesheets/red_base/dashboard/rtl/direction.css.scss +37 -0
- data/app/assets/stylesheets/red_base/dashboard/rtl/foundation_and_overrides.css.scss +1014 -0
- data/app/assets/stylesheets/red_base/dashboard/sidebar.css.scss +93 -0
- data/app/assets/stylesheets/red_base/devise.css.scss +34 -0
- data/app/assets/stylesheets/red_base/groups.css +4 -0
- data/app/assets/stylesheets/red_base/home.css.scss +14 -0
- data/app/assets/stylesheets/red_base/ltr/application.css +20 -0
- data/app/assets/stylesheets/red_base/ltr/buttons.css.scss.erb +48 -0
- data/app/assets/stylesheets/red_base/ltr/foundation_and_overrides.scss.erb +1012 -0
- data/app/assets/stylesheets/red_base/mixins.css.scss +15 -0
- data/app/assets/stylesheets/red_base/mixins.css.scss~ +7 -0
- data/app/assets/stylesheets/red_base/rtl/application.css +20 -0
- data/app/assets/stylesheets/red_base/rtl/buttons.css.scss.erb +48 -0
- data/app/assets/stylesheets/red_base/rtl/foundation_and_overrides.scss.erb +1012 -0
- data/app/assets/stylesheets/red_base/users.css +4 -0
- data/app/assets/stylesheets/red_base/variables.css.scss +100 -0
- data/app/controllers/red_base/api/v1/groups_controller.rb +65 -0
- data/app/controllers/red_base/api/v1/logs_controller.rb +12 -0
- data/app/controllers/red_base/api/v1/permissions_controller.rb +17 -0
- data/app/controllers/red_base/api/v1/users_controller.rb +54 -0
- data/app/controllers/red_base/api_controller.rb +51 -0
- data/app/controllers/red_base/application_controller.rb +34 -0
- data/app/controllers/red_base/dashboard_controller.rb +40 -0
- data/app/controllers/red_base/home_controller.rb +19 -0
- data/app/controllers/red_base/omniauth/callbacks_controller.rb +43 -0
- data/app/controllers/red_base/users/omniauth_callbacks_controller.rb~ +2 -0
- data/app/helpers/red_base/application_helper.rb +4 -0
- data/app/helpers/red_base/dashboard_helper.rb +5 -0
- data/app/helpers/red_base/groups_helper.rb +4 -0
- data/app/helpers/red_base/home_helper.rb +4 -0
- data/app/helpers/red_base/users_helper.rb +4 -0
- data/app/models/ability.rb +39 -0
- data/app/models/red_base/group.rb +27 -0
- data/app/models/red_base/permission.rb +15 -0
- data/app/models/red_base/user.rb +77 -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 +40 -0
- data/app/views/angularjs_templates/auth/index.html +30 -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 +45 -0
- data/app/views/angularjs_templates/index.html +8 -0
- data/app/views/angularjs_templates/list-view/index.html +66 -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/angularjs_templates/nav.html.erb~ +43 -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/layouts/red_base/application.html.erb +90 -0
- data/app/views/layouts/red_base/dashboard.html.erb +21 -0
- data/app/views/red_base/api/v1/groups/create.json.jbuilder +4 -0
- data/app/views/red_base/api/v1/groups/destroy.html.erb +2 -0
- data/app/views/red_base/api/v1/groups/destroy.json.jbuilder +1 -0
- data/app/views/red_base/api/v1/groups/edit.html.erb +2 -0
- data/app/views/red_base/api/v1/groups/index.html.erb +2 -0
- data/app/views/red_base/api/v1/groups/index.json.jbuilder +6 -0
- data/app/views/red_base/api/v1/groups/new.html.erb +2 -0
- data/app/views/red_base/api/v1/groups/show.html.erb +2 -0
- data/app/views/red_base/api/v1/groups/show.json.jbuilder +5 -0
- data/app/views/red_base/api/v1/groups/update.json.jbuilder +4 -0
- data/app/views/red_base/api/v1/logs/index.json.jbuilder +1 -0
- data/app/views/red_base/api/v1/permissions/index.json.jbuilder +1 -0
- data/app/views/red_base/api/v1/users/create.html.erb +2 -0
- data/app/views/red_base/api/v1/users/create.json.jbuilder +1 -0
- data/app/views/red_base/api/v1/users/destroy.json.jbuilder +1 -0
- data/app/views/red_base/api/v1/users/distroy.html.erb +2 -0
- data/app/views/red_base/api/v1/users/edit.html.erb +2 -0
- data/app/views/red_base/api/v1/users/index.html.erb +2 -0
- data/app/views/red_base/api/v1/users/index.json.jbuilder +4 -0
- data/app/views/red_base/api/v1/users/show.html.erb +2 -0
- data/app/views/red_base/api/v1/users/show.json.jbuilder +2 -0
- data/app/views/red_base/api/v1/users/update.json.jbuilder +1 -0
- data/app/views/red_base/dashboard/index.html.erb +37 -0
- data/app/views/red_base/home/index.html.erb +119 -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/red_base.mo +0 -0
- data/config/locales/fa/messages.mo +0 -0
- data/config/locales/fa/red_base.po +181 -0
- data/config/locales/red_base.pot +181 -0
- data/config/routes.rb +33 -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/devise_patch.rb~ +5 -0
- data/lib/generators/red_base/USAGE +8 -0
- data/lib/generators/red_base/angularjs_resource_generator.rb +74 -0
- data/lib/generators/red_base/install_all_generator.rb +38 -0
- data/lib/generators/red_base/install_generator.rb +42 -0
- data/lib/generators/red_base/install_specs_generator.rb +48 -0
- data/lib/generators/red_base/js_scaffold_generator.rb +232 -0
- data/lib/generators/red_base/templates/README +41 -0
- data/lib/generators/red_base/templates/README~ +4 -0
- data/lib/generators/red_base/templates/SPECS +13 -0
- data/lib/generators/red_base/templates/angularjs/details.html.erb +20 -0
- data/lib/generators/red_base/templates/angularjs/details.html.erb~ +0 -0
- data/lib/generators/red_base/templates/angularjs/index.html.erb +59 -0
- data/lib/generators/red_base/templates/angularjs/module.js.erb +259 -0
- data/lib/generators/red_base/templates/angularjs/new.html.erb +43 -0
- data/lib/generators/red_base/templates/api/controller.rb.erb +54 -0
- data/lib/generators/red_base/templates/api/controller.rb.erb~ +37 -0
- data/lib/generators/red_base/templates/devise.rb +251 -0
- data/lib/generators/red_base/templates/devise.rb~ +238 -0
- data/lib/generators/red_base/templates/fast_gettext.rb +4 -0
- data/lib/generators/red_base/templates/features/api.feature +92 -0
- data/lib/generators/red_base/templates/features/api.step.rb +7 -0
- data/lib/generators/red_base/templates/features/step_definitions/email_steps.rb +206 -0
- data/lib/generators/red_base/templates/features/support/email_spec.rb +1 -0
- data/lib/generators/red_base/templates/features/support/env.rb +79 -0
- data/lib/generators/red_base/templates/formtastic.rb +76 -0
- data/lib/generators/red_base/templates/js_scaffold.README +25 -0
- data/lib/generators/red_base/templates/red_base.rb +14 -0
- data/lib/generators/red_base/templates/red_base.rb~ +251 -0
- data/lib/generators/red_base/templates/seeds.rb +1 -0
- data/lib/generators/red_base/templates/spec/factories/groups.rb +5 -0
- data/lib/generators/red_base/templates/spec/factories/users.rb +10 -0
- data/lib/generators/red_base/templates/spec/spec_helper.rb +69 -0
- data/lib/generators/red_base/templates/spec/support/devise.rb +3 -0
- data/lib/generators/red_base/templates/views/create.json.jbuilder.erb +2 -0
- data/lib/generators/red_base/templates/views/destroy.json.jbuilder.erb +1 -0
- data/lib/generators/red_base/templates/views/index.json.jbuilder.erb +10 -0
- data/lib/generators/red_base/templates/views/index.json.jbuilder.erb~ +0 -0
- data/lib/generators/red_base/templates/views/show.json.jbuilder.erb +6 -0
- data/lib/generators/red_base/templates/views/update.json.jbuilder.erb +6 -0
- data/lib/generators/red_base/views_generator.rb +41 -0
- data/lib/red_base/active_record.rb +78 -0
- data/lib/red_base/active_record.rb~ +0 -0
- data/lib/red_base/api/groups_api.rb +41 -0
- data/lib/red_base/api/permissions_api.rb +24 -0
- data/lib/red_base/api/root.rb +15 -0
- data/lib/red_base/api/users_api.rb +20 -0
- data/lib/red_base/api.rb +61 -0
- data/lib/red_base/cucumber/auth.rb +45 -0
- data/lib/red_base/cucumber/exceptions.rb +40 -0
- data/lib/red_base/cucumber/interaction.rb +43 -0
- data/lib/red_base/cucumber/query.rb +28 -0
- data/lib/red_base/cucumber/urls.rb +76 -0
- data/lib/red_base/cucumber.rb +25 -0
- data/lib/red_base/dashboard/controller.rb +42 -0
- data/lib/red_base/dashboard/module.rb +45 -0
- data/lib/red_base/dashboard/module.rb~ +25 -0
- data/lib/red_base/dashboard.rb +60 -0
- data/lib/red_base/dashboard.rb~ +18 -0
- data/lib/red_base/engine.rb +132 -0
- data/lib/red_base/exceptions.rb +26 -0
- data/lib/red_base/i18n.rb +35 -0
- data/lib/red_base/initialize.rb +7 -0
- data/lib/red_base/omniauth/callbacks.rb +58 -0
- data/lib/red_base/omniauth/callbakcs.rb~ +7 -0
- data/lib/red_base/omniauth.rb +24 -0
- data/lib/red_base/omniauth.rb~ +1 -0
- data/lib/red_base/plugins.rb +44 -0
- data/lib/red_base/version.rb +22 -0
- data/lib/red_base.rb +30 -0
- data/lib/tasks/grunt/Gruntfile.js +25 -0
- data/lib/tasks/red_base_tasks.rake +23 -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/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/config.ru +4 -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/spec_helper.rb +52 -0
- metadata +661 -0
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
$headerHeight: 45px;
|
|
2
|
+
$logoWidth: 150px;
|
|
3
|
+
$logoHeight: 200px;
|
|
4
|
+
|
|
5
|
+
$base_unit: 150px;
|
|
6
|
+
|
|
7
|
+
$wet_asphalt: #34495E;
|
|
8
|
+
$midnight_blue: #2C3E50;
|
|
9
|
+
|
|
10
|
+
$headerbg: #111111;
|
|
11
|
+
$darkbg: #202224;
|
|
12
|
+
|
|
13
|
+
$clouds: #ecf0f1;
|
|
14
|
+
$silver: #bdc3c7;
|
|
15
|
+
|
|
16
|
+
$emerald: #85AE42;
|
|
17
|
+
$nephritis: #27ae60;
|
|
18
|
+
|
|
19
|
+
$alizarin: #E45760;
|
|
20
|
+
$pomegranate: #c0392b;
|
|
21
|
+
|
|
22
|
+
$turquoise: #1ABC9C;
|
|
23
|
+
$green_sea: #16A085;
|
|
24
|
+
|
|
25
|
+
$peter_river: #6DA6BA;
|
|
26
|
+
$belize_hole: #4E8FA6;
|
|
27
|
+
|
|
28
|
+
$amethyst: #9b59b6;
|
|
29
|
+
$wisteria: #8e44ad;
|
|
30
|
+
|
|
31
|
+
$sun_flower: #f0ba4b;
|
|
32
|
+
$orange: #F0BA4B;
|
|
33
|
+
|
|
34
|
+
$carrot: #E67E22;
|
|
35
|
+
$pumpkin: #D35400;
|
|
36
|
+
|
|
37
|
+
$darkergray: #232A30;
|
|
38
|
+
$darkgray: #4f4f4f;
|
|
39
|
+
$lightgray: #7F8C8D;
|
|
40
|
+
$lightergray: #E3E3E3;
|
|
41
|
+
$verylightgray: #fbfbfb;
|
|
42
|
+
$ultra_blue: #F4F4F4;
|
|
43
|
+
|
|
44
|
+
$header-height: 50px;
|
|
45
|
+
$box-bottom-border: 4px;
|
|
46
|
+
$hover-box: $emerald;
|
|
47
|
+
|
|
48
|
+
$dashboard-nav-background: #232A30;
|
|
49
|
+
$dashboard-background: #efefef;
|
|
50
|
+
$dashboard-nav-hover: #2E3639;
|
|
51
|
+
$border-radius: 4px;
|
|
52
|
+
|
|
53
|
+
$selected-bg: $orange;
|
|
54
|
+
|
|
55
|
+
.emerald {
|
|
56
|
+
background: $emerald;
|
|
57
|
+
}
|
|
58
|
+
|
|
59
|
+
.orange {
|
|
60
|
+
Background: $orange;
|
|
61
|
+
}
|
|
62
|
+
|
|
63
|
+
|
|
64
|
+
.alizarin {
|
|
65
|
+
Background: $alizarin;
|
|
66
|
+
}
|
|
67
|
+
|
|
68
|
+
.sun_flower {
|
|
69
|
+
Background: $sun_flower;
|
|
70
|
+
}
|
|
71
|
+
|
|
72
|
+
.peter_river {
|
|
73
|
+
Background: $peter_river;
|
|
74
|
+
}
|
|
75
|
+
|
|
76
|
+
.wisteria {
|
|
77
|
+
Background: $wisteria;
|
|
78
|
+
}
|
|
79
|
+
|
|
80
|
+
.amethyst {
|
|
81
|
+
Background: $amethyst;
|
|
82
|
+
}
|
|
83
|
+
|
|
84
|
+
.pomegranate {
|
|
85
|
+
Background: $pomegranate;
|
|
86
|
+
}
|
|
87
|
+
|
|
88
|
+
.belize_hole {
|
|
89
|
+
Background: $belize_hole;
|
|
90
|
+
}
|
|
91
|
+
|
|
92
|
+
.nephritis {
|
|
93
|
+
background: $nephritis;
|
|
94
|
+
}
|
|
95
|
+
|
|
96
|
+
.color-white {
|
|
97
|
+
h1, h2, h3, h4, h5, span, p {
|
|
98
|
+
color: white;
|
|
99
|
+
}
|
|
100
|
+
}
|
|
@@ -0,0 +1,65 @@
|
|
|
1
|
+
require_dependency "red_base/api_controller"
|
|
2
|
+
|
|
3
|
+
module RedBase
|
|
4
|
+
class API::V1::GroupsController < APIController
|
|
5
|
+
# TODO: Use strong params
|
|
6
|
+
# TODO: implement authorization
|
|
7
|
+
|
|
8
|
+
# GET /api/v1/groups
|
|
9
|
+
def index
|
|
10
|
+
@groups = Group.includes(:permissions).all
|
|
11
|
+
authorize! :read, @groups
|
|
12
|
+
respond_with(@groups)
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
def create
|
|
16
|
+
authorize! :create, RedBase::Group
|
|
17
|
+
|
|
18
|
+
permissions = [];
|
|
19
|
+
|
|
20
|
+
(params[:permissions] || []).each do |perm_string|
|
|
21
|
+
perm, model = perm_string.split "|"
|
|
22
|
+
permission = Permission.find_or_create_by_model_and_permission_type(model, perm)
|
|
23
|
+
permissions << permission
|
|
24
|
+
end
|
|
25
|
+
|
|
26
|
+
@group = Group.create!({
|
|
27
|
+
name: params[:name],
|
|
28
|
+
permissions: permissions,
|
|
29
|
+
})
|
|
30
|
+
respond_with(@group)
|
|
31
|
+
|
|
32
|
+
end
|
|
33
|
+
|
|
34
|
+
def show
|
|
35
|
+
@group = Group.find(params[:id])
|
|
36
|
+
authorize! :read, @group
|
|
37
|
+
respond_with(@group)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def update
|
|
41
|
+
|
|
42
|
+
@group = Group.find(params[:id])
|
|
43
|
+
authorize! :update, @group
|
|
44
|
+
|
|
45
|
+
permissions = [];
|
|
46
|
+
(params[:permissions] || []).each do |perm_string|
|
|
47
|
+
perm, model = perm_string.split "|"
|
|
48
|
+
permission = Permission.find_or_create_by_model_and_permission_type(model, perm)
|
|
49
|
+
permissions << permission
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
@group.update(:name => params[:name],
|
|
53
|
+
:permissions => permissions)
|
|
54
|
+
respond_with(@group)
|
|
55
|
+
end
|
|
56
|
+
|
|
57
|
+
def destroy
|
|
58
|
+
ids = params[:id].split(",")
|
|
59
|
+
@groups = Group.where(:id => ids)
|
|
60
|
+
authorize! :destory, @groups
|
|
61
|
+
@groups.destroy_all
|
|
62
|
+
end
|
|
63
|
+
end
|
|
64
|
+
|
|
65
|
+
end
|
|
@@ -0,0 +1,12 @@
|
|
|
1
|
+
require_dependency "red_base/api_controller"
|
|
2
|
+
|
|
3
|
+
module RedBase
|
|
4
|
+
class API::V1::LogsController < APIController
|
|
5
|
+
|
|
6
|
+
# GET /api/v1/logs
|
|
7
|
+
def index
|
|
8
|
+
@data = File.open("#{Rails.root}/log/#{Rails.env}.log").read(4096)
|
|
9
|
+
respond_with(@data)
|
|
10
|
+
end
|
|
11
|
+
end
|
|
12
|
+
end
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
require_dependency "red_base/application_controller"
|
|
2
|
+
|
|
3
|
+
module RedBase
|
|
4
|
+
class API::V1::PermissionsController < ApplicationController
|
|
5
|
+
|
|
6
|
+
# GET /api/v1/groups
|
|
7
|
+
def index
|
|
8
|
+
@permissions = []
|
|
9
|
+
|
|
10
|
+
RedBase::Engine.models_with_permission.each do |model|
|
|
11
|
+
model = Object.const_get(model)
|
|
12
|
+
@permissions.concat(model::Permissions.permission_strings(model))
|
|
13
|
+
end
|
|
14
|
+
|
|
15
|
+
end
|
|
16
|
+
end
|
|
17
|
+
end
|
|
@@ -0,0 +1,54 @@
|
|
|
1
|
+
require_dependency "red_base/application_controller"
|
|
2
|
+
|
|
3
|
+
module RedBase
|
|
4
|
+
class API::V1::UsersController < APIController
|
|
5
|
+
|
|
6
|
+
def index
|
|
7
|
+
@users = User.joins(:group).all
|
|
8
|
+
authorize! :read, @users
|
|
9
|
+
respond_with(@users)
|
|
10
|
+
end
|
|
11
|
+
|
|
12
|
+
def show
|
|
13
|
+
@user = User.find(params[:id])
|
|
14
|
+
authorize! :read, @user
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def destroy
|
|
18
|
+
ids = params[:id].split(",")
|
|
19
|
+
@users = User.where(:id => ids)
|
|
20
|
+
authorize! :destory, @groups
|
|
21
|
+
@users.destroy_all
|
|
22
|
+
end
|
|
23
|
+
|
|
24
|
+
def update
|
|
25
|
+
group = Group.find(params[:group])
|
|
26
|
+
@user = User.find(params[:id])
|
|
27
|
+
authorize! :update, @user
|
|
28
|
+
user_fields = {
|
|
29
|
+
first_name: params[:first_name],
|
|
30
|
+
last_name: params[:last_name],
|
|
31
|
+
email: params[:email],
|
|
32
|
+
group: group,
|
|
33
|
+
}
|
|
34
|
+
if params[:password]
|
|
35
|
+
user_fields["password"] = params[:password]
|
|
36
|
+
end
|
|
37
|
+
@user.update(user_fields)
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
def create
|
|
41
|
+
authorize! :create, RedBase::User
|
|
42
|
+
group = Group.find(params[:group])
|
|
43
|
+
if group
|
|
44
|
+
@user = User.create!({
|
|
45
|
+
first_name: params[:first_name],
|
|
46
|
+
last_name: params[:last_name],
|
|
47
|
+
email: params[:email],
|
|
48
|
+
password: params[:password],
|
|
49
|
+
group: group,
|
|
50
|
+
})
|
|
51
|
+
end
|
|
52
|
+
end
|
|
53
|
+
end
|
|
54
|
+
end
|
|
@@ -0,0 +1,51 @@
|
|
|
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
|
+
require_dependency "red_base/api_controller"
|
|
20
|
+
|
|
21
|
+
|
|
22
|
+
class RedBase::APIController < RedBase::ApplicationController
|
|
23
|
+
respond_to :json
|
|
24
|
+
|
|
25
|
+
before_filter :authenticate_user!
|
|
26
|
+
|
|
27
|
+
protect_from_forgery
|
|
28
|
+
|
|
29
|
+
after_filter :set_csrf_cookie_for_ng
|
|
30
|
+
|
|
31
|
+
def set_csrf_cookie_for_ng
|
|
32
|
+
cookies['XSRF-TOKEN'] = form_authenticity_token if protect_against_forgery?
|
|
33
|
+
end
|
|
34
|
+
|
|
35
|
+
rescue_from CanCan::AccessDenied do |exception|
|
|
36
|
+
|
|
37
|
+
render :status => 403, :json => {
|
|
38
|
+
:error => _("You don't have access to this page"),
|
|
39
|
+
:orig_msg => exception.message,
|
|
40
|
+
:action => exception.action,
|
|
41
|
+
}
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
protected
|
|
45
|
+
|
|
46
|
+
def verified_request?
|
|
47
|
+
super || form_authenticity_token == request.headers['X-XSRF-TOKEN']
|
|
48
|
+
end
|
|
49
|
+
|
|
50
|
+
|
|
51
|
+
end
|
|
@@ -0,0 +1,34 @@
|
|
|
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
|
+
class RedBase::ApplicationController < ActionController::Base
|
|
20
|
+
include FastGettext::Translation
|
|
21
|
+
before_filter :set_locale
|
|
22
|
+
|
|
23
|
+
|
|
24
|
+
def set_locale
|
|
25
|
+
FastGettext.add_text_domain 'red_base', :path => "#{RedBase::Engine.root}/config/locales", :type => :po
|
|
26
|
+
# All languages you want to allow
|
|
27
|
+
FastGettext.default_available_locales = RedBase::Engine.locales
|
|
28
|
+
FastGettext.default_text_domain = 'red_base'
|
|
29
|
+
|
|
30
|
+
lang = request.env['lang'] || params[:locale] || session[:locale] || I18n.default_locale
|
|
31
|
+
FastGettext.set_locale(lang.to_sym)
|
|
32
|
+
session[:locale] = I18n.locale = lang
|
|
33
|
+
end
|
|
34
|
+
end
|
|
@@ -0,0 +1,40 @@
|
|
|
1
|
+
require_dependency "red_base/application_controller"
|
|
2
|
+
|
|
3
|
+
module RedBase
|
|
4
|
+
class DashboardController < ApplicationController
|
|
5
|
+
|
|
6
|
+
include RedBase::Dashboard::Controller
|
|
7
|
+
|
|
8
|
+
layout "red_base/dashboard"
|
|
9
|
+
before_filter :authenticate_user!
|
|
10
|
+
|
|
11
|
+
respond_to :json, :html
|
|
12
|
+
|
|
13
|
+
def jstemplate
|
|
14
|
+
render :template => "angularjs_templates/#{params[:path]}", :layout => nil
|
|
15
|
+
end
|
|
16
|
+
|
|
17
|
+
def index
|
|
18
|
+
@jstemplates_path = "/templates"
|
|
19
|
+
end
|
|
20
|
+
|
|
21
|
+
def modules
|
|
22
|
+
dashboard_modules = []
|
|
23
|
+
|
|
24
|
+
RedBase::Engine.dashboard_modules.each do |module_name, attrs|
|
|
25
|
+
if not attrs.include? :title
|
|
26
|
+
attrs[:title] = _(module_name.to_s)
|
|
27
|
+
end
|
|
28
|
+
|
|
29
|
+
if not attrs.include? :resource
|
|
30
|
+
attrs[:resource] = module_name.to_s
|
|
31
|
+
end
|
|
32
|
+
|
|
33
|
+
dashboard_modules << attrs
|
|
34
|
+
end
|
|
35
|
+
dashboard_modules = {:modules => dashboard_modules}
|
|
36
|
+
respond_with dashboard_modules
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
|
|
40
|
+
end
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
require_dependency "red_base/application_controller"
|
|
2
|
+
|
|
3
|
+
module RedBase
|
|
4
|
+
class HomeController < ApplicationController
|
|
5
|
+
include RedBase::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 RedBase
|
|
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 RedBase::Omniauth::Callbacks
|
|
40
|
+
|
|
41
|
+
end
|
|
42
|
+
end
|
|
43
|
+
end
|
|
@@ -0,0 +1,39 @@
|
|
|
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
|
+
|
|
35
|
+
if user and user.group_id == 1
|
|
36
|
+
can :manage, :all
|
|
37
|
+
end
|
|
38
|
+
end
|
|
39
|
+
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 RedBase
|
|
21
|
+
class Group < ActiveRecord::Base
|
|
22
|
+
#validate :name, :presence => true, :unique => true
|
|
23
|
+
|
|
24
|
+
has_and_belongs_to_many :permissions
|
|
25
|
+
has_many :users
|
|
26
|
+
end
|
|
27
|
+
end
|
|
@@ -0,0 +1,15 @@
|
|
|
1
|
+
module RedBase
|
|
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,77 @@
|
|
|
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 RedBase
|
|
21
|
+
class User < ActiveRecord::Base
|
|
22
|
+
# Include default devise modules. Others available are:
|
|
23
|
+
# :token_authenticatable, :confirmable,
|
|
24
|
+
# :lockable, :timeoutable and :omniauthable
|
|
25
|
+
@@devise_options = [:database_authenticatable,
|
|
26
|
+
:registerable,
|
|
27
|
+
:recoverable,
|
|
28
|
+
:rememberable,
|
|
29
|
+
:trackable,
|
|
30
|
+
:lockable,
|
|
31
|
+
:timeoutable,
|
|
32
|
+
:validatable]
|
|
33
|
+
|
|
34
|
+
if Rails.env.production?
|
|
35
|
+
@@devise_options << :confirmable
|
|
36
|
+
end
|
|
37
|
+
|
|
38
|
+
if Devise.omniauth_configs.any?
|
|
39
|
+
@@devise_options << :omniauthable
|
|
40
|
+
@@devise_options << {:omniauth_providers => Devise.omniauth_configs.keys}
|
|
41
|
+
belongs_to :group
|
|
42
|
+
end
|
|
43
|
+
|
|
44
|
+
devise *@@devise_options
|
|
45
|
+
|
|
46
|
+
def password_required?
|
|
47
|
+
# TODO: nil? is not suitable for here we should use empty? or blink?
|
|
48
|
+
|
|
49
|
+
(provider.nil? || password.nil?) && super
|
|
50
|
+
end
|
|
51
|
+
|
|
52
|
+
def self.find_from_oauth(auth, signed_in_resource=nil)
|
|
53
|
+
user = User.where(:provider => auth.provider, :uid => auth.uid).first
|
|
54
|
+
|
|
55
|
+
first_name = auth.info.first_name
|
|
56
|
+
last_name = auth.info.last_name
|
|
57
|
+
|
|
58
|
+
if first_name.blank?
|
|
59
|
+
# With first_name being blank last_name is probably is blank too
|
|
60
|
+
name = auth.info.name.split(" ")
|
|
61
|
+
first_name = name[0]
|
|
62
|
+
last_name = name[1,] || ""
|
|
63
|
+
end
|
|
64
|
+
unless user
|
|
65
|
+
user = User.create(first_name: first_name,
|
|
66
|
+
last_name: last_name,
|
|
67
|
+
provider: auth.provider,
|
|
68
|
+
uid: auth.uid,
|
|
69
|
+
email: auth.info.email,
|
|
70
|
+
password: Devise.friendly_token[0,20])
|
|
71
|
+
end
|
|
72
|
+
user
|
|
73
|
+
|
|
74
|
+
end
|
|
75
|
+
|
|
76
|
+
end
|
|
77
|
+
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>
|