Index: routes/web.php
===================================================================
--- routes/web.php	(revision 83da0d2d319e385335bf20eb5d9bd34c877ad8bc)
+++ routes/web.php	(revision 1c17e70fdb646adb10dabb9aee5dbe8a5427853f)
@@ -55,31 +55,37 @@
     // Settings
     Route::get("/settings", "Dashboard\SettingsController@settings")->name("dashboard.settings.index");
-    Route::patch("/settings/personal", "Dashboard\SettingsController@updatePersonalInformation")->name("dashboard.settings.personal");
     Route::patch("/settings/username", "Dashboard\SettingsController@updateUsername")->name("dashboard.settings.username");
     Route::patch("/settings/password", "Dashboard\SettingsController@updatePassword")->name("dashboard.settings.password");
     Route::patch("/settings/email", "Dashboard\SettingsController@updateEmail")->name("dashboard.settings.email");
-    Route::patch("/settings/file-types", "Dashboard\SettingsController@fileTypes")->name("dashboard.settings.file-types");
+    Route::patch("/users/{id}/editUserData", "Dashboard\UsersController@editUserData")->name("dashboard.users.editUserData");
 
-
-    // Users
-    Route::group(['middleware' => 'permission:manage_all_users'], function () {
-        Route::get("/users", "Dashboard\UsersController@index")->name("dashboard.users.index");
-        Route::patch("/users/{id}/block", "Dashboard\UsersController@block")->name("dashboard.users.block");
-        Route::patch("/users/{id}/unblock", "Dashboard\UsersController@unblock")->name("dashboard.users.unblock");
-        Route::delete("/users/{id}/destroy", "Dashboard\UsersController@destroy")->name("dashboard.users.destroy");
+    //Settings File Validations
+    Route::group(['middleware' => 'permission:manage_file_types'], function () {
+        Route::patch("/settings/file-types", "Dashboard\SettingsController@fileTypes")->name("dashboard.settings.file-types");
     });
 
-        Route::group(['middleware' => 'permission:create_user'], function () {
+    // Users view
+    Route::group(['middleware' => 'permission:view_all_users'], function () {
+        Route::get("/users", "Dashboard\UsersController@index")->name("dashboard.users.index");
+    });
+
+    Route::group(['middleware' => 'permission:manage_all_users'], function () {
         Route::get("/users/create", "Dashboard\UsersController@create")->name("dashboard.users.create");
         Route::post("/users/store", "Dashboard\UsersController@store")->name("dashboard.users.store");
         Route::get("/users/{id}/edit", "Dashboard\UsersController@editShow")->name("dashboard.users.editShow");
         Route::patch("/users/{id}/edit", "Dashboard\UsersController@edit")->name("dashboard.users.edit");
-        Route::patch("/users/{id}/editUserData", "Dashboard\UsersController@editUserData")->name("dashboard.users.editUserData");
+        Route::patch("/users/{id}/block", "Dashboard\UsersController@block")->name("dashboard.users.block");
+        Route::patch("/users/{id}/unblock", "Dashboard\UsersController@unblock")->name("dashboard.users.unblock");
+        Route::delete("/users/{id}/destroy", "Dashboard\UsersController@destroy")->name("dashboard.users.destroy");
         Route::get('users/export', 'Dashboard\ExportExcelController@ExportUsers')->name("dashboard.users.export");
-        });
+    });
 
-    // Departments
+    // Departments view
+    Route::group(['middleware' => 'permission:view_all_departments'], function () {
+        Route::get("/departments", "Dashboard\DepartmentsController@index")->name("dashboard.departments.index");
+    });
+
+    // Departments manage
     Route::group(['middleware' => 'permission:manage_all_departments'], function () {
-        Route::get("/departments", "Dashboard\DepartmentsController@index")->name("dashboard.departments.index");
         Route::get("/departments/create", "Dashboard\DepartmentsController@create")->name("dashboard.departments.create");
         Route::post("/departments/store", "Dashboard\DepartmentsController@store")->name("dashboard.departments.store");
@@ -87,31 +93,50 @@
         Route::patch("/departments/{id}/edit", "Dashboard\DepartmentsController@edit")->name("dashboard.departments.edit");
         Route::delete("/departments/{id}/destroy", "Dashboard\DepartmentsController@destroy")->name("dashboard.departments.destroy");
-        Route::get('/departments/download-all','Dashboard\DepartmentsController@downloadAll')->name('dashboard.departments.downloadAll');
-        Route::get('/departments/{id}/download-department','Dashboard\DepartmentsController@downloadDepartment')->name('dashboard.departments.downloadDepartment');
+     });
+
+    // Folders view
+    Route::group(['middleware' => 'permission:view_all_folders'], function () {
+        Route::get("/folders", "Dashboard\FoldersController@index")->name("dashboard.folders.index");
+        Route::get('/folders/{id}/files', 'Dashboard\FoldersController@files')->name('dashboard.folders.files');
+    });
+
+    // Folders manage
+    Route::group(['middleware' => 'permission:manage_all_folders'], function () {
+        Route::get("/folders/create", "Dashboard\FoldersController@create")->name("dashboard.folders.create");
+        Route::post("/folders/store", "Dashboard\FoldersController@store")->name("dashboard.folders.store");
+        Route::get("/folders/{id}/edit", "Dashboard\FoldersController@editShow")->name("dashboard.folders.editShow");
+        Route::patch("/folders/{id}/edit", "Dashboard\FoldersController@edit")->name("dashboard.folders.edit");
+        Route::patch("/folders/{id}/block", "Dashboard\FoldersController@block")->name("dashboard.folders.block");
+        Route::patch("/folders/{id}/unblock", "Dashboard\FoldersController@unblock")->name("dashboard.folders.unblock");
+        Route::patch("/folders/{id}/confirm", "Dashboard\FoldersController@confirm")->name("dashboard.folders.confirm");
+        Route::delete("/folders/{id}/destroy", "Dashboard\FoldersController@destroy")->name("dashboard.folders.destroy");
+        Route::patch('/folders/toggle-important/{id}', "Dashboard\FoldersController@toggleImportant")->name("dashboard.folders.toggleImportant");
+    });
+
+    // Files view
+    Route::group(['middleware' => 'permission:view_all_files'], function () {
+    Route::get("files", "Dashboard\FilesController@index")->name("dashboard.files.index");
+    });
+
+    //Files manage
+Route::group(['middleware' => 'permission:manage_all_files'], function () {
+    Route::patch("files/{id}/rename-file", "Dashboard\FilesController@renameFile")->name("dashboard.files.renameFile");
+    Route::post("/files/store", "Dashboard\FilesController@store")->name("dashboard.files.store");
+    Route::delete("files/{id}/delete-file", "Dashboard\FilesController@deleteFile")->name("dashboard.files.deleteFile");
+    });
+
+    //Export data
+    Route::group(['middleware' => 'permission:export_data'], function () {
+        Route::get('files/export', 'Dashboard\ExportExcelController@ExportFiles')->name("dashboard.files.export");
+        Route::get('folders/export', 'Dashboard\ExportExcelController@ExportFolders')->name("dashboard.folders.export");
         Route::get('departments/export', 'Dashboard\ExportExcelController@ExportDepartments')->name("dashboard.departments.export");
     });
 
-    // Folders
-    Route::get("/folders", "Dashboard\FoldersController@index")->name("dashboard.folders.index");
-    Route::get("/folders/create", "Dashboard\FoldersController@create")->name("dashboard.folders.create");
-    Route::post("/folders/store", "Dashboard\FoldersController@store")->name("dashboard.folders.store");
-    Route::get("/folders/{id}/edit", "Dashboard\FoldersController@editShow")->name("dashboard.folders.editShow");
-    Route::patch("/folders/{id}/edit", "Dashboard\FoldersController@edit")->name("dashboard.folders.edit");
-    Route::patch("/folders/{id}/block", "Dashboard\FoldersController@block")->name("dashboard.folders.block");
-    Route::patch("/folders/{id}/unblock", "Dashboard\FoldersController@unblock")->name("dashboard.folders.unblock");
-    Route::patch("/folders/{id}/confirm", "Dashboard\FoldersController@confirm")->name("dashboard.folders.confirm");
-    Route::delete("/folders/{id}/destroy", "Dashboard\FoldersController@destroy")->name("dashboard.folders.destroy");
-    Route::patch('/folders/toggle-important/{id}', "Dashboard\FoldersController@toggleImportant")->name("dashboard.folders.toggleImportant");
-    Route::get('/folders/{id}/download-folder','Dashboard\FoldersController@downloadFolder')->name('dashboard.folders.downloadFolder');
-    Route::get('/folders/{id}/files','Dashboard\FoldersController@files')->name('dashboard.folders.files');
-    Route::get('folders/export', 'Dashboard\ExportExcelController@ExportFolders')->name("dashboard.folders.export");
-
-    // Files
-    Route::get("files", "Dashboard\FilesController@index")->name("dashboard.files.index");
-    Route::get("files/{id}/download-file", "Dashboard\FilesController@downloadFile")->name("dashboard.files.downloadFile");
-    Route::patch("files/{id}/rename-file", "Dashboard\FilesController@renameFile")->name("dashboard.files.renameFile");
-    Route::post("/files/store", "Dashboard\FilesController@store")->name("dashboard.files.store");
-    Route::delete("files/{id}/delete-file", "Dashboard\FilesController@deleteFile")->name("dashboard.files.deleteFile");
-    Route::get('files/export', 'Dashboard\ExportExcelController@ExportFiles')->name("dashboard.files.export");
-
+    //Download data
+    Route::group(['middleware' => 'permission:download_data'], function () {
+        Route::get('/departments/download-all', 'Dashboard\DepartmentsController@downloadAll')->name('dashboard.departments.downloadAll');
+        Route::get("files/{id}/download-file", "Dashboard\FilesController@downloadFile")->name("dashboard.files.downloadFile");
+        Route::get('/folders/{id}/download-folder', 'Dashboard\FoldersController@downloadFolder')->name('dashboard.folders.downloadFolder');
+        Route::get('/departments/{id}/download-department', 'Dashboard\DepartmentsController@downloadDepartment')->name('dashboard.departments.downloadDepartment');
+    });
 });
