HEX
Server: Apache/2.4.41 (Amazon) OpenSSL/1.0.2k-fips PHP/5.6.40
System: Linux ip-172-31-40-18 4.14.146-93.123.amzn1.x86_64 #1 SMP Tue Sep 24 00:45:23 UTC 2019 x86_64
User: apache (48)
PHP: 5.6.40
Disabled: NONE
Upload Files
File: /var/www/html/pmw24/driver_settlement/applicationold/controllers/admin/UserPermission.php
<?php
/*
	author: SREELA
	date: 21-9-2019
*/

defined('BASEPATH') OR exit('No direct script access allowed');

class userPermission extends MY_Controller {

	public function __construct() {		
		parent::__construct();
		//$this->redirect_guest();
		
		$this->load->model('admin/muser');	
		
		if($this->session->userdata('admin') != 1)
		{
			redirect('admin');			
		}
		else{
			$this->user_id 	= $this->session->userdata('user_data');			
		}
				
	}
	// Default load function for header and footer inculded
	private function _load_view() {
		$data 					= array();
		$user_permission_details= array();
		$menu_list 				= array();
		$role_data				= $this->mcommon->getFullDetails('master_role');
		if(!empty($role_data)){
			$data['role_data']	= $role_data;
		}
		else{
			$data['role_data']	= '';
		}		
		$menu_data				= $this->mcommon->getAllMenuList('master_menu');
		//pr($menu_data);			
		if(!empty($menu_data)){
			foreach($menu_data as $list){
				if(!empty($list['menu_link'])){
					$menu_list[]	= $list;
				}
			}
			$data['menu_data']	= $menu_list;

		}
		else{
			$data['menu_data']	= '';
		}
		
		//pr($data['menu_data']);
		$data['content']	=	'admin/user/user_permission_list';
		$this->load->view('admin/layouts/index',$data);
	}	


	
	public function index()
	{
		
		$this->_load_view();
		
	}
	public function saveUserPermitionSingle(){
		$responseArr		= array();
		$updatearr			= array();
		$insertarr			= array();
		if($this->input->post()){			
			//pr($_POST);
			$add_flag		= '0';
			$edit_flag		= '0';
			$delete_flag	= '0';
			$download_flag	= '0';
			$menu_id		= $this->input->post('menu_id');
			$menu_name		= $this->input->post('menu_name');
			$role_id		= $this->input->post('role_id');
			$parent_id		= $this->input->post('parent_id');
			if(!empty($this->input->post('add'))){
				$add_flag		= $this->input->post('add');
			}
			if(!empty($this->input->post('edit'))){
				$edit_flag		= $this->input->post('edit');
			}
			if(!empty($this->input->post('delete_acn'))){
				$delete_flag		= $this->input->post('delete_acn');
			}
			if(!empty($this->input->post('download'))){
				$download_flag		= $this->input->post('download');
			}			
			$permission_id  		= $this->input->post('permission_id');
			$user_permission_data	= $this->getUserPermissionList($menu_id,$role_id);
			//pr($user_permission_data);
			if(empty($user_permission_data)){
				$insertarr 	= array('user_id'		=>'',
									'role_id' 		=>$role_id,
									'menu_id' 		=>$menu_id,
									'menu_name'		=>$menu_name,
									'add_flag' 		=>$add_flag,
									'edit_flag' 	=>$edit_flag,
									'delete_flag' 	=>$delete_flag,
									'download_flag' =>$download_flag,
									'is_active'		=> '1',
									'created_by'	=>$this->user_id,
									'created_ts'	=>date('Y-m-d h:i:s')
								);
			//pr($insertarr);
				$this->mcommon->insert('user_permission',$insertarr);
				//echo $parent_id;exit;
				$parent_cond		= array('menu_id' => $parent_id,'role_id' =>$role_id);				
				$parent_data 		= $this->mcommon->getRow('user_permission',$parent_cond);
				//pr($parent_data);
				if(empty($parent_data)){
					//echo $parent_id;exit;
					$parent_condition		= array('menu_id' => $parent_id);				
					$parent_details 		= $this->mcommon->getRow('master_menu',$parent_condition);
					//pr($parent_details);
					if(!empty($parent_details)){
						$insertarr 	= array('user_id'	=>'',
									'role_id' 		=>$role_id,
									'menu_id' 		=>$parent_details['menu_id'],
									'menu_name'		=>$parent_details['menu_name'],
									'add_flag' 		=>$add_flag,
									'edit_flag' 	=>$edit_flag,
									'delete_flag' 	=>$delete_flag,
									'download_flag' =>$download_flag,
									'is_active'		=> '1',
									'created_by'	=>$this->user_id,
									'created_ts'	=>date('Y-m-d h:i:s')
								);
			//pr($insertarr);
						$this->mcommon->insert('user_permission',$insertarr);
					}
				}
				$user_permission_details	= $this->getUserPermissionDataOnRole($role_id);
				$responseArr['html']		= $this->load->view('admin/user/ajax_user_permission_list',$user_permission_details,true);
				$responseArr['process']		= 'success';
			}
			else{
				//echo "fsjaflk";
				$update_cond	= array('permission_id' => $permission_id);
				$updatearr 		= array('user_id'		=>'',
										'role_id' 		=>$role_id,
										'menu_id' 		=>$menu_id,
										'menu_name'		=>$menu_name,
										'add_flag' 		=>$add_flag,
										'edit_flag' 	=>$edit_flag,
										'delete_flag' 	=>$delete_flag,
										'download_flag' =>$download_flag,
										'is_active'		=> '1',
										'updated_by'	=>$this->user_id,
										'updated_ts'	=>date('Y-m-d h:i:s')
									);

				//pr($update_cond);
				$this->mcommon->update('user_permission',$update_cond,$updatearr);
				$menu_prnt_cond		= array('role_id' => $role_id,'menu_id' => $parent_id);
				$prent_updatearr 	= array('add_flag' 		=>$add_flag,
											'edit_flag' 	=>$edit_flag,
											'delete_flag' 	=>$delete_flag,
											'download_flag' =>$download_flag,
											'is_active'		=> '1',
											'updated_by'	=>$this->user_id,
											'updated_ts'	=>date('Y-m-d h:i:s')
										);

				//pr($update_cond);
				$this->mcommon->update('user_permission',$menu_prnt_cond,$prent_updatearr);
				$user_permission_details	= $this->getUserPermissionDataOnRole($role_id);
				$responseArr['html']		= $this->load->view('admin/user/ajax_user_permission_list',$user_permission_details,true);

				$responseArr['process']		= 'success';
				
			}
		}
		else{
			$responseArr['process']		= 'failed';
		}
		echo json_encode($responseArr);exit;
	}
	public function ajaxGetUserPermissionDataOnRole($role_id){		
		$user_permission_details			= array();	
		$user_permission_details			= $this->getUserPermissionDataOnRole($role_id);
		$user_permission_details['role_id']	= $role_id;
		//pr($user_permission_details);
		echo $this->load->view('admin/user/ajax_user_permission_list',$user_permission_details,true);exit;
	}
	public function getUserPermissionDataOnRole($role_id){
		$data 					= array();	
		$menu_data				= $this->mcommon->getAllMenuList('master_menu');
		//pr($menu_data,0);			
		if(!empty($menu_data)){
			foreach($menu_data as $val){
				if(!empty($val['menu_link'])){
					$user_permission_condn	= array('menu_id' =>$val['menu_id'],'role_id' => $role_id);
					$user_permission_data	= $this->getUserPermissionList($val['menu_id'],$role_id);
					//pr($user_permission_data,0);
					if(!empty($user_permission_data)){
						$user_permission_details[$val['menu_id']]	= $user_permission_data;
					}
					else{
						$user_permission_details[$val['menu_id']]	= '';
					}
					$menu_list[]	= $val;
					
				}
				
			}
			$data['menu_data']	= $menu_list;
		}
		else{
			$data['menu_data']	= '';
		}
		if(!empty($user_permission_details)){
			$data['user_permission_data']	= $user_permission_details;
		}
		else{
			$data['user_permission_data']	= '';
		}
		//pr($data['menu_data']);
		
		return $data;
	}
	public function Ck_User_Permission($menu_id) 
    {
      $role_id = $this->session->userdata('role_id');	
      $permission_lists   = array();
      $permission_flag    = array();  
      if($role_id != '1'){
      		$condition          = array('user_permission.role_id' => $role_id,'user_permission.menu_id' => $menu_id);
      		$permission_lists   = $this->mcommon->getRow('user_permission',$condition);      
		      if(!empty($permission_lists)){
		        $permission_flag['add_flag']         = $permission_lists['add_flag'];
		        $permission_flag['edit_flag']        = $permission_lists['edit_flag'];
		        $permission_flag['delete_flag']      = $permission_lists['delete_flag'];
		        $permission_flag['download_flag']    = $permission_lists['download_flag'];
		        
		      }
      }
      else{
      		$permission_flag['add_flag']         = '1';
	        $permission_flag['edit_flag']        = '1';
	        $permission_flag['delete_flag']      = '1';
	        $permission_flag['download_flag']    = '1';
      }
   	  echo json_encode($permission_flag);exit;
    } 
    public function mutilyUserPermission(){
    	if($this->input->post()){    		
    		//pr($_POST);
    		$add_flag		= '0';
    		$edit_flag		= '0';
    		$delete_flag	= '0';
    		$download_flag	= '0';
    		$add 	 = $this->input->post('add');
    		$edit 	 = $this->input->post('edit');
    		$delete  = $this->input->post('delete');
    		$download= $this->input->post('download');
    		$role_id = $this->input->post('role_id');
    		$parent_id = $this->input->post('parent_id');
    		//pr($add);
    		$user_permission_details 	= $this->getUserPermissionDataOnRole($role_id);
    		if(!empty($user_permission_details['menu_data'])){
    			foreach($user_permission_details['menu_data'] as $val){    				
    				if(!empty($add) && array_key_exists($val['menu_id'], $add)){
    					$add_flag	= '1';
    				}
    				else{
    					$add_flag	= '0';
    				}
    				if(!empty($edit) && array_key_exists($val['menu_id'], $edit)){
    					$edit_flag	= '1';
    				}
    				else{
    					$edit_flag	= '0';
    				}
    				if(!empty($delete) && array_key_exists($val['menu_id'], $delete)){
    					$delete_flag	= '1';
    				}
    				else{
    					$delete_flag	= '0';
    				}
    				if(!empty($download) && array_key_exists($val['menu_id'], $download)){
    					$download_flag	= '1';
    				}
    				else{
    					$download_flag	= '0';
    				}
    				$condition	= array('role_id' => $role_id,'menu_id'=>$val['menu_id']);
    				$user_permission_data = $this->mcommon->getDetails('user_permission',$condition);
    				if(empty($user_permission_data)){
						$insertarr 	= array('user_id'		=>'',
											'role_id' 		=>$role_id,
											'menu_id' 		=>$val['menu_id'],
											'menu_name'		=>$val['menu_name'],
											'add_flag' 		=>$add_flag,
											'edit_flag' 	=>$edit_flag,
											'delete_flag' 	=>$delete_flag,
											'download_flag' =>$download_flag,
											'is_active'		=> '1',
											'created_by'	=>$this->user_id,
											'created_ts'	=>date('Y-m-d h:i:s')
										);
					//pr($insertarr);
						$this->mcommon->insert('user_permission',$insertarr);
						if(!empty($parent_id) && array_key_exists($val['menu_id'], $parent_id)){
							
							$parent_cond		= array('menu_id' => $parent_id[$val['menu_id']],'role_id' =>$role_id);				
							$parent_data 		= $this->mcommon->getRow('user_permission',$parent_cond);
							//pr($parent_data);
							if(empty($parent_data)){
								//echo $parent_id;exit;
								$parent_condition		= array('menu_id' => $parent_id[$val['menu_id']]);				
								$parent_details 		= $this->mcommon->getRow('master_menu',$parent_condition);
								//pr($parent_details);
								if(!empty($parent_details)){
									$insertarr 	= array('user_id'	=>'',
												'role_id' 		=>$role_id,
												'menu_id' 		=>$parent_details['menu_id'],
												'menu_name'		=>$parent_details['menu_name'],
												'add_flag' 		=>$add_flag,
												'edit_flag' 	=>$edit_flag,
												'delete_flag' 	=>$delete_flag,
												'download_flag' =>$download_flag,
												'is_active'		=> '1',
												'created_by'	=>$this->user_id,
												'created_ts'	=>date('Y-m-d h:i:s')
											);
						//pr($insertarr);
									$this->mcommon->insert('user_permission',$insertarr);
								}
							}
						}
						
						$this->session->set_flashdata('success_msg','User permission given successfully');
					}
					else{
						
						$updatearr 		= array('user_id'		=>'',
												'role_id' 		=>$role_id,
												'menu_id' 		=>$val['menu_id'],
												'menu_name'		=>$val['menu_name'],
												'add_flag' 		=>$add_flag,
												'edit_flag' 	=>$edit_flag,
												'delete_flag' 	=>$delete_flag,
												'download_flag' =>$download_flag,
												'is_active'		=> '1',
												'updated_by'	=>$this->user_id,
												'updated_ts'	=>date('Y-m-d h:i:s')
											);

						//pr($update_cond);
						$this->mcommon->update('user_permission',$condition,$updatearr);
						$this->session->set_flashdata('success_msg','User permission updated successfully');
					}
    			}
    		}
    		else{
    			$this->session->set_flashdata('error_msg','Some issue found, please try again.');
    		}
		}
		redirect('admin/user-permission');
    }
}