Skip to content

Commit dc75c21

Browse files
authored
Merge pull request #6 from thedevsbuddy/dev
Updated to v0.3.5
2 parents 10e858f + 4110d91 commit dc75c21

File tree

15 files changed

+97
-407
lines changed

15 files changed

+97
-407
lines changed

CHANGELOG.md

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,13 @@
22

33
==================================================
44

5+
## Release v0.3.5 - Jul 03, 2022
6+
7+
- Fixed routes generation service.
8+
- Now generating routes in the `admin.php` and `api.php` instead of separate `json` file.
9+
10+
==================================================
11+
512
## Release v0.3.2 - Jun 26, 2022
613

714
- Fixed adminr home reference url in landing page.

README.md

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
# AdminR v0.3.2
1+
# AdminR v0.3.5
22

33
<p align="center">
44
<a href="https://packagist.org/packages/thedevsbuddy/adminr"><img src="https://img.shields.io/packagist/dt/thedevsbuddy/adminr" alt="Total Downloads"></a>
@@ -13,11 +13,9 @@ AdminR is a simple admin panel built on top of [Laravel Framework](https://larav
1313
AdminR help to reduce approx 90% of the work for developers which they do to build a backend or admin panel and the APIs for their apps.
1414

1515
### Support me to add more feature
16-
<center>
1716
<a href="https://www.buymeacoffee.com/devsbuddy" target="_blank">
1817
<img src="https://www.buymeacoffee.com/assets/img/guidelines/download-assets-2.svg" style="height: 45px; border-radius: 12px"/>
1918
</a>
20-
</center>
2119

2220
## Get Started
2321

app/Models/User.php

Lines changed: 14 additions & 42 deletions
Original file line numberDiff line numberDiff line change
@@ -20,28 +20,13 @@ class User extends Authenticatable
2020
{
2121
use HasApiTokens, HasFactory, Notifiable, HasRoles, HasExcludeScope, HasMailable;
2222

23-
/**
24-
* The attributes that are mass assignable.
25-
*
26-
* @var string[]
27-
*/
2823
protected $guarded = ['id'];
2924

30-
/**
31-
* The attributes that should be hidden for serialization.
32-
*
33-
* @var array
34-
*/
3525
protected $hidden = [
3626
'password',
3727
'remember_token',
3828
];
3929

40-
/**
41-
* The attributes that should be cast.
42-
*
43-
* @var array
44-
*/
4530
protected $casts = [
4631
'email_verified_at' => 'datetime',
4732
];
@@ -51,47 +36,34 @@ public function avatar(): Attribute
5136
return Attribute::make(
5237
get: function($val) {
5338
$avatar = !is_null($val) ? $val : 'https://ui-avatars.com/api/?name='.$this->name.'&background=random&v=' . rand(0, 999999);
54-
if(Str::contains(request()->url(), 'api')){
39+
if(Str::contains(request()->url(), '/api')){
5540
return asset($avatar);
5641
}
5742
return $avatar;
5843
}
5944
);
6045
}
6146

62-
/**
63-
* Stores username by transforming to lower case.
64-
*
65-
* @param $value
66-
* @return string
67-
*/
68-
public function setUsernameAttribute($value)
47+
public function username(): Attribute
6948
{
70-
$this->attributes['username'] = Str::lower($value);
49+
return Attribute::make(
50+
set: function($val) {
51+
return Str::lower($val);
52+
},
53+
);
7154
}
7255

73-
/**
74-
* Stores name by transforming to title case.
75-
*
76-
* @param $value
77-
* @return string
78-
*/
79-
public function setNameAttribute($value)
56+
public function name(): Attribute
8057
{
81-
$this->attributes['name'] = Str::title($value);
58+
return Attribute::make(
59+
set: function($val) {
60+
return Str::title($val);
61+
},
62+
);
8263
}
8364

8465

85-
/**
86-
* Scope the model query to certain roles only.
87-
*
88-
* @param \Illuminate\Database\Eloquent\Builder $query
89-
* @param string|array $roles
90-
* @param string $guard
91-
*
92-
* @return \Illuminate\Database\Eloquent\Builder
93-
*/
94-
public function scopeNotRole(Builder $query, $roles, $guard = null)
66+
public function scopeNotRole(Builder $query, $roles, $guard = null): Builder
9567
{
9668
if ($roles instanceof Collection) {
9769
$roles = $roles->all();

app/Providers/RouteServiceProvider.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@ public function boot()
4949
->namespace($this->namespace)
5050
->group(base_path('routes/adminr/api.php'));
5151

52-
Route::middleware('web')
52+
Route::middleware(["web", "auth", "admin"])
5353
->namespace($this->namespace)
5454
->group(base_path('routes/adminr/admin.php'));
5555
});
Lines changed: 9 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -1,37 +1,9 @@
1-
{
2-
"index": {
3-
"route": "{{MODEL_ENTITIES}}",
4-
"middleware": {{MIDDLEWARES}},
5-
"controller": "App\\Http\\Controllers\\Api\\{{CONTROLLER_CLASS}}",
6-
"action": "index",
7-
"method": "get"
8-
},
9-
"show": {
10-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}",
11-
"middleware": {{MIDDLEWARES}},
12-
"controller": "App\\Http\\Controllers\\Api\\{{CONTROLLER_CLASS}}",
13-
"action": "show",
14-
"method": "get"
15-
},
16-
"store": {
17-
"route": "{{MODEL_ENTITIES}}",
18-
"middleware": {{MIDDLEWARES}},
19-
"controller": "App\\Http\\Controllers\\Api\\{{CONTROLLER_CLASS}}",
20-
"action": "store",
21-
"method": "post"
22-
},
23-
"update": {
24-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}",
25-
"middleware": {{MIDDLEWARES}},
26-
"controller": "App\\Http\\Controllers\\Api\\{{CONTROLLER_CLASS}}",
27-
"action": "update",
28-
"method": "put"
29-
},
30-
"destroy": {
31-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}",
32-
"middleware": {{MIDDLEWARES}},
33-
"controller": "App\\Http\\Controllers\\Api\\{{CONTROLLER_CLASS}}",
34-
"action": "destroy",
35-
"method": "delete"
36-
}
37-
}
1+
Route::group(['prefix' => config('app.route_prefix') . '/manage/{{MODEL_ENTITIES}}'], function () {
2+
Route::get('/', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'index'])->middleware({{MIDDLEWARES}});
3+
Route::get('/create', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'create'])->middleware({{MIDDLEWARES}});
4+
Route::post('/store', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'store'])->middleware({{MIDDLEWARES}});
5+
Route::get('/{{{MODEL_ENTITY}}}', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'show'])->middleware({{MIDDLEWARES}});
6+
Route::get('/{{{MODEL_ENTITY}}}/edit', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'edit'])->middleware({{MIDDLEWARES}});
7+
Route::put('/{{{MODEL_ENTITY}}}', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'update'])->middleware({{MIDDLEWARES}});
8+
Route::delete('/{{{MODEL_ENTITY}}}', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'destroy'])->middleware({{MIDDLEWARES}});
9+
});
Lines changed: 11 additions & 51 deletions
Original file line numberDiff line numberDiff line change
@@ -1,51 +1,11 @@
1-
{
2-
"index": {
3-
"route": "{{MODEL_ENTITIES}}",
4-
"middleware": {{MIDDLEWARES}},
5-
"controller": "App\\Http\\Controllers\\Api\\{{CONTROLLER_CLASS}}",
6-
"action": "index",
7-
"method": "get"
8-
},
9-
"show": {
10-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}",
11-
"middleware": {{MIDDLEWARES}},
12-
"controller": "App\\Http\\Controllers\\Api\\{{CONTROLLER_CLASS}}",
13-
"action": "show",
14-
"method": "get"
15-
},
16-
"store": {
17-
"route": "{{MODEL_ENTITIES}}",
18-
"middleware": {{MIDDLEWARES}},
19-
"controller": "App\\Http\\Controllers\\Api\\{{CONTROLLER_CLASS}}",
20-
"action": "store",
21-
"method": "post"
22-
},
23-
"update": {
24-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}",
25-
"middleware": {{MIDDLEWARES}},
26-
"controller": "App\\Http\\Controllers\\Api\\{{CONTROLLER_CLASS}}",
27-
"action": "update",
28-
"method": "put"
29-
},
30-
"destroy": {
31-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}",
32-
"middleware": {{MIDDLEWARES}},
33-
"controller": "App\\Http\\Controllers\\Api\\{{CONTROLLER_CLASS}}",
34-
"action": "destroy",
35-
"method": "delete"
36-
},
37-
"restore": {
38-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}/restore",
39-
"middleware": {{MIDDLEWARES}},
40-
"controller": "App\\Http\\Controllers\\Api\\{{CONTROLLER_CLASS}}",
41-
"action": "restore",
42-
"method": "post"
43-
},
44-
"forceDestroy": {
45-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}/force-destroy",
46-
"middleware": {{MIDDLEWARES}},
47-
"controller": "App\\Http\\Controllers\\Api\\{{CONTROLLER_CLASS}}",
48-
"action": "forceDestroy",
49-
"method": "delete"
50-
}
51-
}
1+
Route::group(['prefix' => config('app.route_prefix') . '/manage/{{MODEL_ENTITIES}}'], function () {
2+
Route::get('/', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'index'])->middleware({{MIDDLEWARES}});
3+
Route::get('/create', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'create'])->middleware({{MIDDLEWARES}});
4+
Route::post('/store', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'store'])->middleware({{MIDDLEWARES}});
5+
Route::get('/{{{MODEL_ENTITY}}}', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'show'])->middleware({{MIDDLEWARES}});
6+
Route::get('/{{{MODEL_ENTITY}}}/edit', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'edit'])->middleware({{MIDDLEWARES}});
7+
Route::put('/{{{MODEL_ENTITY}}}', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'update'])->middleware({{MIDDLEWARES}});
8+
Route::delete('/{{{MODEL_ENTITY}}}', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'destroy'])->middleware({{MIDDLEWARES}});
9+
Route::post('/{{{MODEL_ENTITY}}}/restore', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'restore'])->middleware({{MIDDLEWARES}});
10+
Route::delete('/{{{MODEL_ENTITY}}}/force-destroy', [{{API_CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'forceDestroy'])->middleware({{MIDDLEWARES}});
11+
});
Lines changed: 9 additions & 58 deletions
Original file line numberDiff line numberDiff line change
@@ -1,58 +1,9 @@
1-
{
2-
"index": {
3-
"route": "{{MODEL_ENTITIES}}",
4-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_list"],
5-
"name": "{{MODEL_ENTITIES}}.index",
6-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
7-
"action": "index",
8-
"method": "get"
9-
},
10-
"create": {
11-
"route": "{{MODEL_ENTITIES}}/create",
12-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_create"],
13-
"name": "{{MODEL_ENTITIES}}.create",
14-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
15-
"action": "create",
16-
"method": "get"
17-
},
18-
"store": {
19-
"route": "{{MODEL_ENTITIES}}",
20-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_store"],
21-
"name": "{{MODEL_ENTITIES}}.store",
22-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
23-
"action": "store",
24-
"method": "post"
25-
},
26-
"show": {
27-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}",
28-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_single"],
29-
"name": "{{MODEL_ENTITIES}}.show",
30-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
31-
"action": "show",
32-
"method": "get"
33-
},
34-
"edit": {
35-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}/edit",
36-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_edit"],
37-
"name": "{{MODEL_ENTITIES}}.edit",
38-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
39-
"action": "edit",
40-
"method": "get"
41-
},
42-
"update": {
43-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}",
44-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_update"],
45-
"name": "{{MODEL_ENTITIES}}.update",
46-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
47-
"action": "update",
48-
"method": "put"
49-
},
50-
"destroy": {
51-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}",
52-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_destroy"],
53-
"name": "{{MODEL_ENTITIES}}.destroy",
54-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
55-
"action": "destroy",
56-
"method": "delete"
57-
}
58-
}
1+
Route::group(['as' => config('app.route_prefix') . '.{{MODEL_ENTITIES}}.', 'prefix' => config('app.route_prefix') . '/manage/{{MODEL_ENTITIES}}'], function () {
2+
Route::get('/', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'index'])->middleware("permission:{{MODEL_ENTITIES}}_list")->name("index");
3+
Route::get('/create', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'create'])->middleware("permission:{{MODEL_ENTITIES}}_create")->name("create");
4+
Route::post('/store', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'store'])->middleware("permission:{{MODEL_ENTITIES}}_store")->name("store");
5+
Route::get('/{{{MODEL_ENTITY}}}', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'show'])->middleware("permission:{{MODEL_ENTITIES}}_single")->name("show");
6+
Route::get('/{{{MODEL_ENTITY}}}/edit', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'edit'])->middleware("permission:{{MODEL_ENTITIES}}_edit")->name("edit");
7+
Route::put('/{{{MODEL_ENTITY}}}', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'update'])->middleware("permission:{{MODEL_ENTITIES}}_update")->name("update");
8+
Route::delete('/{{{MODEL_ENTITY}}}', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'destroy'])->middleware("permission:{{MODEL_ENTITIES}}_destroy")->name("destroy");
9+
});
Lines changed: 11 additions & 74 deletions
Original file line numberDiff line numberDiff line change
@@ -1,74 +1,11 @@
1-
{
2-
"index": {
3-
"route": "{{MODEL_ENTITIES}}",
4-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_list"],
5-
"name": "{{MODEL_ENTITIES}}.index",
6-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
7-
"action": "index",
8-
"method": "get"
9-
},
10-
"create": {
11-
"route": "{{MODEL_ENTITIES}}/create",
12-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_create"],
13-
"name": "{{MODEL_ENTITIES}}.create",
14-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
15-
"action": "create",
16-
"method": "get"
17-
},
18-
"store": {
19-
"route": "{{MODEL_ENTITIES}}",
20-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_store"],
21-
"name": "{{MODEL_ENTITIES}}.store",
22-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
23-
"action": "store",
24-
"method": "post"
25-
},
26-
"show": {
27-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}",
28-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_single"],
29-
"name": "{{MODEL_ENTITIES}}.show",
30-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
31-
"action": "show",
32-
"method": "get"
33-
},
34-
"edit": {
35-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}/edit",
36-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_edit"],
37-
"name": "{{MODEL_ENTITIES}}.edit",
38-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
39-
"action": "edit",
40-
"method": "get"
41-
},
42-
"update": {
43-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}",
44-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_update"],
45-
"name": "{{MODEL_ENTITIES}}.update",
46-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
47-
"action": "update",
48-
"method": "put"
49-
},
50-
"destroy": {
51-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}",
52-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_destroy"],
53-
"name": "{{MODEL_ENTITIES}}.destroy",
54-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
55-
"action": "destroy",
56-
"method": "delete"
57-
},
58-
"restore": {
59-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}/restore",
60-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_restore"],
61-
"name": "{{MODEL_ENTITIES}}.restore",
62-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
63-
"action": "restore",
64-
"method": "post"
65-
},
66-
"forceDestroy": {
67-
"route": "{{MODEL_ENTITIES}}/{{{MODEL_ENTITY}}}/force-destroy",
68-
"middleware": ["web", "permission:{{MODEL_ENTITIES}}_force_destroy"],
69-
"name": "{{MODEL_ENTITIES}}.force-destroy",
70-
"controller": "App\\Http\\Controllers\\Admin\\{{CONTROLLER_CLASS}}",
71-
"action": "forceDestroy",
72-
"method": "delete"
73-
}
74-
}
1+
Route::group(['as' => config('app.route_prefix') . '.{{MODEL_ENTITIES}}.', 'prefix' => config('app.route_prefix') . '/manage/{{MODEL_ENTITIES}}'], function () {
2+
Route::get('/', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'index'])->middleware("permission:{{MODEL_ENTITIES}}_list")->name("index");
3+
Route::get('/create', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'create'])->middleware("permission:{{MODEL_ENTITIES}}_create")->name("create");
4+
Route::post('/store', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'store'])->middleware("permission:{{MODEL_ENTITIES}}_store")->name("store");
5+
Route::get('/{{{MODEL_ENTITY}}}', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'show'])->middleware("permission:{{MODEL_ENTITIES}}_single")->name("show");
6+
Route::get('/{{{MODEL_ENTITY}}}/edit', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'edit'])->middleware("permission:{{MODEL_ENTITIES}}_edit")->name("edit");
7+
Route::put('/{{{MODEL_ENTITY}}}', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'update'])->middleware("permission:{{MODEL_ENTITIES}}_update")->name("update");
8+
Route::delete('/{{{MODEL_ENTITY}}}', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'destroy'])->middleware("permission:{{MODEL_ENTITIES}}_destroy")->name("destroy");
9+
Route::post('/{{{MODEL_ENTITY}}}/restore', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'restore'])->middleware("permission:{{MODEL_ENTITIES}}_restore")->name("restore");
10+
Route::delete('/{{{MODEL_ENTITY}}}/force-destroy', [{{CONTROLLER_NAMESPACE}}{{CONTROLLER_CLASS}}::class, 'forceDestroy'])->middleware("permission:{{MODEL_ENTITIES}}_force_destroy")->name("force-destroy");
11+
});

0 commit comments

Comments
 (0)