usman 0.1.6dev2 → 0.2.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (116) hide show
  1. checksums.yaml +4 -4
  2. data/app/assets/images/android-icon-144x144.png +0 -0
  3. data/app/assets/images/android-icon-192x192.png +0 -0
  4. data/app/assets/images/android-icon-36x36.png +0 -0
  5. data/app/assets/images/android-icon-48x48.png +0 -0
  6. data/app/assets/images/android-icon-72x72.png +0 -0
  7. data/app/assets/images/android-icon-96x96.png +0 -0
  8. data/app/assets/images/apple-icon-114x114.png +0 -0
  9. data/app/assets/images/apple-icon-120x120.png +0 -0
  10. data/app/assets/images/apple-icon-144x144.png +0 -0
  11. data/app/assets/images/apple-icon-152x152.png +0 -0
  12. data/app/assets/images/apple-icon-180x180.png +0 -0
  13. data/app/assets/images/apple-icon-57x57.png +0 -0
  14. data/app/assets/images/apple-icon-60x60.png +0 -0
  15. data/app/assets/images/apple-icon-72x72.png +0 -0
  16. data/app/assets/images/apple-icon-76x76.png +0 -0
  17. data/app/assets/images/apple-icon-precomposed.png +0 -0
  18. data/app/assets/images/apple-icon.png +0 -0
  19. data/app/assets/images/browserconfig.xml +2 -0
  20. data/app/assets/images/favicon-16x16.png +0 -0
  21. data/app/assets/images/favicon-32x32.png +0 -0
  22. data/app/assets/images/favicon-96x96.png +0 -0
  23. data/app/assets/images/favicon.ico +0 -0
  24. data/app/assets/images/logo-on-white.png +0 -0
  25. data/app/assets/images/logo-small.png +0 -0
  26. data/app/assets/images/logo.png +0 -0
  27. data/app/assets/images/manifest.json +41 -0
  28. data/app/assets/images/ms-icon-144x144.png +0 -0
  29. data/app/assets/images/ms-icon-150x150.png +0 -0
  30. data/app/assets/images/ms-icon-310x310.png +0 -0
  31. data/app/assets/images/ms-icon-70x70.png +0 -0
  32. data/app/assets/sketches/logo.sketch +0 -0
  33. data/app/controllers/api/v1/base_controller.rb +13 -0
  34. data/app/controllers/api/v1/registrations_controller.rb +41 -0
  35. data/app/controllers/usman/admin_controller.rb +26 -0
  36. data/app/controllers/usman/application_controller.rb +16 -0
  37. data/app/controllers/usman/dashboard_controller.rb +26 -0
  38. data/app/controllers/usman/features_controller.rb +83 -0
  39. data/app/controllers/usman/my_account_controller.rb +25 -0
  40. data/app/controllers/usman/permissions_controller.rb +85 -0
  41. data/app/controllers/usman/resource_controller.rb +21 -0
  42. data/app/controllers/usman/roles_controller.rb +68 -0
  43. data/app/controllers/usman/sessions_controller.rb +4 -1
  44. data/app/controllers/usman/user_roles_controller.rb +141 -0
  45. data/app/controllers/usman/users_controller.rb +133 -0
  46. data/app/helpers/usman/api_helper.rb +79 -0
  47. data/app/helpers/usman/authentication_helper.rb +21 -7
  48. data/app/models/device.rb +149 -0
  49. data/app/models/feature.rb +11 -7
  50. data/app/models/permission.rb +17 -13
  51. data/app/models/registration.rb +108 -0
  52. data/app/models/role.rb +11 -7
  53. data/app/models/user.rb +19 -13
  54. data/app/services/usman/mobile_registration_service.rb +127 -0
  55. data/app/views/layouts/kuppayam/_sidebar.html.erb +39 -19
  56. data/app/views/layouts/kuppayam/profile.html.erb +120 -0
  57. data/app/views/usman/dashboard/index.html.erb +118 -0
  58. data/app/views/usman/{admin/features → features}/_form.html.erb +1 -1
  59. data/app/views/usman/{admin/features → features}/_index.html.erb +10 -10
  60. data/app/views/usman/{admin/features → features}/_row.html.erb +10 -10
  61. data/app/views/usman/{admin/features → features}/_show.html.erb +2 -2
  62. data/app/views/usman/{admin/features → features}/index.html.erb +4 -4
  63. data/app/views/usman/my_account/index.html.erb +1 -0
  64. data/app/views/usman/{admin/permissions → permissions}/_form.html.erb +1 -1
  65. data/app/views/usman/{admin/permissions → permissions}/_index.html.erb +2 -2
  66. data/app/views/usman/{admin/permissions → permissions}/_row.html.erb +2 -2
  67. data/app/views/usman/{admin/permissions → permissions}/_show.html.erb +2 -2
  68. data/app/views/usman/{admin/permissions → permissions}/index.html.erb +4 -4
  69. data/app/views/usman/{admin/roles → roles}/_form.html.erb +1 -1
  70. data/app/views/usman/{admin/roles → roles}/_index.html.erb +3 -3
  71. data/app/views/usman/{admin/roles → roles}/_row.html.erb +3 -3
  72. data/app/views/usman/{admin/roles → roles}/_show.html.erb +6 -6
  73. data/app/views/usman/{admin/roles → roles}/index.html.erb +5 -5
  74. data/app/views/usman/sessions/_form.html.erb +1 -1
  75. data/app/views/usman/{admin/user_roles → user_roles}/_form.html.erb +1 -1
  76. data/app/views/usman/{admin/user_roles → user_roles}/_index.html.erb +2 -2
  77. data/app/views/usman/{admin/user_roles → user_roles}/_row.html.erb +3 -3
  78. data/app/views/usman/{admin/users → users}/_form.html.erb +1 -1
  79. data/app/views/usman/{admin/users → users}/_index.html.erb +9 -9
  80. data/app/views/usman/{admin/users → users}/_row.html.erb +9 -9
  81. data/app/views/usman/{admin/users → users}/_show.html.erb +8 -8
  82. data/app/views/usman/{admin/users → users}/index.html.erb +8 -8
  83. data/config/locales/usman/mobile_registration.ar.yml +14 -0
  84. data/config/locales/usman/mobile_registration.en.yml +14 -0
  85. data/config/routes.rb +25 -21
  86. data/db/master_data/roles.csv +2 -0
  87. data/db/migrate/{20170728095744_create_otp_registrations.rb → 20170819113217_create_registrations.rb} +4 -4
  88. data/db/migrate/20170819113218_add_registration_id_to_users.rb +7 -0
  89. data/db/migrate/20170819113219_create_devices.rb +41 -0
  90. data/lib/tasks/usman/data.rake +85 -0
  91. data/lib/tasks/usman/master_data.rake +44 -0
  92. data/lib/usman/engine.rb +2 -1
  93. data/lib/usman/version.rb +1 -1
  94. metadata +111 -52
  95. data/app/controllers/usman/admin/base_controller.rb +0 -46
  96. data/app/controllers/usman/admin/dashboard_controller.rb +0 -26
  97. data/app/controllers/usman/admin/features_controller.rb +0 -83
  98. data/app/controllers/usman/admin/permissions_controller.rb +0 -85
  99. data/app/controllers/usman/admin/resource_controller.rb +0 -17
  100. data/app/controllers/usman/admin/roles_controller.rb +0 -68
  101. data/app/controllers/usman/admin/user_roles_controller.rb +0 -142
  102. data/app/controllers/usman/admin/users_controller.rb +0 -133
  103. data/app/views/usman/admin/dashboard/index.html.erb +0 -51
  104. data/config/initializers/overide_kuppayam_controllers.rb +0 -74
  105. data/lib/tasks/usman/all.rake +0 -73
  106. /data/app/views/usman/{admin/permissions → permissions}/_action_buttons.html.erb +0 -0
  107. /data/config/locales/{kuppayam → usman}/authentication.ar.yml +0 -0
  108. /data/config/locales/{kuppayam → usman}/authentication.en.yml +0 -0
  109. /data/db/{import_data → data}/dummy/features.csv +0 -0
  110. /data/db/{import_data → data}/dummy/permissions.csv +0 -0
  111. /data/db/{import_data → data}/dummy/roles.csv +0 -0
  112. /data/db/{import_data → data}/dummy/users.csv +0 -0
  113. /data/db/{import_data → data}/features.csv +0 -0
  114. /data/db/{import_data → data}/permissions.csv +0 -0
  115. /data/db/{import_data → data}/roles.csv +0 -0
  116. /data/db/{import_data → data}/users.csv +0 -0
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA1:
3
- metadata.gz: 9ec7d0671d92ce351c4882f0bbe8857fdcb18ab2
4
- data.tar.gz: 81c5d13af42fd0ae271e5c4a68ec6fe117164154
3
+ metadata.gz: dcf66615fd081189a376eedeb39266e06d8a2126
4
+ data.tar.gz: 311251208365a4a012a4c84ce59b776ef6d70a87
5
5
  SHA512:
6
- metadata.gz: 67cd7e26738632cc4a3fc1ca72f3cc4c512b2578ee1a988a950f331e746b3510b8a4dee7102bd4a60579f884339691df99edda6a8d5abb00fec7e0cac35a5345
7
- data.tar.gz: da160eabaa5d3927601dc1b1cd546ff569b07ba47ae773cb1e66efec27c58c25f41a87248f5fd97ea9af82c069aa4245c623c26fdfba3d114c1874e2f9257248
6
+ metadata.gz: 2d6df82e6a200bf4f973eda91c40888b828c1fe7ec9a4dfdb353e2b4c3665ae9debfd58e462a363530377e3797218f7d431578e5b50a4968cd97096d9e8cef86
7
+ data.tar.gz: d059b684edf4e98ff8936483186df1748b87d87e38a4c42a1f288522c516a0523efa8b1708a5d4751f0e53ff9e74fddc7f85aa899c78d089e22d045e3b643255
Binary file
@@ -0,0 +1,2 @@
1
+ <?xml version="1.0" encoding="utf-8"?>
2
+ <browserconfig><msapplication><tile><square70x70logo src="/ms-icon-70x70.png"/><square150x150logo src="/ms-icon-150x150.png"/><square310x310logo src="/ms-icon-310x310.png"/><TileColor>#ffffff</TileColor></tile></msapplication></browserconfig>
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
Binary file
@@ -0,0 +1,41 @@
1
+ {
2
+ "name": "App",
3
+ "icons": [
4
+ {
5
+ "src": "\/android-icon-36x36.png",
6
+ "sizes": "36x36",
7
+ "type": "image\/png",
8
+ "density": "0.75"
9
+ },
10
+ {
11
+ "src": "\/android-icon-48x48.png",
12
+ "sizes": "48x48",
13
+ "type": "image\/png",
14
+ "density": "1.0"
15
+ },
16
+ {
17
+ "src": "\/android-icon-72x72.png",
18
+ "sizes": "72x72",
19
+ "type": "image\/png",
20
+ "density": "1.5"
21
+ },
22
+ {
23
+ "src": "\/android-icon-96x96.png",
24
+ "sizes": "96x96",
25
+ "type": "image\/png",
26
+ "density": "2.0"
27
+ },
28
+ {
29
+ "src": "\/android-icon-144x144.png",
30
+ "sizes": "144x144",
31
+ "type": "image\/png",
32
+ "density": "3.0"
33
+ },
34
+ {
35
+ "src": "\/android-icon-192x192.png",
36
+ "sizes": "192x192",
37
+ "type": "image\/png",
38
+ "density": "4.0"
39
+ }
40
+ ]
41
+ }
Binary file
Binary file
@@ -0,0 +1,13 @@
1
+ module Api
2
+ module V1
3
+ class BaseController < ActionController::API
4
+
5
+ include ActionController::HttpAuthentication::Token::ControllerMethods
6
+ include ApiHelper
7
+
8
+ before_filter :require_auth_token
9
+
10
+ end
11
+ end
12
+
13
+ end
@@ -0,0 +1,41 @@
1
+ module Api
2
+ module V1
3
+ class RegistrationsController < ActionController::API
4
+
5
+ include Usman::ApiHelper
6
+
7
+ def register
8
+ proc_code = Proc.new do
9
+ @reg_data = Usman::MobileRegistrationService.new(params)
10
+ @errors = @reg_data.errors
11
+ @success = false
12
+ if @errors[:heading].blank?
13
+ @success = true
14
+ @alert = {
15
+ heading: I18n.translate("mobile_registration.otp_sent.heading"),
16
+ message: I18n.translate("mobile_registration.otp_sent.message")
17
+ }
18
+ @data = {
19
+ registration: @reg_data.registration,
20
+ device: @reg_data.device
21
+ }
22
+ end
23
+ end
24
+ render_json_response(proc_code)
25
+ end
26
+
27
+ def resend_otp
28
+ proc_code = Proc.new do
29
+ end
30
+ render_json_response(proc_code)
31
+ end
32
+
33
+ def verify
34
+ proc_code = Proc.new do
35
+ end
36
+ render_json_response(proc_code)
37
+ end
38
+ end
39
+ end
40
+ end
41
+
@@ -0,0 +1,26 @@
1
+ module Usman
2
+ class AdminController < Kuppayam::BaseController
3
+
4
+ include Usman::AuthenticationHelper
5
+
6
+ layout 'kuppayam/admin'
7
+
8
+ before_action :current_user
9
+ before_action :require_user
10
+ before_action :require_site_admin
11
+
12
+ private
13
+
14
+ def set_default_title
15
+ set_title("Usman Admin | User Management Module")
16
+ end
17
+
18
+ def configure_filter_param_mapping
19
+ @filter_param_mapping = default_filter_param_mapping
20
+ @filter_param_mapping[:super_admin] = :sa
21
+ @filter_param_mapping[:user] = :us
22
+ @filter_param_mapping[:feature] = :ft
23
+ end
24
+
25
+ end
26
+ end
@@ -3,7 +3,23 @@ module Usman
3
3
 
4
4
  include Usman::AuthenticationHelper
5
5
 
6
+ layout 'kuppayam/admin'
7
+
6
8
  before_action :current_user
9
+ before_action :require_user
10
+
11
+ private
12
+
13
+ def set_default_title
14
+ set_title("Usman Admin | User Management Module")
15
+ end
16
+
17
+ def configure_filter_param_mapping
18
+ @filter_param_mapping = default_filter_param_mapping
19
+ @filter_param_mapping[:super_admin] = :sa
20
+ @filter_param_mapping[:user] = :us
21
+ @filter_param_mapping[:feature] = :ft
22
+ end
7
23
 
8
24
  end
9
25
  end
@@ -0,0 +1,26 @@
1
+ module Usman
2
+ class DashboardController < AdminController
3
+
4
+ before_action :require_site_admin
5
+
6
+ # GET /dashboard
7
+ def index
8
+ end
9
+
10
+ private
11
+
12
+ def breadcrumbs_configuration
13
+ {
14
+ heading: "User Dashboard",
15
+ description: "A Quick view of users and roles",
16
+ links: [{name: "Dashboard", link: dashboard_path, icon: 'fa-dashboard'}]
17
+ }
18
+ end
19
+
20
+ def set_navs
21
+ set_nav("usman/dashboard")
22
+ end
23
+
24
+ end
25
+ end
26
+
@@ -0,0 +1,83 @@
1
+ module Usman
2
+ class FeaturesController < ResourceController
3
+
4
+ before_action :require_site_admin
5
+
6
+ private
7
+
8
+ def get_collections
9
+ @relation = Feature.where("")
10
+
11
+ parse_filters
12
+ apply_filters
13
+
14
+ @features = @r_objects = @relation.includes(:feature_image).page(@current_page).per(@per_page)
15
+
16
+ return true
17
+ end
18
+
19
+ def apply_filters
20
+ @relation = @relation.search(@query) if @query
21
+ @relation = @relation.status(@status) if @status
22
+
23
+ @order_by = "created_at desc" unless @order_by
24
+ @relation = @relation.order(@order_by)
25
+ end
26
+
27
+ def configure_filter_settings
28
+ @filter_settings = {
29
+ string_filters: [
30
+ { filter_name: :query },
31
+ { filter_name: :status }
32
+ ],
33
+ boolean_filters: [],
34
+ reference_filters: [],
35
+ variable_filters: [],
36
+ }
37
+ end
38
+
39
+ def configure_filter_ui_settings
40
+ @filter_ui_settings = {
41
+ status: {
42
+ object_filter: false,
43
+ select_label: "Select Status",
44
+ display_hash: Feature::STATUS,
45
+ current_value: @status,
46
+ values: Feature::STATUS_REVERSE,
47
+ current_filters: @filters,
48
+ filters_to_remove: [],
49
+ filters_to_add: {},
50
+ url_method_name: 'users_url',
51
+ show_all_filter_on_top: true
52
+ }
53
+ }
54
+ end
55
+
56
+ def resource_controller_configuration
57
+ {
58
+ page_title: "Features",
59
+ js_view_path: "/kuppayam/workflows/parrot",
60
+ view_path: "/usman/features"
61
+ }
62
+ end
63
+
64
+ def breadcrumbs_configuration
65
+ {
66
+ heading: "Manage Features",
67
+ icon: "lincons-diamond",
68
+ description: "Listing all Features",
69
+ links: [{name: "Home", link: dashboard_path, icon: 'fa-home'},
70
+ {name: "Manage Features", link: features_path, icon: 'fa-calendar', active: true}]
71
+ }
72
+ end
73
+
74
+ def permitted_params
75
+ params.require(:feature).permit(:name)
76
+ end
77
+
78
+ def set_navs
79
+ set_nav("usman/features")
80
+ end
81
+
82
+ end
83
+ end
@@ -0,0 +1,25 @@
1
+ module Usman
2
+ class MyAccountController < ApplicationController
3
+
4
+ # GET /dashboard
5
+ def index
6
+ end
7
+
8
+ private
9
+
10
+ def breadcrumbs_configuration
11
+ {
12
+ heading: "My Account",
13
+ description: "Manage Account, Profile & Settings",
14
+ links: [{name: "Dashboard", link: dashboard_path, icon: 'fa-dashboard'},
15
+ {name: "My Account", link: "#", icon: 'fa-user'}]
16
+ }
17
+ end
18
+
19
+ def set_navs
20
+ set_nav("usman/my_account")
21
+ end
22
+
23
+ end
24
+ end
25
+
@@ -0,0 +1,85 @@
1
+ module Usman
2
+ class PermissionsController < ResourceController
3
+
4
+ before_action :require_site_admin
5
+
6
+ def create
7
+ @permission = @r_object = Permission.where(" user_id = ? AND feature_id = ? ", permitted_params[:user_id], permitted_params[:feature_id]).first || Permission.new
8
+ @permission.assign_attributes(permitted_params)
9
+ save_resource
10
+ get_collections
11
+ end
12
+
13
+ def update
14
+ @permission = @r_object = Permission.find_by_id(params[:id])
15
+ # The form will not submit can_create 0 if it is not selected
16
+ # hence making it false by default and letting it update by itself.
17
+ @permission.assign_attributes({"can_create": "0", "can_read": "0", "can_update": "0", "can_delete": "0"})
18
+ @permission.assign_attributes(permitted_params)
19
+ save_resource
20
+ get_collections
21
+ end
22
+
23
+ private
24
+
25
+ def get_collections
26
+ @relation = Permission.where("")
27
+
28
+ parse_filters
29
+ apply_filters
30
+
31
+ @permissions = @r_objects = @relation.includes(:user, :feature).page(@current_page).per(@per_page)
32
+
33
+ return true
34
+ end
35
+
36
+ def apply_filters
37
+ @relation = @relation.search(@query) if @query
38
+ @order_by = "user_id DESC, created_at DESC" unless @order_by
39
+ @relation = @relation.order(@order_by)
40
+ end
41
+
42
+ def configure_filter_settings
43
+ @filter_settings = {
44
+ string_filters: [{ filter_name: :query }],
45
+ boolean_filters: [],
46
+ reference_filters: [
47
+ { filter_name: :user, filter_class: User },
48
+ { filter_name: :feature, filter_class: Feature },
49
+ ],
50
+ variable_filters: [],
51
+ }
52
+ end
53
+
54
+ def configure_filter_ui_settings
55
+ @filter_ui_settings = {}
56
+ end
57
+
58
+ def resource_controller_configuration
59
+ {
60
+ page_title: "Permissions",
61
+ js_view_path: "/kuppayam/workflows/parrot",
62
+ view_path: "/usman/permissions"
63
+ }
64
+ end
65
+
66
+ def breadcrumbs_configuration
67
+ {
68
+ heading: "Manage Permissions",
69
+ icon: "fa-lock",
70
+ description: "Listing all Permissions",
71
+ links: [{name: "Home", link: dashboard_path, icon: 'fa-home'},
72
+ {name: "Manage Permissions", link: permissions_path, icon: 'fa-calendar', active: true}]
73
+ }
74
+ end
75
+
76
+ def permitted_params
77
+ params.require(:permission).permit(:user_id, :feature_id, :can_create, :can_read, :can_update, :can_delete)
78
+ end
79
+
80
+ def set_navs
81
+ set_nav("usman/permissions")
82
+ end
83
+
84
+ end
85
+ end
@@ -0,0 +1,21 @@
1
+ module Usman
2
+ class ResourceController < ApplicationController
3
+
4
+ include ResourceHelper
5
+ before_action :configure_resource_controller
6
+
7
+ private
8
+
9
+ def set_default_title
10
+ set_title("Usman Admin | User Management Module")
11
+ end
12
+
13
+ def configure_filter_param_mapping
14
+ @filter_param_mapping = default_filter_param_mapping
15
+ @filter_param_mapping[:super_admin] = :sa
16
+ @filter_param_mapping[:user] = :us
17
+ @filter_param_mapping[:feature] = :ft
18
+ end
19
+
20
+ end
21
+ end
@@ -0,0 +1,68 @@
1
+ module Usman
2
+ class RolesController < ResourceController
3
+
4
+ before_action :require_site_admin
5
+
6
+ private
7
+
8
+ def get_collections
9
+ @relation = Role.where("")
10
+
11
+ parse_filters
12
+ apply_filters
13
+
14
+ @roles = @r_objects = @relation.page(@current_page).per(@per_page)
15
+
16
+ return true
17
+ end
18
+
19
+ def apply_filters
20
+ @relation = @relation.search(@query) if @query
21
+
22
+ @order_by = "name ASC" unless @order_by
23
+ @relation = @relation.order(@order_by)
24
+ end
25
+
26
+ def configure_filter_settings
27
+ @filter_settings = {
28
+ string_filters: [
29
+ { filter_name: :query }
30
+ ],
31
+ boolean_filters: [],
32
+ reference_filters: [],
33
+ variable_filters: [],
34
+ }
35
+ end
36
+
37
+ def configure_filter_ui_settings
38
+ @filter_ui_settings = {}
39
+ end
40
+
41
+ def resource_controller_configuration
42
+ {
43
+ page_title: "Roles",
44
+ js_view_path: "/kuppayam/workflows/peacock",
45
+ view_path: "/usman/roles"
46
+ }
47
+ end
48
+
49
+ def breadcrumbs_configuration
50
+ {
51
+ heading: "Manage Roles",
52
+ icon: "fa-lock",
53
+ description: "Listing all Roles",
54
+ links: [{name: "Home", link: dashboard_path, icon: 'fa-home'},
55
+ {name: "Manage Roles", link: roles_path, icon: 'fa-calendar', active: true}]
56
+ }
57
+ end
58
+
59
+ def permitted_params
60
+ params.require(:role).permit(:name)
61
+ end
62
+
63
+ def set_navs
64
+ set_nav("admin/roles")
65
+ end
66
+
67
+ end
68
+ end
@@ -1,10 +1,13 @@
1
1
  module Usman
2
- class SessionsController < Usman::ApplicationController
2
+ class SessionsController < Kuppayam::BaseController
3
3
 
4
+ include Usman::AuthenticationHelper
5
+
4
6
  layout 'kuppayam/blank'
5
7
 
6
8
  rescue_from ActionController::InvalidAuthenticityToken, :with => :rescue_from_invalid_authenticity_token
7
9
 
10
+ before_action :current_user
8
11
  before_action :require_user, :only => :sign_out
9
12
  skip_before_action :set_navs
10
13