Issues (3884)

Security Analysis    not enabled

This project does not seem to handle request data directly as such no vulnerable execution paths were found.

  Cross-Site Scripting
Cross-Site Scripting enables an attacker to inject code into the response of a web-request that is viewed by other users. It can for example be used to bypass access controls, or even to take over other users' accounts.
  File Exposure
File Exposure allows an attacker to gain access to local files that he should not be able to access. These files can for example include database credentials, or other configuration files.
  File Manipulation
File Manipulation enables an attacker to write custom data to files. This potentially leads to injection of arbitrary code on the server.
  Object Injection
Object Injection enables an attacker to inject an object into PHP code, and can lead to arbitrary code execution, file exposure, or file manipulation attacks.
  Code Injection
Code Injection enables an attacker to execute arbitrary code on the server.
  Response Splitting
Response Splitting can be used to send arbitrary responses.
  File Inclusion
File Inclusion enables an attacker to inject custom files into PHP's file loading mechanism, either explicitly passed to include, or for example via PHP's auto-loading mechanism.
  Command Injection
Command Injection enables an attacker to inject a shell command that is execute with the privileges of the web-server. This can be used to expose sensitive data, or gain access of your server.
  SQL Injection
SQL Injection enables an attacker to execute arbitrary SQL code on your database server gaining access to user data, or manipulating user data.
  XPath Injection
XPath Injection enables an attacker to modify the parts of XML document that are read. If that XML document is for example used for authentication, this can lead to further vulnerabilities similar to SQL Injection.
  LDAP Injection
LDAP Injection enables an attacker to inject LDAP statements potentially granting permission to run unauthorized queries, or modify content inside the LDAP tree.
  Header Injection
  Other Vulnerability
This category comprises other attack vectors such as manipulating the PHP runtime, loading custom extensions, freezing the runtime, or similar.
  Regex Injection
Regex Injection enables an attacker to execute arbitrary code in your PHP process.
  XML Injection
XML Injection enables an attacker to read files on your local filesystem including configuration files, or can be abused to freeze your web-server process.
  Variable Injection
Variable Injection enables an attacker to overwrite program variables with custom data, and can lead to further vulnerabilities.
Unfortunately, the security analysis is currently not available for your project. If you are a non-commercial open-source project, please contact support to gain access.

app/Plugins/ServiceDesk/routes.php (5 issues)

Upgrade to new PHP Analysis Engine

These results are based on our legacy PHP analysis, consider migrating to our new PHP analysis engine instead. Learn more

1
<?php
2
3
Route::group(['prefix' => 'service-desk', 'middleware' => ['web', 'auth']], function() {
4
5
    \Event::listen('service.desk.activate', function() {
6
        $controller = new App\Plugins\ServiceDesk\Controllers\ActivateController();
7
        echo $controller->activate();
8
    });
9
10
    \Event::listen('service.desk.agent.sidebar.replace', function() {
11
12
        return 1;
13
    });
14
    \Event::listen('service.desk.agent.topbar.replace', function() {
15
16
        return 1;
17
    });
18
19
    \Event::listen('service.desk.admin.sidebar.replace', function() {
20
21
        return 1;
22
    });
23
    \Event::listen('service.desk.admin.topbar.replace', function() {
24
25
        return 0;
26
    });
27
28
    \Event::listen('service.desk.agent.sidebar', function() {
29
        
30
        $controller = new App\Plugins\ServiceDesk\Controllers\InterfaceController();
31
        echo $controller->agentSidebar();
32
    });
33
34
    \Event::listen('service.desk.agent.topbar', function() {
35
        $controller = new App\Plugins\ServiceDesk\Controllers\InterfaceController();
36
        echo $controller->agentTopbar();
37
    });
38
    \Event::listen('service.desk.agent.topsubbar', function() {
39
        $controller = new App\Plugins\ServiceDesk\Controllers\InterfaceController();
40
        echo $controller->agentTopSubbar();
41
    });
42
43
    \Event::listen('service.desk.admin.sidebar', function() {
44
        $controller = new App\Plugins\ServiceDesk\Controllers\InterfaceController();
45
        echo $controller->adminSidebar();
46
    });
47
48
    \Event::listen('service.desk.admin.topbar', function() {
49
        $controller = new App\Plugins\ServiceDesk\Controllers\InterfaceController();
50
        echo $controller->adminTopbar();
51
    });
52
    \Event::listen('service.desk.admin.topsubbar', function() {
53
        $controller = new App\Plugins\ServiceDesk\Controllers\InterfaceController();
54
        echo $controller->adminTopSubbar();
55
    });
56
57
    \Event::listen('service.desk.admin.settings', function() {
58
        $controller = new App\Plugins\ServiceDesk\Controllers\InterfaceController();
59
        echo $controller->adminSettings();
60
    });
61
    \Event::listen('App\Events\TicketDetailTable', function($event) {
62
        $controller = new App\Plugins\ServiceDesk\Controllers\InterfaceController();
63
        echo $controller->ticketDetailTable($event);
64
    });
65
66
    /**
67
     * Admin module
68
     */
69
    Route::group(['middleware' => 'roles'], function() {
70
        /**
71
         * Product Managing Module
72
         */
73
        
74
        Route::get('products', ['as' => 'service-desk.products.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Products\ProductsController@productsindex']);
75
        
76
        Route::get('products/create', ['as' => 'service-desk.products.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Products\ProductsController@productscreate']);
77
        Route::post('products/create', ['as' => 'service-desk.post.products', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Products\ProductsController@productshandleCreate']);
78
        Route::get('products/{id}/edit', ['as' => 'service-desk.products.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Products\ProductsController@productsedit']);
79
        Route::patch('products/{id}', ['as' => 'service-desk.products.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Products\ProductsController@productshandleEdit']);
80
        Route::get('products/{id}/delete', ['as' => 'service-desk.products.delete', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Products\ProductsController@productsHandledelete']);
81
        Route::get('get-products', ['as' => 'service-desk.products.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Products\ProductsController@getProducts']);
82
        Route::post('products/add/vendor', ['as' => 'products.vendor.add', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Products\ProductsController@addVendor']);
83
        Route::get('products/{productid}/remove/{vendorid}/vendor', ['as' => 'products.vendor.add', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Products\ProductsController@removeVendor']);
84
        Route::post('products/add-existing/vendor', ['as' => 'products.vendor.add', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Products\ProductsController@addExistingVendor']);
85
        
86
        /**
87
         * Contract Managing Module
88
         */
89
        Route::get('contracts', ['as' => 'service-desk.contract.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contract\ContractController@index']);
90
        Route::get('contracts/create', ['as' => 'service-desk.contract.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contract\ContractController@create']);
91
        Route::post('contracts/create', ['as' => 'service-desk.contract.postcreate', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contract\ContractController@handleCreate']);
92
        Route::get('contracts/{id}/edit', ['as' => 'service-desk.contract.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contract\ContractController@edit']);
93
        Route::patch('contracts/{id}', ['as' => 'service-desk.contract.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contract\ContractController@handleEdit']);
94
        Route::get('contracts/{id}/delete', ['as' => 'service-desk.contract.postdelete', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contract\ContractController@delete']);
95
        Route::get('get-contracts', ['as' => 'service-desk.contract.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contract\ContractController@getContracts']);
96
        //Route::get('contracts/{id}/show', ['as' => 'service-desk.contract.show', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contract\ContractController@show']);
0 ignored issues
show
Unused Code Comprehensibility introduced by
66% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
97
        /**
98
         * Vendor  Managing Module
99
         */
100
        Route::get('vendor', ['as' => 'service-desk.vendor.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Vendor\VendorController@index']);
101
        Route::get('vendor/create', ['as' => 'service-desk.vendor.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Vendor\VendorController@create']);
102
        Route::post('vendor/create', ['as' => 'service-desk.vendor.postcreate', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Vendor\VendorController@handleCreate']);
103
        Route::get('vendor/{id}/edit', ['as' => 'service-desk.vendor.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Vendor\VendorController@edit']);
104
        Route::patch('vendor/{id}', ['as' => 'service-desk.vendor.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Vendor\VendorController@handleEdit']);
105
        Route::get('vendor/{id}/delete', ['as' => 'service-desk.vendor.postdelete', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Vendor\VendorController@delete']);
106
        Route::get('get-vendors', ['as' => 'service-desk.vendor.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Vendor\VendorController@getVendors']);
107
        //Route::get('vendor/{id}/show', ['as' => 'service-desk.vendor.show', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Vendor\VendorController@show']);
0 ignored issues
show
Unused Code Comprehensibility introduced by
66% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
108
109
        /**
110
         * Assets type Managing Module
111
         */
112
        Route::get('assetstypes', ['as' => 'service-desk.assetstypes.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assetstypes\AssetstypesController@index']);
113
        Route::get('assetstypes/create', ['as' => 'service-desk.assetstypes.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assetstypes\AssetstypesController@create']);
114
        Route::post('assetstypes/create', ['as' => 'service-desk.post.assetstypes', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assetstypes\AssetstypesController@handleCreate']);
115
        Route::get('assetstypes/{id}/edit', ['as' => 'service-desk.assetstypes.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assetstypes\AssetstypesController@edit']);
116
        Route::patch('assetstypes/{id}', ['as' => 'service-desk.assetstypes.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assetstypes\AssetstypesController@handleEdit']);
117
        Route::get('assetstypes/{id}/delete', ['as' => 'service-desk.assetstypes.delet', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assetstypes\AssetstypesController@assetHandledelete']);
118
        Route::get('get-assetstypes', ['as' => 'service-desk.assetstypes.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assetstypes\AssetstypesController@getAssetstypes']);
119
        Route::get('asset-types/form/{assetid?}', ['as' => 'service-desk.assetstypes.form', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assetstypes\AssetstypesController@renderForm']);
120
121
        /**
122
         * Contract type Managing Module
123
         */
124
        Route::get('contract-types', ['as' => 'service-desk.contractstypes.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contracttypes\ContracttypeController@index']);
125
        Route::get('contract-types/create', ['as' => 'service-desk.contractstypes.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contracttypes\ContracttypeController@create']);
126
        Route::post('contract-types/create', ['as' => 'service-desk.post.contractstypes', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contracttypes\ContracttypeController@handleCreate']);
127
        Route::get('contract-types/{id}/edit', ['as' => 'service-desk.contractstypes.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contracttypes\ContracttypeController@edit']);
128
        Route::patch('contract-types/{id}', ['as' => 'service-desk.contractstypes.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contracttypes\ContracttypeController@handleEdit']);
129
        Route::get('contract-types/{id}/delete', ['as' => 'service-desk.contractstypes.delet', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contracttypes\ContracttypeController@handledelete']);
130
        Route::get('get-contract-types', ['as' => 'service-desk.contractstypes.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contracttypes\ContracttypeController@getContract']);
131
132
        /**
133
         * License type Managing Module
134
         */
135
        Route::get('license-types', ['as' => 'service-desk.licensetypes.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Licensetypes\LicensetypeController@index']);
136
        Route::get('license-types/create', ['as' => 'service-desk.licensetypes.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Licensetypes\LicensetypeController@create']);
137
        Route::post('license-types/create', ['as' => 'service-desk.post.licensetypes', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Licensetypes\LicensetypeController@handleCreate']);
138
        Route::get('license-types/{id}/edit', ['as' => 'service-desk.licensetypes.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Licensetypes\LicensetypeController@edit']);
139
        Route::patch('license-types/{id}', ['as' => 'service-desk.licensetypes.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Licensetypes\LicensetypeController@handleEdit']);
140
        Route::get('license-types/{id}/delete', ['as' => 'service-desk.licensetypes.delete', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Licensetypes\LicensetypeController@handledelete']);
141
        Route::get('get-license-types', ['as' => 'service-desk.licensetypes.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Licensetypes\LicensetypeController@getLicense']);
142
        //Route::get('license-types/{id}/show', ['as' => 'service-desk.licensetypes.show', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Licensetypes\LicensetypeController@show']);
0 ignored issues
show
Unused Code Comprehensibility introduced by
66% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
143
144
        /**
145
         * Location Catagory Managing Module
146
         */
147
        Route::get('location-category-types', ['as' => 'service-desk.location-category.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Locationcategory\LocationCategoryController@index']);
148
        Route::get('location-category-types/create', ['as' => 'service-desk.location-category.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Locationcategory\LocationCategoryController@create']);
149
        Route::post('location-category-types/create', ['as' => 'service-desk.post.location-category', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Locationcategory\LocationCategoryController@handleCreate']);
150
        Route::get('location-category-types/{id}/edit', ['as' => 'service-desk.location-category.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Locationcategory\LocationCategoryController@edit']);
151
        Route::patch('location-category-types/{id}', ['as' => 'service-desk.location-category.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Locationcategory\LocationCategoryController@handleEdit']);
152
        Route::get('location-category-types/{id}/delete', ['as' => 'service-desk.location-category.delet', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Locationcategory\LocationCategoryController@handledelete']);
153
        Route::get('get-location-category-types', ['as' => 'service-desk.location-category.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Locationcategory\LocationCategoryController@getLocation']);
154
        
155
        /**
156
         * Location Managing Module
157
         */
158
        Route::get('location-types', ['as' => 'service-desk.location.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Location\LocationController@index']);
159
        Route::get('location-types/create', ['as' => 'service-desk.location.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Location\LocationController@create']);
160
        Route::post('location-types/create1', ['as' => 'service-desk.post.location', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Location\LocationController@handleCreate']);
161
        Route::get('location-types/{id}/edit', ['as' => 'service-desk.location.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Location\LocationController@edit']);
162
        Route::post('location-types/postedit1', ['as' => 'service-desk.location.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Location\LocationController@handleEdit']);
163
        Route::get('location-types/{id}/delete', ['as' => 'service-desk.location.delete', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Location\LocationController@handledelete']);
164
        Route::get('get-location-types', ['as' => 'service-desk.location.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Location\LocationController@getLocation']);
165
        Route::get('location-types/{id}/show', ['as' => 'service-desk.location.show', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Location\LocationController@show']);
166
        Route::get('location/org',['as'=>'org.location','uses'=>'App\Plugins\ServiceDesk\Controllers\Location\LocationController@getLocationsForForm']);
167
        /**
168
         * Procurment  Managing Module
169
         */
170
        Route::get('procurement/create', ['as' => 'service-desk.procurment.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Procurment\ProcurmentController@create']);
171
        Route::post('procurement/create', ['as' => 'service-desk.procurment.postcreate', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Procurment\ProcurmentController@handleCreate']);
172
        Route::get('procurement', ['as' => 'service-desk.procurment.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Procurment\ProcurmentController@index']);
173
        Route::get('procurement/{id}/edit', ['as' => 'service-desk.procurment.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Procurment\ProcurmentController@edit']);
174
        //Route::post('procurment/edit', ['as' => 'service-desk.procurment.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Procurment\ProcurmentController@handleEdit']);
0 ignored issues
show
Unused Code Comprehensibility introduced by
66% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
175
        Route::get('procurement/{id}/delete', ['as' => 'service-desk.procurment.postdelete', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Procurment\ProcurmentController@delete']);
176
        Route::get('get-procurement', ['as' => 'service-desk.procurment.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Procurment\ProcurmentController@getProcurment']);
177
        //Route::get('get-procurment', ['as' => 'service-desk.procurment.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Procurment\ProcurmentController@viewProcurment']);
0 ignored issues
show
Unused Code Comprehensibility introduced by
66% of this comment could be valid code. Did you maybe forget this after debugging?

Sometimes obsolete code just ends up commented out instead of removed. In this case it is better to remove the code once you have checked you do not need it.

The code might also have been commented out for debugging purposes. In this case it is vital that someone uncomments it again or your project may behave in very unexpected ways in production.

This check looks for comments that seem to be mostly valid code and reports them.

Loading history...
178
        Route::patch('procurement/{id}', ['as' => 'service-desk.procurment.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Procurment\ProcurmentController@handleEdit']);
179
        
180
        /**
181
         * Form Builder
182
         */
183
        Route::get('form-builder', ['as' => 'form.builder.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\FormBuilder\FormBuilderController@index']);
184
        Route::get('form-builder/get-form', ['as' => 'form.builder.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\FormBuilder\FormBuilderController@getForm']);
185
        Route::get('form-builder/create', ['as' => 'form.builder.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\FormBuilder\FormBuilderController@create']);
186
        Route::post('form-builder/create', ['as' => 'form.builder.store', 'uses' => 'App\Plugins\ServiceDesk\Controllers\FormBuilder\FormBuilderController@store']);
187
        Route::get('form-builder/{id}', ['as' => 'form.builder.show', 'uses' => 'App\Plugins\ServiceDesk\Controllers\FormBuilder\FormBuilderController@renderHtmlByFormId']);
188
        Route::get('form-builder/{id}/show', ['as' => 'form.builder.view', 'uses' => 'App\Plugins\ServiceDesk\Controllers\FormBuilder\FormBuilderController@show']);
189
        Route::get('form-builder/{id}/edit', ['as' => 'form.builder.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\FormBuilder\FormBuilderController@edit']);
190
        Route::patch('form-builder/{id}', ['as' => 'form.builder.update', 'uses' => 'App\Plugins\ServiceDesk\Controllers\FormBuilder\FormBuilderController@update']);
191
        Route::get('form-builder/{id}/delete', ['as' => 'form.builder.delete', 'uses' => 'App\Plugins\ServiceDesk\Controllers\FormBuilder\FormBuilderController@delete']);
192
        /**
193
         * Cab
194
         */
195
        Route::resource('cabs', 'App\Plugins\ServiceDesk\Controllers\Cab\CabController');
196
        Route::get('cab/get-cab', ['as' => 'cabs.get.ajax', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Cab\CabController@getCab']);
197
        Route::get('cabs/vote/{cabid}/{owner}', ['as' => 'cabs.get.vote', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Cab\CabController@vote']);
198
        Route::post('cabs/vote/{cabid}/{owner}', ['as' => 'cabs.post.vote', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Cab\CabController@postVote']);
199
        Route::get('cabs/{cabid}/{owner}/show', ['as' => 'cabs.vote.show', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Cab\CabController@showVotes']);
200
        
201
        /**
202
         * Announcement
203
         */
204
        Route::get('announcement',['as'=>'announcement','uses'=>'App\Plugins\ServiceDesk\Controllers\Announcement\AnnouncementController@setAnnounce']);
205
        Route::post('announcement',['as'=>'announcement.post','uses'=>'App\Plugins\ServiceDesk\Controllers\Announcement\AnnouncementController@send']);
206
    });
207
    /**
208
     * Agent module
209
     */
210
    Route::group(['middleware' => 'roles'], function() {
211
        /**
212
         * Asset Managing Module
213
         */
214
        Route::get('assets', ['as' => 'service-desk.asset.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@index']);
215
        Route::get('assets/create', ['as' => 'service-desk.asset.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@create']);
216
        Route::post('assets/create', ['as' => 'service-desk.post.asset', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@handleCreate']);
217
        Route::get('assets/{id}/edit', ['as' => 'service-desk.asset.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@edit']);
218
        Route::patch('assets/{id}', ['as' => 'service-desk.asset.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@handleEdit']);
219
        Route::get('assets/{id}/delete', ['as' => 'service-desk.asset.delet', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@assetHandledelete']);
220
        Route::get('get-assets', ['as' => 'service-desk.asset.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@getAsset']);
221
        Route::get('assets/tag', ['as' => 'service-desk.asset.tag', 'uses' => 'App\Plugins\ServiceDesk\Controllers\assets\AssetController@search']);
222
        Route::post('attach-asset/ticket', ['as' => 'service-desk.post.asset.tag', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@attachAssetToTicket']);
223
        Route::post('assets/assettype', ['as' => 'service-desk.post.asset.types', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@assetType']);
224
        Route::get('asset-type/{id}', ['as' => 'service-desk.post.asset.type', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@getAssetType']);
225
        Route::get('asset/detach/{ticketid}', ['as' => 'service-desk.post.asset.detach', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@detach']);
226
        Route::get('assets/{id}/show', ['as' => 'service-desk.asset.show', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@show']);
227
        Route::get('assets/requesters', ['as' => 'asset.requesters.ajax', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@ajaxRequestTable']);
228
        Route::get('assets/export', ['as' => 'asset.export', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@export']);
229
        Route::post('assets/export', ['as' => 'asset.export.post', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Assets\AssetController@exportAsset']);
230
231
        /**
232
         * Release Managing Module
233
         */
234
        Route::get('releases', ['as' => 'service-desk.releases.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Releses\RelesesController@releasesindex']);
235
        Route::get('releases/create', ['as' => 'service-desk.releases.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Releses\RelesesController@releasescreate']);
236
        Route::post('releases/create', ['as' => 'service-desk.post.releases', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Releses\RelesesController@releaseshandleCreate']);
237
        Route::get('releases/{id}/edit', ['as' => 'service-desk.releases.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Releses\RelesesController@releasesedit']);
238
        Route::patch('releases/{id}', ['as' => 'service-desk.releases.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Releses\RelesesController@releaseshandleEdit']);
239
        Route::get('releases/{id}/delete', ['as' => 'service-desk.releases.delete', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Releses\RelesesController@releasesHandledelete']);
240
        Route::get('releases/{id}/show', ['as' => 'service-desk.releases.view', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Releses\RelesesController@view']);
241
        Route::get('get-releases', ['as' => 'service-desk.releases.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Releses\RelesesController@getReleases']);
242
        Route::get('releases/{id}/complete', ['as' => 'service-desk.releases.view', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Releses\RelesesController@complete']);
243
        
244
        /**
245
         * Changes Managing Module
246
         */
247
        Route::get('changes', ['as' => 'service-desk.changes.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Changes\ChangesController@changesindex']);
248
        Route::get('changes/create', ['as' => 'service-desk.changes.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Changes\ChangesController@changescreate']);
249
        Route::post('changes/create', ['as' => 'service-desk.post.changes', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Changes\ChangesController@changeshandleCreate']);
250
        Route::get('changes/{id}/edit', ['as' => 'service-desk.changes.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Changes\ChangesController@changesedit']);
251
        Route::patch('changes/{id}', ['as' => 'service-desk.changes.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Changes\ChangesController@changeshandleEdit']);
252
        Route::get('changes/{id}/delete', ['as' => 'service-desk.changes.delete', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Changes\ChangesController@changesHandledelete']);
253
        Route::get('get-changes', ['as' => 'service-desk.changes.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Changes\ChangesController@getChanges']);
254
        Route::get('changes/{id}/show', ['as' => 'service-desk.changes.show', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Changes\ChangesController@show']);
255
        Route::get('changes/{id}/close', ['as' => 'change.close', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Changes\ChangesController@close']);
256
        Route::post('changes/release/{id}', ['as' => 'change.release.post', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Changes\ChangesController@attachNewRelease']);
257
        Route::get('changes/release', ['as' => 'change.release', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Changes\ChangesController@getReleases']);
258
        Route::post('changes/release/attach/{id}', ['as' => 'change.release.attach', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Changes\ChangesController@attachExistingRelease']);
259
        Route::get('changes/{changeid}/detach', ['as' => 'change.release.detach', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Changes\ChangesController@detachRelease']);
260
    
261
262
263
264
        /**
265
         * Problem Managing Module
266
         */
267
        Route::get('problems', ['as' => 'service-desk.problem.index', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@index']);
268
        Route::get('problem/create', ['as' => 'service-desk.problem.create', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@create']);
269
        Route::post('problem/create', ['as' => 'service-desk.problem.postcreate', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@handleCreate']);
270
        Route::get('problem/{id}/edit', ['as' => 'service-desk.problem.edit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@edit']);
271
        Route::patch('problem/{id}', ['as' => 'service-desk.problem.postedit', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@handleEdit']);
272
        Route::get('problem/{id}/delete', ['as' => 'service-desk.problem.postdelete', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@delete']);
273
        Route::get('get-problems', ['as' => 'service-desk.problem.get', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@getproblems']);
274
        Route::post('attach-problem/ticket/new', ['as' => 'attach.problem.ticket.new', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@attachNewProblemToTicket']);
275
        Route::post('attach-problem/ticket/existing', ['as' => 'attach.problem.ticket.existing', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@attachExistingProblemToTicket']);
276
        Route::get('problems/attach/existing', ['as' => 'attach.problem.ticket.existing.ajax', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@getAttachableProblem']);
277
        Route::get('problem/detach/{ticketid}', ['as' => 'detach.problem.ticket', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@detach']);
278
        Route::get('problem/{id}/show', ['as' => 'show.problem', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@show']);
279
        Route::get('problem/{id}/close', ['as' => 'problem.close', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@close']);
280
        Route::post('problem/change/{id}', ['as' => 'problem.change.post', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@attachNewChange']);
281
        Route::get('problem/change', ['as' => 'problem.change', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@getChanges']);
282
        Route::post('problem/change/attach/{id}', ['as' => 'problem.change.attach', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@attachExistingChange']);
283
        Route::get('problem/{problemid}/detach', ['as' => 'problem.change.detach', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Problem\ProblemController@detachChange']);
284
    
285
        /**
286
         * Common
287
         */
288
        
289
        Route::get('products/{id}/show', ['as' => 'service-desk.products.show', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Products\ProductsController@show']);
290
        Route::get('contracts/{id}/show', ['as' => 'service-desk.contract.show', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Contract\ContractController@show']);
291
        Route::get('vendor/{id}/show', ['as' => 'service-desk.vendor.show', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Vendor\VendorController@show']);
292
        Route::get('cabs/{cabid}/{owner}/show', ['as' => 'cabs.vote.show', 'uses' => 'App\Plugins\ServiceDesk\Controllers\Cab\CabController@showVotes']);
293
        Route::post('general/{id}/{table}',['as'=>'general.post','uses'=>'App\Plugins\ServiceDesk\Controllers\InterfaceController@generalInfo']);
294
        Route::get('delete/{attachid}/{owner}/attachment',['as'=>'attach.delete','uses'=>'App\Plugins\ServiceDesk\Controllers\InterfaceController@deleteAttachments']);
295
        Route::get('download/{attachid}/{owner}/attachment',['as'=>'attach.delete','uses'=>'App\Plugins\ServiceDesk\Controllers\InterfaceController@downloadAttachments']);
296
        Route::get('general/{owner}/{identifier}/delete',['as'=>'attach.delete','uses'=>'App\Plugins\ServiceDesk\Controllers\InterfaceController@deleteGeneralByIdentifier']);
297
        
298
    });
299
    
300
    
301
});
302