Skip to content

Commit ee73422

Browse files
bug fixes
1 parent ddbf215 commit ee73422

File tree

8 files changed

+91
-27
lines changed

8 files changed

+91
-27
lines changed

app/Http/Controllers/FormController.php

Lines changed: 57 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -43,9 +43,14 @@ public function showForm($module, $user_role)
4343
$perms = ['create' => true, 'update' => true, 'delete' => true];
4444
} else {
4545
$perms = [];
46-
$perms['create'] = $this->roleWiseModules($user_role, "Create", $module['name']);
47-
$perms['update'] = $this->roleWiseModules($user_role, "Update", $module['name']);
48-
$perms['delete'] = $this->roleWiseModules($user_role, "Delete", $module['name']);
46+
47+
if ($module['link_field_value']) {
48+
$perms['create'] = $this->roleWiseModules($user_role, "Create", $module['name']);
49+
} else {
50+
$perms['create'] = $this->roleWiseModules($user_role, "Create", $module['name']);
51+
$perms['update'] = $this->roleWiseModules($user_role, "Update", $module['name']);
52+
$perms['delete'] = $this->roleWiseModules($user_role, "Delete", $module['name']);
53+
}
4954
}
5055

5156
// Shows an existing record
@@ -178,6 +183,53 @@ public function showForm($module, $user_role)
178183
}
179184
}
180185
}
186+
187+
$update_perms = $this->moduleWisePermissions($user_role, "Update", $module['name']);
188+
$delete_perms = $this->moduleWisePermissions($user_role, "Delete", $module['name']);
189+
190+
if ($update_perms) {
191+
$can_update = true;
192+
193+
foreach ($update_perms as $column_name => $column_value) {
194+
if (is_array($column_value)) {
195+
if (!in_array($data[$module['table_name']]->{$column_name}, $column_value)) {
196+
$can_update = false;
197+
break;
198+
}
199+
} else {
200+
if ($data[$module['table_name']]->{$column_name} != $column_value) {
201+
$can_update = false;
202+
break;
203+
}
204+
}
205+
}
206+
207+
$perms['update'] = $can_update;
208+
} else {
209+
$perms['update'] = false;
210+
}
211+
212+
if ($delete_perms) {
213+
$can_delete = true;
214+
215+
foreach ($delete_perms as $column_name => $column_value) {
216+
if (is_array($column_value)) {
217+
if (!in_array($data[$module['table_name']]->{$column_name}, $column_value)) {
218+
$can_delete = false;
219+
break;
220+
}
221+
} else {
222+
if ($data[$module['table_name']]->{$column_name} != $column_value) {
223+
$can_delete = false;
224+
break;
225+
}
226+
}
227+
}
228+
229+
$perms['delete'] = $can_delete;
230+
} else {
231+
$perms['delete'] = false;
232+
}
181233
} else {
182234
session()->flash('success', false);
183235
return $this->sendResponse(401, __('You are not authorized to view this record'));
@@ -372,8 +424,8 @@ public function saveDataInDb($form_data, $module, $action)
372424

373425
// save parent data and child table data if found
374426
foreach ($form_data as $form_table => $form_table_data) {
427+
// this is parent table
375428
if ($form_table == $module['table_name']) {
376-
// this is parent table
377429
if ($action == "create") {
378430
$can_create = true;
379431

@@ -483,10 +535,7 @@ public function saveDataInDb($form_data, $module, $action)
483535
unset($child_record['action']);
484536

485537
if (count($child_record)) {
486-
if (!isset($child_record[$module['child_foreign_key']])) {
487-
$child_record[$module['child_foreign_key']] = $module['link_field_value'];
488-
}
489-
538+
$child_record[$module['child_foreign_key']] = $module['link_field_value'];
490539
$result = DB::table($form_table)->insertGetId($child_record);
491540
$form_data[$form_table][$idx]['id'] = $result;
492541
}

app/Http/Controllers/ReportController.php

Lines changed: 14 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,13 @@ public function show()
2323
$app_reports = config('reports');
2424

2525
foreach ($app_reports as $report_name => $report) {
26-
if (isset($report['allowed_roles']) && $report['allowed_roles'] && !in_array(auth()->user()->role, $report['allowed_roles'])) {
26+
$allowed_roles = ['Administrator', 'System Administrator'];
27+
28+
if (isset($report['allowed_roles']) && $report['allowed_roles']) {
29+
$allowed_roles = array_merge($allowed_roles, $report['allowed_roles']);
30+
}
31+
32+
if (!in_array(auth()->user()->role, $allowed_roles)) {
2733
unset($app_reports[$report_name]);
2834
}
2935
}
@@ -46,7 +52,13 @@ public function showReport(Request $request, $report_name)
4652
return redirect()->route('home')->with('msg', __('No such report found'));
4753
}
4854

49-
if (isset($report_config['allowed_roles']) && !in_array($user_role, $report_config['allowed_roles'])) {
55+
$allowed_roles = ['Administrator', 'System Administrator'];
56+
57+
if (isset($report_config['allowed_roles']) && $report_config['allowed_roles']) {
58+
$allowed_roles = array_merge($allowed_roles, $report_config['allowed_roles']);
59+
}
60+
61+
if (!in_array($user_role, $allowed_roles)) {
5062
return redirect()->route('home')->with('msg', __('You are not authorized to view') . ' "' . __(awesome_case($report_name)) . '"');
5163
}
5264

app/Http/Controllers/UserController.php

Lines changed: 13 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -39,14 +39,14 @@ public function beforeSave($request)
3939
{
4040
// set full name
4141
if ($request->filled('first_name')) {
42-
$full_name = $request->get('first_name');
42+
$full_name = trim($request->get('first_name'));
4343

4444
if ($request->filled('title')) {
45-
$full_name = $request->get('title') . ' ' . $full_name;
45+
$full_name = trim($request->get('title')) . ' ' . $full_name;
4646
}
4747

4848
if ($request->filled('last_name')) {
49-
$full_name = $full_name . ' ' . $request->get('last_name');
49+
$full_name = $full_name . ' ' . trim($request->get('last_name'));
5050
}
5151

5252
$request->offsetSet('full_name', $full_name);
@@ -83,25 +83,27 @@ public function afterSave($data)
8383
// check if username is already registered
8484
public function validateUsername($request)
8585
{
86-
if ($request->get('username')) {
86+
if ($request->filled('username')) {
87+
$username = trim($request->get('username'));
88+
$email = $request->filled('email') ? trim($request->get('email')) : null;
8789
$user_details = User::select('username', 'email');
8890

89-
if ($request->id) {
90-
$user_details = $user_details->where('id', '!=', $request->get('id'));
91+
if ($request->filled('id')) {
92+
$user_details = $user_details->where('id', '!=', trim($request->get('id')));
9193
}
9294

93-
$user_details = $user_details->where(function($query) use ($request) {
94-
$query->where('username', $request->get('username'))
95-
->orWhere('email', $request->get('email'));
95+
$user_details = $user_details->where(function($query) use ($username, $email) {
96+
$query->where('username', $username)
97+
->orWhere('email', $email);
9698
})
9799
->first();
98100

99101
if ($user_details) {
100102
session()->flash('success', false);
101103

102-
if ($user_details->username == $request->get('username')) {
104+
if ($user_details->username == $username) {
103105
$msg = __('Username') . ': "' . $user_details->username . '" ' . __('is already registered') . '.';
104-
} elseif ($user_details->email == $request->get('email')) {
106+
} elseif ($user_details->email == $email) {
105107
$msg = __('Email') . ': "' . $user_details->email . '" ' . __('is already registered') . '.';
106108
}
107109

public/js/origin/form.js

Lines changed: 1 addition & 1 deletion
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

public/js/origin/module.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -8,7 +8,7 @@ $(document).ready(function() {
88

99
$('body').on('change', '[name="name"]', function() {
1010
var module_name = $(this).val().replace(/\s/g, "");
11-
var slug = module_name.slugify();
11+
var slug = module_name.replace(/(?:^|\.?)([A-Z])/g, function (x,y){return "_" + y.toLowerCase()}).replace(/^_/, "");
1212

1313
if (!$.trim($('body').find('[name="display_name"]').val())) {
1414
$('body').find('[name="display_name"]').val(module_name).trigger('change');

public/mix-manifest.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@
44
"/js/origin/activity.js": "/js/origin/activity.js?id=dc15b37e29b43478f020",
55
"/js/origin/backups.js": "/js/origin/backups.js?id=1a6e72395cc52b9c6f46",
66
"/js/origin/list_view.js": "/js/origin/list_view.js?id=6d41e6050c514b218b55",
7-
"/js/origin/form.js": "/js/origin/form.js?id=05ec79f6dbb474c1e12c",
7+
"/js/origin/form.js": "/js/origin/form.js?id=65803faf33225e619058",
88
"/css/origin/report_view.css": "/css/origin/report_view.css?id=81a0f9e22b611185cb5b",
99
"/js/origin/report_view.js": "/js/origin/report_view.js?id=5574089dce9259ad7747"
1010
}

resources/js/origin/form.js

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -179,6 +179,7 @@ function makeFieldsReadable() {
179179

180180
$.each($form_elements, function(index, element) {
181181
var ele_type = $(element).attr("type");
182+
var ele_name = $(element).attr("name");
182183
var is_input_group = false;
183184

184185
if (!["hidden", "file"].contains(ele_type)) {
@@ -212,10 +213,10 @@ function makeFieldsReadable() {
212213
ele_val = $.trim($(input_group).find('.input-group-text').html()) + '<span class="ml-2">' + ele_val + '</span>';
213214
}
214215

215-
new_control = '<p class="form-control-static origin-static">' + ele_val + '</p>';
216+
new_control = '<p class="form-control-static origin-static" data-name="' + ele_name + '">' + ele_val + '</p>';
216217
}
217218
else {
218-
new_control = '<p class="form-control-static origin-static">' + ele_val + '</p>';
219+
new_control = '<p class="form-control-static origin-static" data-name="' + ele_name + '">' + ele_val + '</p>';
219220
}
220221
}
221222

resources/views/auth/login.blade.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@
4848
<label class="custom-control-label remember-me" for="remember-me"> {{ __('Remember Me') }}</label>
4949
</div>
5050
</div>
51-
<div class="col-5">
51+
<div class="col-5 text-right">
5252
<a href="{{ route('password.request') }}" class="text-sm">
5353
{{ __('Forgot password') }}?
5454
</a>

0 commit comments

Comments
 (0)