182 lines
6.7 KiB
PHP
182 lines
6.7 KiB
PHP
<?php
|
|
|
|
namespace App\Http\Controllers\Admin;
|
|
|
|
use Illuminate\Http\Request;
|
|
use App\Traits\HttpResponse;
|
|
use App\Http\Controllers\Controller;
|
|
use App\Services\Admin\ManageSubAdminService;
|
|
use App\Models\User;
|
|
|
|
class ManageSubAdminController extends Controller
|
|
{
|
|
use HttpResponse;
|
|
|
|
protected $admin;
|
|
|
|
public function __construct(ManageSubAdminService $admin)
|
|
{
|
|
$this->admin = $admin;
|
|
}
|
|
|
|
public function index()
|
|
{
|
|
return view('Admin.Pages.manage_sub_admin.manage_sub_admin',[
|
|
'users' => $this->admin->getAllAdmin()
|
|
]);
|
|
}
|
|
|
|
// public function role_list()
|
|
// {
|
|
// return view('Admin.Pages.manage_sub_admin.role_list');
|
|
// }
|
|
|
|
// public function view_role()
|
|
// {
|
|
// return view('Admin.Pages.manage_sub_admin.view_role');
|
|
// }
|
|
|
|
public function status(Request $request)
|
|
{
|
|
$statusChanged = $this->admin->changeStatus($request);
|
|
return $statusChanged ?
|
|
$this->response('Status Changed!', 200) :
|
|
$this->response('Error Changing Status!', 400);
|
|
}
|
|
|
|
public function listSubAdmin()
|
|
{
|
|
$subAdmin = User::where(['role'=>1, 'status'=>1])->whereNotIn('id',[auth()->user()->id])->get();
|
|
// dd($subAdmin);
|
|
return view('Admin.sub_admin_list',['subAdmin'=>$subAdmin]);
|
|
}
|
|
|
|
public function addSubAdmin(Request $request)
|
|
{
|
|
dd($request->all());
|
|
$validator = Validator::make($request->post(), [
|
|
'name' => 'required',
|
|
// 'address' => 'required',
|
|
// 'contact_number' => 'required|unique:users,contact_number',
|
|
// 'pan_no' => 'required|unique:users,pan_no',
|
|
'email' => 'required|unique:users,email',
|
|
], ['email.unique' => 'Email is not unique', 'name.required' => 'Name is required']);
|
|
$validationMessage = $this->validationError($validator);
|
|
if ($validationMessage) {
|
|
return response()->json(['status' => 400, 'message' => $validationMessage]);
|
|
}
|
|
$principalType = Iam_Principal_Type::find($request->role_type);
|
|
|
|
// defining user type
|
|
if ($request->role_type == 1) {
|
|
$roleType = 1;
|
|
} else if ($request->role_type == 2) {
|
|
$roleType = 2;
|
|
} else {
|
|
$roleType = 0;
|
|
}
|
|
|
|
$addUser = User::insertGetId([
|
|
'principal_type_xid' => $principalType->id,
|
|
'name' => $request->name,
|
|
'email' => $request->email,
|
|
'contact_number' => $request->mobile_number,
|
|
'role' => $roleType,
|
|
]);
|
|
|
|
foreach ($request->all() as $key => $value) {
|
|
if ($key == '_token' || $key == 'name' || $key == 'email' || $key == 'mobile_number' || $key == 'role_type') {
|
|
continue;
|
|
} else {
|
|
$appResource = Iam_App_Resources::find($value);
|
|
$addAppResourceActionLink = Iam_App_Resource_Action_Link::create([
|
|
'user_xid' => $addUser,
|
|
'app_resource_xid' => $appResource->id,
|
|
]);
|
|
}
|
|
}
|
|
return response()->json(['status' => 200, 'message' => 'User Added!']);
|
|
}
|
|
|
|
|
|
public function viewSubAdmin(Request $request)
|
|
{
|
|
dd($request->all());
|
|
$id = $request->id();
|
|
$user = User::find($id);
|
|
$accessPage = Iam_App_Resource_Action_Link::where('user_xid', $id)->pluck('app_resource_xid');
|
|
return view('Admin.edit-sub-admin',['user'=>$user, 'accessPage'=>$accessPage, 'id'=>$id]);
|
|
}
|
|
public function updateSubAdmin(Request $request)
|
|
{
|
|
// dd($request->all());
|
|
// dd($request->ip());
|
|
$id = $request->id;
|
|
// dd($id);
|
|
$validator = Validator::make($request->all(), [
|
|
'name' => 'required',
|
|
// 'address' => 'required',
|
|
// 'contact_number' => 'required|unique:users,contact_number,' . $id . '',
|
|
// 'pan_no' => 'required|unique:users,pan_no,' . $id . '',
|
|
'email' => 'required|unique:users,email,' . $id . '',
|
|
], [
|
|
'email.unique' => 'Email is not unique',
|
|
'name.required' => 'Name is required',
|
|
'email.required' => 'Email is required'
|
|
]);
|
|
$validationMessage = $this->validationError($validator);
|
|
if ($validationMessage) {
|
|
return response()->json(['status' => 400, 'message' => $validationMessage]);
|
|
}
|
|
$updateUser = User::where('id', $id)->update([
|
|
'name' => $request->name,
|
|
// 'address' => $request->address,
|
|
'contact_number' => $request->mobile_number,
|
|
'role' => $request->role_type,
|
|
'email' => $request->email,
|
|
]);
|
|
|
|
// getting old resource access id
|
|
$oldAccessResourceId = array();
|
|
$olddata = Iam_App_Resource_Action_Link::where('user_xid', $id)->pluck('app_resource_xid');
|
|
foreach ($olddata as $oldAppId) {
|
|
array_push($oldAccessResourceId, $oldAppId);
|
|
}
|
|
|
|
// getting new access id
|
|
$newAccessResourceId = array();
|
|
foreach ($request->all() as $key => $value) {
|
|
if ($key == '_token' || $key == '_method' || $key == 'id' || $key == 'name' || $key == 'email' || $key == 'role_type' || $key == 'mobile_number') {
|
|
continue;
|
|
} else {
|
|
array_push($newAccessResourceId, intval($value));
|
|
}
|
|
}
|
|
// dd($newAccessResourceId);
|
|
// getting id for removing
|
|
$removeOldResourceAccessId = array_diff($oldAccessResourceId, $newAccessResourceId);
|
|
// removing old access
|
|
foreach ($removeOldResourceAccessId as $oldAccessId) {
|
|
Iam_App_Resource_Action_Link::where(['user_xid' => $id, 'app_resource_xid' => $oldAccessId])->delete();
|
|
}
|
|
|
|
// adding new access id
|
|
foreach ($request->all() as $key => $value) {
|
|
if ($key == '_token' || $key == '_method' || $key == 'id' || $key == 'name' || $key == 'email' || $key == 'mobile_number' || $key == 'role_type') {
|
|
continue;
|
|
} else {
|
|
// dd($request->post());
|
|
$checkAccess = Iam_App_Resource_Action_Link::where(['user_xid' => $id, 'app_resource_xid' => $value])->doesntExist();
|
|
if ($checkAccess) {
|
|
$appResource = Iam_App_Resources::find($value);
|
|
$addAppResourceActionLink = Iam_App_Resource_Action_Link::create([
|
|
'user_xid' => $id,
|
|
'app_resource_xid' => $appResource->id,
|
|
]);
|
|
}
|
|
}
|
|
}
|
|
return response()->json(['status' => 200, 'message' => 'User Updated!']);
|
|
}
|
|
}
|