inital commit
This commit is contained in:
479
app/Http/Controllers/Api/UserController.php
Normal file
479
app/Http/Controllers/Api/UserController.php
Normal file
@@ -0,0 +1,479 @@
|
||||
<?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
|
||||
// ]);
|
||||
// }
|
||||
|
||||
}
|
||||
Reference in New Issue
Block a user