480 lines
17 KiB
PHP
480 lines
17 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Api;
|
|
|
|
use App\Http\Controllers\Controller;
|
|
use App\Http\Resources\Api\UserResource;
|
|
use App\Models\City;
|
|
use App\Models\Province;
|
|
use App\Models\User;
|
|
use App\Models\EdarateShahri;
|
|
use App\Models\EdarateOstani;
|
|
use Cache;
|
|
use Illuminate\Http\Request;
|
|
use Illuminate\Support\Carbon;
|
|
use Illuminate\Support\Facades\Auth;
|
|
use Illuminate\Support\Facades\Hash;
|
|
use Spatie\Permission\Models\Permission;
|
|
use App\Models\Role;
|
|
use App\Models\HttpErorrsList;
|
|
use Illuminate\Support\Facades\Storage;
|
|
|
|
class UserController extends Controller
|
|
{
|
|
/**
|
|
* Display a listing of the resource.
|
|
*
|
|
* @return \Illuminate\Http\Response
|
|
*/
|
|
// public function index(Request $request)
|
|
// {
|
|
// if (auth()->user()) {
|
|
// auth()->user()->addActivityComplete(1038);
|
|
// }
|
|
|
|
// $province = $request->province ?? null;
|
|
// $city = $request->city ?? null;
|
|
// $province_office = $request->province_office ?? null;
|
|
|
|
// if (Auth::user()->checkUserHasPermission('full-user-management')) {
|
|
// $users = User::when($province, function ($query, $province) {
|
|
// return $query->where('province_id', $province);
|
|
// })
|
|
// ->when($city, function ($query, $city) {
|
|
// return $query->where('city_id', $city);
|
|
// })
|
|
// ->when($province_office, function ($query, $province_office) {
|
|
// if ($province_office == -1) {
|
|
// return $query->where('edarate_ostani_id', null)->whereNotNull('edarate_shahri_id');
|
|
// } else {
|
|
// return $query->where('edarate_ostani_id', $province_office);
|
|
// }
|
|
// })
|
|
// ->with(['roles' => function ($query) {
|
|
// $query->where('for_report', 1);
|
|
// }])
|
|
// ->get();
|
|
// } elseif (Auth::user()->checkUserHasPermission('limited-user-management')) {
|
|
// $users = User::when($province, function ($query, $province) {
|
|
// return $query->where('province_id', $province);
|
|
// })
|
|
// ->where('province_id',Auth::user()->province_id)
|
|
// ->when($city, function ($query, $city) {
|
|
// return $query->where('city_id', $city);
|
|
// })
|
|
// ->when($province_office, function ($query, $province_office) {
|
|
// if ($province_office == -1) {
|
|
// return $query->where('edarate_ostani_id', null)->whereNotNull('edarate_shahri_id');
|
|
// } else {
|
|
// return $query->where('edarate_ostani_id', $province_office);
|
|
// }
|
|
// })
|
|
// ->with(['roles' => function ($query) {
|
|
// $query->where('for_report', 1);
|
|
// }])
|
|
// ->get();
|
|
// } else {
|
|
// return response()->json([
|
|
// 'message' => 'Forbidden'
|
|
// ], 403);
|
|
// }
|
|
|
|
// return response()->json([
|
|
// 'status' => '200',
|
|
// 'message' => 'success',
|
|
// 'data' => $users,
|
|
// ], 200);
|
|
// }
|
|
|
|
// public function store(Request $request)
|
|
// {
|
|
// $validData = $request->validate([
|
|
// 'username' => 'string|unique:users',
|
|
// 'national_code' => 'required|unique:users,national_code',
|
|
// 'mobile' => 'digits:11|regex:/^09[0-9]{9}$/i',
|
|
// ]);
|
|
|
|
// $createUser = new User();
|
|
|
|
// $createUser->province_id = $request->province_id == 0 ? null : $request->province_id;
|
|
// $createUser->province_fa = ($request->province_id == 0) ? 'اداره کل' : Province::find($request->province_id)->name_fa;
|
|
|
|
// $createUser->city_id = $request->city_id == 0 ? null : $request->city_id;
|
|
// $createUser->city_fa = ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa ;
|
|
|
|
// if ($request->edarate_ostani_id != 'null') {
|
|
// $temp = EdarateOstani::find($request->edarate_ostani_id)->name_fa;
|
|
// $createUser->edarate_ostani_id = $request->edarate_ostani_id;
|
|
// $createUser->edarate_ostani_name = $temp;
|
|
// if ($request->province_id == 0) {
|
|
// $createUser->name = $temp .' '. $createUser->province_fa;
|
|
// } else {
|
|
// $createUser->name = $temp .' استان '. $createUser->province_fa;
|
|
// }
|
|
// } else {
|
|
// $temp = EdarateShahri::find($request->edarate_shahri_id)->name_fa;
|
|
// $createUser->edarate_shahri_id = $request->edarate_shahri_id;
|
|
// $createUser->edarate_shahri_name = $temp;
|
|
|
|
// if ($request->province_id == 0) {
|
|
// $createUser->name = $temp .' '. $createUser->province_fa;
|
|
// } else {
|
|
// $createUser->name = $temp .' استان '. $createUser->province_fa;
|
|
// }
|
|
// }
|
|
|
|
// $createUser->username = $request->username;
|
|
// $createUser->password = Hash::make($request->password);
|
|
// $createUser->first_name = $request->first_name;
|
|
// $createUser->last_name = $request->last_name;
|
|
// $createUser->position = $request->position;
|
|
// $createUser->mobile = $request->mobile;
|
|
// $createUser->degree = $request->degree;
|
|
// $createUser->major = $request->major;
|
|
// $createUser->national_code = $request->national_code;
|
|
|
|
// $createUser->save();
|
|
|
|
// if (! $request->permissions == null) {
|
|
// $createUser->syncPermissions(explode(",", $request->permissions));
|
|
// }
|
|
|
|
// $roles = $request->only('roles');
|
|
// if (! $roles == null) {
|
|
// $createUser->syncRoles($roles);
|
|
// }
|
|
|
|
// if ($request->has('avatar')) {
|
|
// $destinationPath = 'avatar/' . $request->username;
|
|
// $filename = time() .".". $request->file('avatar')->getClientOriginalExtension();
|
|
// $request->file('avatar')->storeAs($destinationPath, $filename, 'public');
|
|
// $createUser->update(['avatar' => 'storage/'.$destinationPath ."/". $filename]);
|
|
// }
|
|
|
|
// if (auth()->user()) {
|
|
// auth()->user()->addActivityComplete(1039, $createUser);
|
|
// }
|
|
|
|
// return response()->json([
|
|
// 'message' => 'success',
|
|
// 'data' => $createUser
|
|
// ], 200);
|
|
// }
|
|
|
|
// public function simpleAddUser(Request $request)
|
|
// {
|
|
// $request->validate([
|
|
// 'province_id' => 'required',
|
|
// 'username' => 'required|unique:users,username',
|
|
// 'national_code' => 'required|unique:users,national_code',
|
|
// 'password' => 'required'
|
|
// ]);
|
|
|
|
// $user = new User();
|
|
// $user->username = $request->username;
|
|
|
|
// $user->province_id = $request->province_id == 0 ? null : $request->province_id;
|
|
// $user->province_fa = ($request->province_id == 0) ? 'اداره کل' : Province::find($request->province_id)->name_fa;
|
|
|
|
// $user->city_id = $request->city_id == 0 ? null : $request->city_id;
|
|
// $user->city_fa = ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa ;
|
|
|
|
// if ($request->edarate_ostani_id != 'null') {
|
|
// $temp = EdarateOstani::find($request->edarate_ostani_id)->name_fa;
|
|
// $user->edarate_ostani_id = $request->edarate_ostani_id;
|
|
// $user->edarate_ostani_name = $temp;
|
|
// if ($request->province_id == 0) {
|
|
// $user->name = $temp .' '. $user->province_fa;
|
|
// } else {
|
|
// $user->name = $temp .' استان '. $user->province_fa;
|
|
// }
|
|
// } else {
|
|
// $temp = EdarateShahri::find($request->edarate_shahri_id)->name_fa;
|
|
// $user->edarate_shahri_id = $request->edarate_shahri_id;
|
|
// $user->edarate_shahri_name = $temp;
|
|
|
|
// if ($request->province_id == 0) {
|
|
// $user->name = $temp .' '. $user->province_fa;
|
|
// } else {
|
|
// $user->name = $temp .' استان '. $user->province_fa;
|
|
// }
|
|
// }
|
|
|
|
// $user->password = Hash::make($request->password);
|
|
// $user->national_code = $request->national_code;
|
|
// $user->save();
|
|
|
|
// if (auth()->user()) {
|
|
// auth()->user()->addActivityComplete(1039, $user);
|
|
// }
|
|
|
|
// return response()->json([
|
|
// 'message' => 'success',
|
|
// 'data' => $user
|
|
// ], 200);
|
|
// }
|
|
|
|
// public function show($id)
|
|
// {
|
|
// $user = User::where('id', $id)->with(['roles', 'permissions'])->get();
|
|
// return response()->json([
|
|
// 'status' => '200',
|
|
// 'message' => 'success',
|
|
// 'data' => $user
|
|
// ], 200);
|
|
// }
|
|
|
|
// public function update(Request $request, User $user)
|
|
// {
|
|
// $request->validate([
|
|
// 'national_code' => 'required|unique:users,national_code,'.$user->id,
|
|
// ]);
|
|
|
|
// if ($request->has('avatar')) {
|
|
// Storage::delete('public/' . $user->avatar);
|
|
// $destinationPath = 'avatar/' . $request->username;
|
|
// $filename = time() .".". $request->file('avatar')->getClientOriginalExtension();
|
|
// $request->file('avatar')->storeAs($destinationPath, $filename, 'public');
|
|
// $user->update(['avatar' => 'storage/'.$destinationPath ."/". $filename]);
|
|
// }
|
|
|
|
|
|
|
|
// $user->province_id = $request->province_id == 0 ? null : $request->province_id;
|
|
// $user->province_fa = ($request->province_id == 0) ? 'اداره کل' : Province::find($request->province_id)->name_fa;
|
|
|
|
// $user->city_id = $request->city_id == 0 ? null : $request->city_id;
|
|
// $user->city_fa = ($request->city_id == 0) ? null : City::find($request->city_id)->name_fa ;
|
|
|
|
// if ($request->edarate_ostani_id != 'null') {
|
|
// $temp = EdarateOstani::find($request->edarate_ostani_id)->name_fa;
|
|
// $user->edarate_ostani_id = $request->edarate_ostani_id;
|
|
// $user->edarate_ostani_name = $temp;
|
|
|
|
// $user->edarate_shahri_id = null;
|
|
// $user->edarate_shahri_name = null;
|
|
|
|
// if ($request->province_id == 0) {
|
|
// $user->name = $temp .' '. $user->province_fa;
|
|
// } else {
|
|
// $user->name = $temp .' استان '. $user->province_fa;
|
|
// }
|
|
// } else {
|
|
// $temp = EdarateShahri::find($request->edarate_shahri_id)->name_fa;
|
|
// $user->edarate_shahri_id = $request->edarate_shahri_id;
|
|
// $user->edarate_shahri_name = $temp;
|
|
// $user->edarate_ostani_id = null;
|
|
// $user->edarate_ostani_name = null;
|
|
// if ($request->province_id == 0) {
|
|
// $user->name = $temp .' '. $user->province_fa;
|
|
// } else {
|
|
// $user->name = $temp .' استان '. $user->province_fa;
|
|
// }
|
|
// }
|
|
|
|
// $user->first_name = $request->first_name;
|
|
// $user->last_name = $request->last_name;
|
|
// $user->position = $request->position;
|
|
// $user->mobile = $request->mobile;
|
|
// $user->degree = $request->degree;
|
|
// $user->major = $request->major;
|
|
// $user->national_code = $request->national_code;
|
|
|
|
|
|
|
|
|
|
|
|
// if (!is_null($request->password)) {
|
|
// $request->validate([
|
|
// 'password' => ['string']
|
|
// ]);
|
|
// $user->password = Hash::make($request->password);
|
|
// }
|
|
|
|
// if (! $request->permissions == null) {
|
|
// $user->syncPermissions(explode(",", $request->permissions));
|
|
// }
|
|
|
|
// $roles = $request->only('roles');
|
|
// if (! $roles == null) {
|
|
// $user->syncRoles($roles);
|
|
// }
|
|
|
|
// $user->save();
|
|
|
|
// if (auth()->user()) {
|
|
// auth()->user()->addActivityComplete(1040, $user);
|
|
// }
|
|
|
|
// return response()->json([
|
|
// 'message' => 'success',
|
|
// 'data' => $user
|
|
// ]);
|
|
// }
|
|
|
|
// public function destroy(User $user)
|
|
// {
|
|
// if (auth()->user()) {
|
|
// auth()->user()->addActivityComplete(1041, $user);
|
|
// }
|
|
|
|
// $user->delete();
|
|
// return response()->json([
|
|
// 'status' => 'success',
|
|
// 'message' => 'user has been deleted.'
|
|
// ]);
|
|
// }
|
|
|
|
// For user
|
|
|
|
// public function getAllPermissions()
|
|
// {
|
|
// $permissions = Permission::select('id', 'name', 'name_fa', 'description', 'type')
|
|
// ->orderBy('type')
|
|
// // ->where('id', '>', 9)
|
|
// ->get();
|
|
|
|
// return response()->json([
|
|
// 'Permissions' => $permissions,
|
|
// ]);
|
|
// }
|
|
|
|
// public function userPermission($id)
|
|
// {
|
|
// $user = User::find($id);
|
|
// return response()->json([
|
|
// 'message' => 'success',
|
|
// 'data' => $user->permissions,
|
|
// ]);
|
|
// }
|
|
|
|
// public function assignPermission(Request $request, User $user)
|
|
// {
|
|
// if (auth()->user()) {
|
|
// auth()->user()->addActivityComplete(1042);
|
|
// }
|
|
// $permissions = explode(",", $request->permissions);
|
|
// if (! $permissions == null) {
|
|
// $user->syncPermissions($permissions);
|
|
// }
|
|
|
|
// return response()->json([
|
|
// 'message' => 'status',
|
|
// 'data' => User::where('id', $user->id)->with(['permissions'])->get()
|
|
// ]);
|
|
// }
|
|
|
|
// public function createRole(Request $request)
|
|
// {
|
|
// $request->validate([
|
|
// 'role_name' => 'required|string',
|
|
// 'permissions' => 'required'
|
|
// ], [
|
|
// 'permissions.required' => 'انتخاب دسترسیها الزامی است.',
|
|
// 'role_name.required' => 'نام نقش الزامی است.'
|
|
// ]);
|
|
|
|
// if (auth()->user()) {
|
|
// auth()->user()->addActivityComplete(1043);
|
|
// }
|
|
|
|
// $role = Role::create([
|
|
// 'name' => time(),
|
|
// 'name_fa' => $request->role_name,
|
|
// 'description' => $request->description
|
|
// ]);
|
|
|
|
// $permissions = $request->permissions;
|
|
|
|
// // $permissions = explode(",", $request->permissions);
|
|
// $role->givePermissionTo($permissions);
|
|
|
|
// return response()->json([
|
|
// 'message' => 'success',
|
|
// 'data' => $role
|
|
// ]);
|
|
// }
|
|
|
|
// public function showAllRoles(Request $request)
|
|
// {
|
|
// $roles = Role::where('for_report', 0)->get();
|
|
|
|
// return response()->json([
|
|
// 'message' => 'success',
|
|
// 'data' => $roles
|
|
// ]);
|
|
// }
|
|
|
|
// public function showRole($id, Request $request)
|
|
// {
|
|
// $role = Role::where('id', $id)->with('permissions:id,name,name_fa,description')->first();
|
|
|
|
// return response()->json([
|
|
// 'message' => 'success',
|
|
// 'data' => [
|
|
// 'role' => Role::whereId($id)->first(),
|
|
// 'permissions' => $role->permissions
|
|
// ]
|
|
// ]);
|
|
// }
|
|
|
|
// public function editRole(Request $request, $id)
|
|
// {
|
|
// $request->validate([
|
|
// 'role_name' => 'required|string',
|
|
// 'permissions' => 'required'
|
|
// ], [
|
|
// 'permissions.required' => 'انتخاب دسترسیها الزامی است.',
|
|
// 'role_name.required' => 'نام نقش الزامی است.'
|
|
// ]);
|
|
|
|
// if (auth()->user()) {
|
|
// auth()->user()->addActivityComplete(1044);
|
|
// }
|
|
// $role = Role::find($id);
|
|
|
|
|
|
// $updateRole = $role->update([
|
|
// 'name_fa' => $request->role_name,
|
|
// 'description' => $request->description
|
|
// ]);
|
|
|
|
// $permissions = $request->permissions;
|
|
// // $permissions = explode(",", $request->permissions);
|
|
|
|
// $role->syncPermissions($permissions);
|
|
|
|
// return response()->json([
|
|
// 'message' => 'success',
|
|
// 'data' => $role
|
|
// ]);
|
|
// }
|
|
|
|
// public function deleteRole(Request $request, $id)
|
|
// {
|
|
// if (auth()->user()) {
|
|
// auth()->user()->addActivityComplete(1045);
|
|
// }
|
|
// $role = Role::find($id)->delete();
|
|
|
|
// return response()->json([
|
|
// 'message' => 'success',
|
|
// 'data' => 1
|
|
// ]);
|
|
// }
|
|
|
|
/**
|
|
* Get user permissions
|
|
*/
|
|
// public function getUserPermissions()
|
|
// {
|
|
// $userPermissions = Auth::user()->getUserPermissions();
|
|
|
|
// return response()->json([
|
|
// 'message' => 'success',
|
|
// 'data' => $userPermissions
|
|
// ]);
|
|
// }
|
|
|
|
}
|