usman 0.1.6dev2 → 0.2.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (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