home/autoph/public_html/projects/golf/routes/user.php 0000644 00000006070 15030262666 0017077 0 ustar 00 \App\Middlewares\Auth::class], function () {
Router::group(['prefix' => '/users'], function () {
Router::group(['middleware' => \App\Middlewares\Token::class], function () {
Router::get('/', 'UserController@usersIndex')->setName('users');
// Router::group(['prefix' => '/import'], function () {
Router::get('/import', 'UserController@usersImportIndex')->setName('users.import');
// });
});
Router::group(['middleware' => \App\Middlewares\TokenVerifier::class], function () {
Router::match(['get', 'post'], '/sendInvitation', 'UserController@sendInvitation')->setName('users.sms.invitation');
Router::get('/list', 'UserController@list')->setName('users.list');
Router::get('/event/list', 'UserController@eventsData')->setName('users.event.list');
Router::get('/adminList', 'UserController@adminList')->setName('users.admin.list');
Router::post('/status', 'UserController@updateStatus')->setName('users.status');
Router::post('/event/status', 'UserController@updateEventStatus')->setName('users.event.status');
Router::post('/reward', 'UserController@createReward')->setName('users.create.reward');
Router::post('/reward/count', 'UserController@rewardClaimCount')->setName('users.reward.count');
Router::post('/mulligan/count', 'UserController@mulliganCount')->setName('users.mulligan.count');
Router::post('/mulligan/update', 'UserController@updateMulligan')->setName('users.update.mulligan');
Router::post('/team/status', 'UserController@removeFromTeam')->setName('users.team.status');
Router::post('/store', 'UserController@store')->setName('users.store');
Router::post('/fetch', 'UserController@getUser')->setName('users.fetch');
Router::post('/player/fetch', 'UserController@getPlayer')->setName('users.player.fetch');
Router::post('/team/store', 'UserController@storeTeam')->setName('users.team.store');
Router::post('/event/store', 'UserController@storePlayer')->setName('users.event.store');
Router::get('/options', 'UserController@options')->setName('users.options');
Router::get('/mate/options', 'UserController@mateOption')->setName('users.mate.options');
Router::get('/event/team/options', 'UserController@userEventTeamOptions')->setName('users.event.team.options');
Router::get('/team/options', 'UserController@teamOptions')->setName('users.team.options');
Router::get('/team/filter/options', 'UserController@teamFilterOptions')->setName('users.team.filter.options');
Router::post('/event/attendance', 'UserController@setAttendance')->setName('users.event.attendance');
Router::post('/import', 'UserController@usersImport')->setName('users.import.store');
//modify
Router::post('/event/bootClaim', 'UserController@bootClaim')->setName('users.event.bootClaim');
});
});
});
home/autoph/public_html/connectv1/lms/app/controllers/user.php 0000644 00000032774 15031206346 0020623 0 ustar 00 sql_query_num_rows("SELECT id FROM lms2_users WHERE id_number = '$id_no' AND status = 1");
}
function read_email_count($email,$utility_class,$db){
return $db->sql_query_num_rows("SELECT lu.id
FROM lms2_user_contacts luc
INNER JOIN lms2_users lu
ON luc.user_id = lu.id
WHERE luc.email = '$email' AND lu.status = 1");
}
function read_mobile_count($mobile,$utility_class,$db){
return $db->sql_query_num_rows("SELECT lu.id
FROM lms2_user_contacts luc
INNER JOIN lms2_users lu
ON luc.user_id = lu.id
WHERE luc.mobile = '$mobile' AND lu.status = 1");
}
function insert_user_details($array_data,$utility_class,$db){
$query = "INSERT INTO `lms2_users`( `id_number`,`default_position_id`, `default_dealer_id`, `firstname`, `lastname`, `date_added`, `status`)
VALUES ('".$array_data['id_no']."','".$array_data['position']."','".$array_data['dealer']."','".$array_data['firstname']."','".$array_data['lastname']."',NOW(),'1')";
$inserted_user_id = $db->sql_query_id($query);
$query_contact = "INSERT INTO `lms2_user_contacts`(`user_id`, `mobile`, `email`) VALUES ('$inserted_user_id','".$array_data['mobile']."','".$array_data['email']."')";
$inserted_user_contact_count = $db->sql_query_affected_rows($query_contact);
$hash_password = password_hash(md5($array_data['password']), PASSWORD_DEFAULT);
$query_account = "INSERT INTO `lms2_user_accounts`( `user_id`, `username`, `password`, `is_active_account`) VALUES ('$inserted_user_id','".$array_data['id_no']."','$hash_password','0')";
$inserted_user_account_count = $db->sql_query_affected_rows($query_account);
return intval($inserted_user_contact_count + $inserted_user_account_count);
}
function read_user_status($array_data,$utility_class,$db){
}
function read_user_account_status($array_data,$utility_class,$db){
}
function insert_temporary_role($array_data,$user_id,$utility_class,$db){
$query_insert_role = "INSERT INTO `lms2_roles`( `status`) VALUES (0)";
$role_id = $db->sql_query_id($query_insert_role);
$query_insert_role_access = "INSERT INTO `lms2_role_access`( `role_id`, `json_dealers`, `json_menus`) VALUES ($role_id,'[]','[]')";
$db->sql_query($query_insert_role_access);
return $role_id;
}
function delete_temporary_role($array_data,$user_id,$utility_class,$db){
$query_remove_role_access = "DELETE FROM `lms2_role_access` WHERE role_id = ".$array_data['id']."";
$db->sql_query($query_remove_role_access);
$query_remove_role = "DELETE FROM `lms2_roles` WHERE id = ".$array_data['id']."";
return $db->sql_query_affected_rows($query_remove_role);
}
function update_role($role_id,$array_data,$user_id,$utility_class,$db){
$query_update_role = "UPDATE `lms2_roles` SET `name`=NULLIF('".$array_data['txt_role_name']."',''),`added_by`=NULLIF('$user_id',''),date_added = NOW() ,`status`=1 WHERE id = $role_id";
$db->sql_query_affected_rows($query_update_role);
}
function read_role_dealers($role_id ,$utility_class,$db){
$query = "SELECT `json_dealers` FROM `lms2_role_access` WHERE `role_id` = $role_id LIMIT 1";
return $db->select($query);
}
function update_role_dealers($role_id,$role_dealers,$utility_class,$db){
$query = "UPDATE `lms2_role_access` SET `json_dealers`= '$role_dealers' WHERE `role_id` = $role_id";
return $db->sql_query_affected_rows($query);
}
function update_role_menus($role_id,$role_menus,$utility_class,$db){
$query = "UPDATE `lms2_role_access` SET `json_menus`= '$role_menus' WHERE `role_id` = $role_id";
return $db->sql_query_affected_rows($query);
}
function role_dealer_list($array_data,$utility_class,$db){
// $offset_limit = "LIMIT ".$array_data['offset'].",".$array_data['limit']." ";
$offset_limit = "";
$field = " c.id as c_id,
c.code as c_code,
c.name as c_name,
d.id as d_id,
d.code as d_code,
d.name as d_name ";
$field_count = " COUNT(1) ";
$query = "SELECT
%s
FROM `lms2_companies` c
INNER JOIN lms2_dealers d
ON c.id = d.company_id
WHERE 1
AND
(CONCAT(c.code,' ',c.name) LIKE '%%%s%%' OR CONCAT(d.code,' ',d.name) LIKE '%%%s%%')
AND c.status = 1
AND d.status = 1
ORDER BY d.name ASC
%s
";
$query_formatted = sprintf(
$query,
$field,
$array_data['search'],
$array_data['search'],
$offset_limit
);
$query_formatted_count = sprintf(
$query,
$field_count,
$array_data['search'],
$array_data['search'],
''
);
// echo $query_formatted;exit;
return array(intval($db->select($query_formatted_count)),$db->sql_query($query_formatted));
}
function get_user_notification_info($user_id,$utility_class,$db){
$query = " SELECT nt.id,COUNT(nt.id) as total,nt.name ,
MAX(nl.date_added) ago_time
FROM `lms2_notification_type` nt
INNER JOIN lms2_notification_list nl
ON nt.id = nl.notification_type_id
WHERE 1
AND nt.status = 1
AND nl.status = 1
AND nl.is_read = 0
AND nl.to_user = $user_id
GROUP BY nt.id
ORDER BY nl.date_added DESC";
return $db->sql_query($query);
}
function get_user_notification_list($user_id,$type_id,$offset,$limit,$utility_class,$db){
$notif_type = "";
if(intval($type_id)){
$notif_type = " AND nl.`notification_type_id` = $type_id ";
}
$query = "SELECT u1.firstname,u1.lastname,nl.`id` as notif_id,
nl.`notification_type_id`,
nl.`description`,
nl.`date_added`,
nl.`is_read`,
nl.target_id,
DATE_FORMAT(nl.date_added,'%%M %%d, %%Y %%h:%%i %%p') as date_addedf
FROM `lms2_notification_list` nl
INNER JOIN lms2_users u1
ON nl.`from_user` = u1.id
WHERE 1
AND nl.status = 1
AND nl.`to_user` = %s
%s /*type_id*/
ORDER BY nl.`date_added` DESC
LIMIT %s,%s";
$query_final = sprintf($query,$user_id,$notif_type,$offset,$limit);
// echo $query;
return $db->sql_query($query_final);
}
function mark_as_read_notification($user_id,$type_id,$utility_class,$db){
$notif_type = "";
if(intval($type_id)){
$notif_type = " AND `notification_type_id` = $type_id ";
}
$query = "UPDATE `lms2_notification_list` SET `is_read`=1 WHERE 1
AND `to_user` = %s
%s";
$query_final = sprintf($query,$user_id,$notif_type);
// echo $query_final;
return $db->sql_query($query_final);
}
function role_list($array_data,$utility_class,$db){
// $offset_limit = "LIMIT ".$array_data['offset'].",".$array_data['limit']." ";
$offset_limit = "";
$field = " r.`id`, r.`name`,
(SELECT COUNT(1) FROM lms2_users su
INNER JOIN lms2_user_accounts sus
ON su.id = sus.user_id
WHERE sus.role_id = r.id
AND su.status = 1
AND sus.is_active_account = 1) as user_count,ra.json_menus ";
$field_count = " COUNT(1) ";
$query = "SELECT %s
FROM `lms2_roles` r
LEFT OUTER JOIN lms2_role_access ra
ON r.id = ra.role_id
WHERE 1
AND r.name LIKE '%%%s%%'
AND r.status = 1
ORDER BY r.name ASC
%s
";
$query_formatted = sprintf(
$query,
$field,
$array_data['search'],
$offset_limit
);
$query_formatted_count = sprintf(
$query,
$field_count,
$array_data['search'],
''
);
// echo $query_formatted_count;exit;
return array(intval($db->select($query_formatted_count)),$db->sql_query($query_formatted));
}
function remove_role($id,$utility_class,$db){
$query = "UPDATE `lms2_roles` SET `status`=0 WHERE id = $id";
$affected_rows = $db->sql_query_affected_rows($query);
return intval($affected_rows);
}
function system_user_security($where_statement,$array_data,$source,$utility_class,$db){
//check user status
$query = "SELECT
u.`id`, u.`default_dealer_id`, d.id AS department_id ,u.`default_position_id`, u.`gender_id`, u.`id_number`, CONCAT(u.`firstname`, ' ', u.`lastname`) as fullname ,u.`firstname`, u.`middlename`, u.`lastname`, u.`birthday`, u.`avatar`, u.`date_added`, u.`status`,
uc.`mobile`, uc.`email`, uc.`address`, uc.`city_id`, uc.`facebook`, uc.`instagram`, uc.`whatsapp`, uc.`viber`, uc.`linkedin`,
ua.`role_id`, ua.`username`, ua.`password`, ua.`is_active_account`, ra.json_dealers, ra.json_menus
FROM lms2_users u
INNER JOIN lms2_user_contacts uc
ON u.id = uc.user_id
INNER JOIN lms2_user_accounts ua
ON u.id = ua.user_id
LEFT OUTER JOIN lms2_roles r
ON ua.role_id = r.id
LEFT OUTER JOIN lms2_role_access ra
ON r.id = ra.role_id
LEFT OUTER JOIN lms2_positions p
ON u.`default_position_id` = p.id
LEFT OUTER JOIN lms2_departments d
ON p.`department_id` = d.id
WHERE 1
%s ";
$user_information_obj = $db->sql_query(sprintf($query,$where_statement));
$user_information = array();
foreach($user_information_obj as $row){
// print_r($row);exit;
$user_information = $row;
}
if(count($user_information) > 0){
//check password
if($source == 'login'){
$md5_password = md5($array_data['password']);
if (!password_verify($md5_password, $user_information['password'])) {
$return_arr['message'] = "Invalid password.";
$return_arr['status'] = 0;
return $return_arr;
// echo json_encode($return_arr);
// exit;
}
}
if (intval($user_information['status']) !== 1) {
$return_arr['message'] = "Your account is deactivated.";
$return_arr['status'] = 0;
return $return_arr;
// echo json_encode($return_arr);
// exit;
}
if (intval($user_information['is_active_account']) !== 1) {
$return_arr['message'] = "Your account is not yet approved.";
$return_arr['status'] = 0;
return $return_arr;
// echo json_encode($return_arr);
// exit;
}
$json_dealers = array();
//merge dealers
if($utility_class->isJson($user_information['json_dealers'])){
$json_dealers = json_decode($user_information['json_dealers']);
}
if($utility_class -> isNotEmpty($user_information['default_dealer_id'])){
$json_dealers = array_merge($json_dealers,array($user_information['default_dealer_id']));
}
$json_dealers = $utility_class -> toArrayInt($json_dealers);
$json_menus = array();
if($utility_class->isJson($user_information['json_menus'])){
$json_menus = json_decode($user_information['json_menus']);
}
$json_menus = $utility_class -> toArrayInt($json_menus);
//merge dealers to session
$user_information = array_merge($user_information,array('dealer_access'=>$json_dealers),array('menu_access'=>$json_menus));
// print_r($user_information);exit;
$_SESSION['crm_user'] = $user_information;
// if($source == 'login'){
$return_arr['message'] = "Welcome ".ucfirst(strtolower($user_information['firstname'])).".";
// $return_arr['data'] = $user_information;
$return_arr['status'] = 1;
return $return_arr;
// echo json_encode($return_arr);
// exit;
// }
}else{
$return_arr['message'] = "No account associated with this credentials.";
$return_arr['status'] = 0;
// echo json_encode($return_arr);
// exit;
}
}
}
?> home/autoph/public_html/connectv1/lms/app/models/user.php 0000644 00000032544 15031310447 0017531 0 ustar 00 escape($_REQUEST['model']);
// call_user_func_array($function_name, array($db,$user_class,$utility_class,$server_method,$_REQUEST));
$parameters = array(
'db'=>$db,
'user_class'=>$user_class,
'lead_class'=>$lead_class,
'utility_class'=>$utility_class,
'server_method'=>$server_method,
'user_id'=>$session_user_id,
'user_dealer_id'=>$session_user_dealer_id,
'user'=>$session_user,
'request'=>$_REQUEST,
);
call_user_func($function_name,$parameters);
}else{
echo "Invalid request.";
exit;
}
function signup($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
$request = $param['request'];
$db = $param['db'];
$array_data = json_decode($request['json_data'],true);
foreach ($array_data as $key => $value){
if($key != 'password'){
$array_data[$key] = trim(mb_strtoupper($array_data[$key]));
$array_data[$key] = $param['db']->escape($array_data[$key]);
}
}
//check dup id no.
$id_no_count = $param['user_class']->read_id_number_count($array_data['id_no'],$param['utility_class'],$db);
if(intval($id_no_count) > 0){
$return_arr['message'] = "ID number already exist.";
$return_arr['status'] = 0;
echo json_encode($return_arr);
exit;
}
$email_count = $param['user_class']->read_email_count($array_data['email'],$param['utility_class'],$db);
if(intval($email_count) > 0){
$return_arr['message'] = "Email address already exist.";
$return_arr['status'] = 0;
echo json_encode($return_arr);
exit;
}
$mobile_count = $param['user_class']->read_mobile_count($array_data['mobile'],$param['utility_class'],$db);
if(intval($mobile_count) > 0){
$return_arr['message'] = "Mobile number already exist.";
$return_arr['status'] = 0;
echo json_encode($return_arr);
exit;
}
if($param['user_class']->insert_user_details($array_data,$param['utility_class'],$db) === 2){
$return_arr['message'] = "Account successfully created.";
$return_arr['status'] = 1;
echo json_encode($return_arr);
exit;
}else{
$return_arr['message'] = "Account not created. Try again.";
$return_arr['status'] = 0;
echo json_encode($return_arr);
exit;
}
}
function signin($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
$db = $param['db'];
$utility_class = $param['utility_class'];
$array_data = json_decode($param['request']['json_data'],true);
$where_statement = " AND (uc.email = '".$array_data['username']."' OR ua.username = '".$array_data['username']."') ";
$result_arr = $param['user_class'] -> system_user_security($where_statement,$array_data,'login',$utility_class,$db);
echo json_encode($result_arr);
}
function signout($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
if(isset($_SESSION['crm_user'])){
session_destroy();
}else{
echo "No Session Found.";
}
}
function user_login_info($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
// print_r($_SESSION['crm_user']);
echo json_encode($_SESSION['crm_user']);
}
function user_notification_info($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
$db = $param['db'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$user_id = $param['user_id'];
$notification_obj = $user_class->get_user_notification_info($user_id,$utility_class,$db);
$notification_arr['data'] = array();
$total_count = 0;
foreach($notification_obj as $row){
$total_count += intval($row['total']);
$notification_arr['data'] = array_merge( $notification_arr['data'],
array(array(
'id'=>$row['id'],
'count'=>$row['total'],
'type'=>$row['name'],
'ago'=>$utility_class->time_elapsed_string($row['ago_time']),
)));
}
$notification_arr['total'] = $total_count;
// print_r($notification_arr);
echo json_encode($notification_arr);
}
function user_notification($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
$db = $param['db'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$lead_class = $param['lead_class'];
$request = $param['request'];
$user_id = $param['user_id'];
$type_id = $request['type_id'];
$offset = $request['offset'];
$limit = $request['limit'];
$notification_obj = $user_class->get_user_notification_list($user_id,$type_id,$offset,$limit,$utility_class,$db);
$notification_arr['data'] = array();
foreach($notification_obj as $row){
//get target name
$target_info = '';
$ntype_id = intval($row['notification_type_id']);
if($ntype_id === 1 || $ntype_id === 2){
$target_info = $lead_class->read_name_by_id($row['target_id'],$db);
}
$replace_parameter_content = array(
'[from]'=>ucfirst(strtolower($row['firstname'])).' '.strtoupper(substr($row['lastname'],0,1)),
'[target]'=>ucwords(strtolower($target_info)),// ucfirst(strtolower($row['firstname'])).' '.strtoupper(substr($row['lastname'],0,1)),
);
$notification_arr['data'] = array_merge($notification_arr['data'],
array(array(
'id'=>$row['notif_id'],
'type_id'=>$ntype_id,
'description'=>$row['description'],
'description'=> strtr($row['description'],$replace_parameter_content),
'date_added'=>$row['date_addedf'],
'is_read'=>$row['is_read'],
)));
}
// print_r($notification_arr);
echo json_encode($notification_arr);
}
function mark_as_read_notification($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
$db = $param['db'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$request = $param['request'];
$user_id = $param['user_id'];
$type_id = $request['type_id'];
$user_class->mark_as_read_notification($user_id,$type_id,$utility_class,$db);
$return_arr['message'] = "Updated.";
$return_arr['status'] = 1;
echo json_encode($return_arr);
}
function add_temporary_role($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
$user_id = $param['user_id'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$request = $param['request'];
$return_arr['id'] = $user_class->insert_temporary_role($request,$user_id,$param['utility_class'],$param['db']);
echo json_encode($return_arr);
exit;
}
function remove_temporary_role($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
$user_id = $param['user_id'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$request = $param['request'];
$return_arr['remove'] = $user_class->delete_temporary_role($request,$user_id,$param['utility_class'],$param['db']);
echo json_encode($return_arr);
exit;
}
function update_role($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
$user_id = $param['user_id'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$request = $param['request'];
$array_data = json_decode($param['request']['json_data'],true);
$role_menus_array = array();
foreach ($array_data as $key => $value){
$array_data[$key] = trim(mb_strtoupper($array_data[$key]));
$array_data[$key] = $param['db']->escape($array_data[$key]);
if(substr( $key, 0, 3 ) === "ra_" && intval($value) === 1){
$role_menus_array[] = intval(substr( $key, 3, 4 ));
}
}
$affected_rows = $user_class->update_role( $request['id'],$array_data,$user_id,$param['utility_class'],$param['db']);
$user_class -> update_role_menus($request['id'],json_encode($role_menus_array),$param['utility_class'],$param['db']);
$return_arr['message'] = "Role has been added.";
$return_arr['status'] = 1;
echo json_encode($return_arr);
exit;
}
function role_dealer_list($param){
$db = $param['db'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$request = $param['request'];
$dealer_list_array = $param['user_class']->role_dealer_list($request,$param['utility_class'],$param['db']);
$json_arr['total'] = $dealer_list_array[0];
$dealer_list_obj = $dealer_list_array[1];
$json_arr['rows'] = array();
foreach($dealer_list_obj as $row){
$role_dealers = $user_class -> read_role_dealers($request['role_id'],$param['utility_class'],$param['db']);
$role_dealers_array = json_decode($role_dealers,true);
$dealer_id = $row['d_id'];
if(in_array($dealer_id, $role_dealers_array)){
$status = 1;
}else{
$status = 0;
}
$json_arr['rows'] = array_merge($json_arr['rows'],
array(array(
'c_id'=>$row['c_id'],
'c_code'=>$row['c_code'],
'c_name'=>$row['c_name'],
'd_id'=>$row['d_id'],
'd_code'=>$row['d_code'],
'd_name'=>$row['d_name'],
'dealer'=>$row['d_name'].' ('.$row['d_code'].')',
'status'=>$status,
))
);
}
echo json_encode($json_arr);
}
function role_change_status($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$request = $param['request'];
$role_dealers = $user_class -> read_role_dealers($request['role_id'],$param['utility_class'],$param['db']);
$role_dealers_array = json_decode($role_dealers,true);
$dealer_id = $request['dealer_id'];
if(in_array($dealer_id, $role_dealers_array)){
//remove dealer
if (($key = array_search($dealer_id, $role_dealers_array)) !== false) {
unset($role_dealers_array[$key]);
$role_dealers_array = array_values($role_dealers_array);
}
}else{
//add dealer
$role_dealers_array[] = intval($dealer_id);
}
$affcted_rows = $user_class -> update_role_dealers($request['role_id'],json_encode($role_dealers_array),$param['utility_class'],$param['db']);
if(intval($affcted_rows) > 0){
$return_arr['message'] = "Role has been updated.";
$return_arr['status'] = 1;
echo json_encode($return_arr);
exit;
}else{
$return_arr['message'] = "Role not updated.";
$return_arr['status'] = 0;
echo json_encode($return_arr);
exit;
}
}
function role_list($param){
$db = $param['db'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$request = $param['request'];
$role_list_array = $param['user_class']->role_list($request,$param['utility_class'],$param['db']);
$json_arr['total'] = $role_list_array[0];
$role_list_obj = $role_list_array[1];
$json_arr['rows'] = array();
foreach($role_list_obj as $row){
$json_arr['rows'] = array_merge($json_arr['rows'],
array(array(
'id'=>$row['id'],
'name'=>$row['name'],
'user_count'=>intval($row['user_count']),
'menu_access'=>$row['json_menus'],
))
);
}
echo json_encode($json_arr);
}
function remove_role($param){
$user_class = $param['user_class'];
if($user_class->remove_role($param['request']['id'],$param['utility_class'],$param['db']) === 1){
$return_arr['message'] = "Successfully removed.";
$return_arr['status'] = 1;
echo json_encode($return_arr);
exit;
}else{
$return_arr['message'] = "Not removed. Try again.";
$return_arr['status'] = 0;
echo json_encode($return_arr);
exit;
}
}
function get_user_dealers($param){
$db = $param['db'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$request = $param['request'];
$user = $param['user'];
$user_dealers = $user['dealer_access'];
echo json_encode($user_dealers);
}
?> home/autoph/public_html/tasks/api/v1/user/user.php 0000644 00000124024 15031603402 0016164 0 ustar 00 select("SELECT REPLACE(UUID(), '-', '')");exit; //gen key
include_once dirname(__FILE__) . '/../../../app/classes/user_class.php';
include_once dirname(__FILE__) . '/../../../app/classes/ticket_class.php';
include_once dirname(__FILE__) . '/../../../app/classes/company_class.php';
include_once dirname(__FILE__) . '/../../../app/classes/brand_class.php';
include_once dirname(__FILE__) . '/../../../app/classes/utility.php';
$user_class = new User();
$company_class = new Company();
$ticket_class = new Ticket();
$brand_class = new Brand();
$utility_class = new Utility();
$server_method = $_SERVER["REQUEST_METHOD"];
if(isset($_REQUEST['key']) ){
$function_name = $db->escape($_REQUEST['key']);
$parameters = array(
'db'=>$db,
'user_class'=>$user_class,
'ticket_class'=>$ticket_class,
'company_class'=>$company_class,
'utility_class'=>$utility_class,
'brand_class'=>$brand_class,
'server_method'=>$server_method,
// 'user'=>$session_user,
'global_system_settings'=>$global_system_settings,
'user_session'=>$session_user,
'request'=>$_REQUEST,
);
call_user_func($function_name,$parameters);
}else{
echo "Invalid request.";
exit;
}
// function signup($param){
// if($param['server_method'] !== 'POST'){
// echo "Invalid request.";
// exit;
// }
// $request = $param['request'];
// $db = $param['db'];
// $array_data = json_decode($request['json_data'],true);
// foreach ($array_data as $key => $value){
// if($key != 'password'){
// $array_data[$key] = trim(mb_strtoupper($array_data[$key]));
// $array_data[$key] = $param['db']->escape($array_data[$key]);
// }
// }
// //check dup id no.
// $id_no_count = $param['user_class']->read_id_number_count($array_data['id_no'],$param['utility_class'],$db);
// if(intval($id_no_count) > 0){
// $return_arr['message'] = "ID number already exist.";
// $return_arr['status'] = 0;
// echo json_encode($return_arr);
// exit;
// }
// $email_count = $param['user_class']->read_email_count($array_data['email'],$param['utility_class'],$db);
// if(intval($email_count) > 0){
// $return_arr['message'] = "Email address already exist.";
// $return_arr['status'] = 0;
// echo json_encode($return_arr);
// exit;
// }
// $mobile_count = $param['user_class']->read_mobile_count($array_data['mobile'],$param['utility_class'],$db);
// if(intval($mobile_count) > 0){
// $return_arr['message'] = "Mobile number already exist.";
// $return_arr['status'] = 0;
// echo json_encode($return_arr);
// exit;
// }
// if($param['user_class']->insert_user_details($array_data,$param['utility_class'],$db) === 2){
// $return_arr['message'] = "Account successfully created.";
// $return_arr['status'] = 1;
// echo json_encode($return_arr);
// exit;
// }else{
// $return_arr['message'] = "Account not created. Try again.";
// $return_arr['status'] = 0;
// echo json_encode($return_arr);
// exit;
// }
// }
function read_role_list($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$request = $param['request'];
$user_session = $param['user_session'];
$user_class = $param['user_class'];
// print_r($request);exit;
$search = $db->escape($request['search']);
$offset = $request['offset'];
$limit = $request['limit'];
$role_list_array = $user_class->read_role_list($user_session['id'],
$search,
$offset,
$limit,
$utility_class,$db);
$json_arr['total'] = $role_list_array[0];
$role_list_obj = $role_list_array[1];
$json_arr['rows'] = array();
$counter = $request['offset'] + 1;
foreach($role_list_obj as $row){
$json_arr['rows'] = array_merge($json_arr['rows'],
array(array(
'no'=>$counter++,
'id'=>$row['id'],
'name'=>$row['name'],
'user_category'=>$row['user_category'],
'json_access'=>$row['json_access'],
'json_dealer'=>$row['json_dealer'],
'json_brand'=>$row['json_brand'],
'user_count'=>intval($row['user_count']),
))
);
}
echo json_encode($json_arr);
}
function read_role_brand_list($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$request = $param['request'];
$user_session = $param['user_session'];
$user_class = $param['user_class'];
// print_r($request);exit;
$search = $db->escape($request['search']);
$offset = $request['offset'];
$limit = $request['limit'];
$selected_brands_arr = json_decode($request['selected_brands'],true);
$role_list_array = $user_class->read_role_brand_list($user_session['id'],
$search,
$offset,
$limit,
$utility_class,$db);
$json_arr['total'] = $role_list_array[0];
$role_list_obj = $role_list_array[1];
$json_arr['rows'] = array();
$counter = $request['offset'] + 1;
foreach($role_list_obj as $row){
$json_arr['rows'] = array_merge($json_arr['rows'],
array(array(
'no'=>$counter++,
'id'=>$row['id'],
'name'=>$row['name'],
'status'=>(in_array($row['id'],$selected_brands_arr) ? 1 : 0 ),
))
);
}
echo json_encode($json_arr);
}
function read_position_list($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$request = $param['request'];
$user_session = $param['user_session'];
$user_class = $param['user_class'];
// print_r($request);exit;
$search = $db->escape($request['search']);
$offset = $request['offset'];
$limit = $request['limit'];
$selected_positions_arr = json_decode($request['selected_positions'],true);
$role_list_array = $user_class->read_position_list($user_session['id'],
$search,
$offset,
$limit,
$utility_class,$db);
$json_arr['total'] = $role_list_array[0];
$role_list_obj = $role_list_array[1];
$json_arr['rows'] = array();
$counter = $request['offset'] + 1;
foreach($role_list_obj as $row){
$json_arr['rows'] = array_merge($json_arr['rows'],
array(array(
'no'=>$counter++,
'id'=>$row['id'],
'name'=>$row['name'],
'status'=>(in_array($row['id'],$selected_positions_arr) ? 1 : 0 ),
))
);
}
echo json_encode($json_arr);
}
function remove_role($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$user_session = $param['user_session'];
$role_id = $request['id'];
if($user_class->remove_role($role_id,$utility_class,$db) === 1){
$return_arr['message'] = "Successfully removed.";
$return_arr['status'] = 1;
echo json_encode($return_arr);
exit;
}else{
$return_arr['message'] = "Not removed. Try again.";
$return_arr['status'] = 0;
echo json_encode($return_arr);
exit;
}
}
function create_role($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$brand_class = $param['brand_class'];
$request = $param['request'];
$user_session = $param['user_session'];
$is_new_role = $request['is_new_role'];
$role_data = $request['role_data'];
$brand_data = $request['brand_data'];
$brand_data_arr = json_decode($brand_data,true);
$array_data = json_decode($request['json_data'],true);
foreach ($array_data as $key => $value){
$array_data[$key] = $db->escape($array_data[$key]);
}
$json_dealer = "";
$role_id = $request['role_id'];
$role_info_obj = $user_class->read_role_information($role_id,$utility_class,$db);
$role_info_arr = array();
foreach ($role_info_obj as $role_info_row){
$role_info_arr = $role_info_row;
}
//secure the admin role
if(!$is_new_role){
$admin_role_id = 13;
if(intval($_SESSION['cc_user']['role_id']) != $admin_role_id && $role_id == $admin_role_id){
$return_arr['message'] = "Only admin can modify this role.";
$return_arr['status'] = 0;
echo json_encode($return_arr);
exit;
}
}
if((isset($role_info_arr['name']) && $role_info_arr['name'] != $array_data['txt_role_name']) || $is_new_role){
// check if duplicate role name
$role_count = $user_class->read_role_count_by_name($array_data['txt_role_name'],$utility_class,$db);
if(intval($role_count) > 0){
$return_arr['message'] = "Role name already exist.";
$return_arr['status'] = 0;
echo json_encode($return_arr);
exit;
}
}
// clean unknown or status 0 brand ids
// read every brand id if still active
// $brand_data =
$brand_ids_obj = $brand_class->read_brand_ids($db);
$brand_ids_arr = array();
foreach($brand_ids_obj as $brand_ids_row){
$brand_ids_arr[] = $brand_ids_row['id'];
}
$valid_brand_data = array();
foreach($brand_data_arr as $brand_data_row){
if(in_array($brand_data_row,$brand_ids_arr)){
$valid_brand_data[] = $brand_data_row;
}
}
if(count($valid_brand_data) <= 0){
$brand_data_to_insert= "";
}else{
$brand_data_to_insert = json_encode($valid_brand_data);
}
$category_id = $user_class->read_category_id_by_name($array_data['dd_user_type'],$utility_class,$db);
if(intval($is_new_role)){
$role_id = $user_class->create_role($user_session['id'],$array_data['txt_role_name'],$utility_class,$db);
$user_class->create_role_access($role_id,$role_data,$brand_data_to_insert,$json_dealer,$category_id,$utility_class,$db);
}else{
$user_class->update_role($user_session['id'], $role_id,$array_data['txt_role_name'],$utility_class,$db);
$user_class->update_role_access($role_id,$role_data,$brand_data_to_insert,$json_dealer,$category_id,$utility_class,$db);
}
if(intval($is_new_role)){
$return_arr['message'] = "Role has been created.";
}else{
$return_arr['message'] = "Role has been updated.";
}
$return_arr['id'] = $role_id;
$return_arr['status'] = 1;
echo json_encode($return_arr);
}
function read_user_categories($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$search = isset($request['search']) ? $db -> escape($request['search']) : '' ;
$category_list_obj = $user_class->read_user_categories($search,$utility_class,$db);
$json = [];
foreach($category_list_obj as $row){
$json[] = ['id'=>$row['name'], 'text'=>$row['name']];
}
echo json_encode($json);
}
function read_sms_apis($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$search = isset($request['search']) ? $db -> escape($request['search']) : '' ;
$category_list_obj = $user_class->read_sms_apis($search,$utility_class,$db);
$json = [];
foreach($category_list_obj as $row){
$json[] = ['id'=>$row['id'], 'text'=>$row['name'], 'activated'=>$row['is_activated']];
}
echo json_encode($json);
}
function read_system_config($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$obj = $user_class->read_system_config($utility_class,$db);
$arr = array();
foreach($obj as $row){
$arr = array_merge($arr,array(array(
'id'=> $row['id'],
'name'=> $row['name'],
'value'=> $row['value'],
)));
}
echo json_encode($arr);
}
function read_sms_templates($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$obj = $user_class->read_sms_templates($utility_class,$db);
$arr = array();
foreach($obj as $row){
$row = $utility_class->arrayNullToBlank($row);
$arr = array_merge($arr,array(array(
'id'=> $row['id'],
'name'=> $row['name'],
'description'=> $row['description'],
'type'=> $row['type'],
)));
}
echo json_encode($arr);
}
function read_notification_template($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$obj = $user_class->read_notification_template($utility_class,$db);
$arr = array();
foreach($obj as $row){
$row = $utility_class->arrayNullToBlank($row);
$arr = array_merge($arr,array(array(
'id'=> $row['id'],
'name'=> $row['name'],
'description'=> $row['description'],
'is_active'=> $row['is_active'],
'type'=> $row['type'],
))
);
}
echo json_encode($arr);
}
function read_notification_reminder($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$obj = $user_class->read_notification_reminder($utility_class,$db);
$arr = array();
foreach($obj as $row){
$row = $utility_class->arrayNullToBlank($row);
$arr = array_merge($arr,array(array(
'id'=> $row['id'],
'type'=> $row['type'],
'minutes'=> $row['minutes'],
'hours'=> $row['hours'],
'days'=> $row['days'],
))
);
}
echo json_encode($arr);
}
function update_system_config($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$array_data = json_decode($request['json_data'],true);
foreach ($array_data as $key => $value){
$array_data[$key] = $db->escape($array_data[$key]);
}
$obj = $user_class->update_system_config($array_data,$utility_class,$db);
$return_arr['message'] = "Update successful...";
$return_arr['status'] = 1;
echo json_encode($return_arr);
}
function update_sms_config($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$array_data = json_decode($request['json_data'],true);
foreach ($array_data as $key => $value){
$array_data[$key] = $db->escape($array_data[$key]);
}
// print_r($array_data);exit;
$sms_api_id = $array_data['api'];
$user_class->update_all_sms_config_api_status(0,$utility_class,$db);
if($utility_class->isNotEmpty($sms_api_id)){
$user_class->update_sms_config_api_status($sms_api_id,1,$utility_class,$db);
}
// $obj = $user_class->update_sms_config($array_data,$utility_class,$db);
// update templates
foreach($array_data as $key => $value){
if($utility_class->stringStartsWith($key,'t_')){
$template_id = substr($key,2,strlen($key) );
$user_class->update_sms_config_template($template_id,$value,$utility_class,$db);
}
}
// if(){
// }
$return_arr['message'] = "Update successful...";
$return_arr['status'] = 1;
echo json_encode($return_arr);
}
function update_notification_template($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$array_data = json_decode($request['json_data'],true);
foreach ($array_data as $key => $value){
$array_data[$key] = $db->escape($array_data[$key]);
}
$array_data_reminder = json_decode($request['json_data_reminder'],true);
foreach ($array_data_reminder as $key1 => $value1){
$array_data_reminder[$key1] = $db->escape($array_data_reminder[$key1]);
}
// $obj = $user_class->update_sms_config($array_data,$utility_class,$db);
// update templates
foreach($array_data as $key => $value){
if($utility_class->stringStartsWith($key,'t_')){
$template_id = substr($key,2,strlen($key) );
$template_obj = $user_class->read_notification_by_id($template_id,$db);
$template_arr = array();
foreach($template_obj as $template_row){
$template_arr = $template_row;
}
$name = $array_data['ttitle_'.$template_id];
$is_active = $array_data['status_'.$template_id];
if(count($template_arr) > 0){
$user_class->update_notification_template($template_id,$name,$value,$is_active,$utility_class,$db);
}else{
$user_class->insert_notification_template($template_id,$name,$value,$is_active,$utility_class,$db);
}
}
}
$reminder_data = array();
foreach($array_data_reminder as $key => $value){
$reminder_type = substr($key,9,strlen($key) );
$reminder_minutes = abs(intval($value['reminder_min_'.$reminder_type]));
$reminder_hours = abs(intval($value['reminder_hr_'.$reminder_type]));
$reminder_days = abs(intval($value['reminder_day_'.$reminder_type]));
$reminder_data[] = "('$reminder_type', '$reminder_minutes','$reminder_hours','$reminder_days')";
}
$user_class->update_reminder_times($reminder_data,$utility_class,$db);
$return_arr['message'] = "Update successful...";
$return_arr['status'] = 1;
echo json_encode($return_arr);
}
function signin($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
$db = $param['db'];
$utility_class = $param['utility_class'];
$array_data = json_decode($param['request']['json_data'],true);
$username = $db->escape($array_data['username']);
$where_statement = " AND (uc.email = '".$array_data['username']."' OR ua.username = '".$array_data['username']."') ";
$result_arr = $param['user_class'] -> system_user_security($where_statement,$array_data,'login',$utility_class,$db);
echo json_encode($result_arr);
}
function signin_api_asa($param){
// echo "sds";exit;
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$company_class = $param['company_class'];
$request = $param['request'];
$user_id = "";
if(isset($request['json_data'])){
$array_data = json_decode($request['json_data'],true);
foreach ($array_data as $key => $value){
$array_data[$key] = $db->escape($array_data[$key]);
}
$username = $array_data['username'];
$password = $array_data['password'];
$user_info_json = $utility_class -> curl_me(
"https://autohub.ph/connect/api/v1/users/users.php",
array('key'=>'5463358374534','username'=>$username,'password'=>$password),
'POST');
}else if(isset($request['asa_id'])){
$user_info_json = $utility_class -> curl_me(
"https://autohub.ph/connect/api/v1/users/users.php",
array('key'=>'54633343444223','id'=>$request['asa_id']),
'POST');
}else{
$return_arr['message'] = "Error.";
$return_arr['status'] = 0;
echo json_encode($return_arr);
exit;
}
$user_info_arr = json_decode($user_info_json,true);
if($user_info_arr['api_status'] == 1){
// Process Company
// insert/update company
$company_source_id = $user_info_arr['company_id'];
$company_name = $user_info_arr['company'];
$company_code = $user_info_arr['company_code'];
$company_obj = $company_class->read_company_by_source_id($company_source_id,$utility_class,$db);
$company_arr= array();
foreach($company_obj as $company_obj_row){
$company_arr = $company_obj_row;
}
if(count($company_arr) > 0){
// update
$company_id = $company_arr['id'];
$company_class->update_company($company_id,$user_id,$company_source_id,$company_name,$company_code,$utility_class,$db);
}else{
// insert and get system id
$company_id = $company_class->create_company($user_id,$company_source_id,$company_name,$company_code,$utility_class,$db);
}
// insert update dealer
$dealer_source_id = $user_info_arr['dealer_id'];
$dealer_name = $user_info_arr['dealer'];
$dealer_code = $user_info_arr['dealer_code'];
$dealer_obj = $company_class->read_dealer_by_source_id($dealer_source_id,$utility_class,$db);
$dealer_arr= array();
foreach($dealer_obj as $dealer_obj_row){
$dealer_arr = $dealer_obj_row;
}
if(count($dealer_arr) > 0){
// update
$dealer_id = $dealer_arr['id'];
$company_class->update_dealer($company_id,$dealer_id,$user_id,$dealer_source_id,$dealer_name,$dealer_code,$utility_class,$db);
}else{
// insert and get system id
$dealer_id = $company_class->create_dealer($user_id,$company_id,$dealer_source_id,$dealer_name,$dealer_code,$utility_class,$db);
}
// insert update position
$position_name = $user_info_arr['u_position'];
$position_obj = $user_class->read_user_position_by_name($position_name,$utility_class,$db);
$position_arr= array();
foreach($position_obj as $position_obj_row){
$position_arr = $position_obj_row;
}
if(count($position_arr) > 0){
// update
$position_id = $position_arr['id'];
$user_class->update_user_position($user_id,$position_id,$position_name,'','',$utility_class,$db);
}else{
// insert and get system id
$position_id = $user_class->create_user_position($user_id,$position_name,'','',$utility_class,$db);
}
$user_source_id = $user_info_arr['u_id'];
$user_obj = $user_class->read_user_by_source_id($user_source_id,$utility_class,$db);
$user_arr= array();
foreach($user_obj as $user_obj_row){
$user_arr = $user_obj_row;
}
$id_number = $user_info_arr['employee_id'];
$firstname = $user_info_arr['u_fname'];
$middlename = $user_info_arr['u_mname'];
$lastname = $user_info_arr['u_lname'];
$mobile = $utility_class->fix_mobile_format_v2($user_info_arr['usr_mobile']);
$email = ($utility_class->isValidEmail($user_info_arr['email']) ? $user_info_arr['email'] : '' );
$username = $user_info_arr['u_name'];
$password = password_hash($user_info_arr['u_password'], PASSWORD_DEFAULT);
$user_source = 2;
if(count($user_arr) > 0){
// update
$user_id = $user_arr['id'];
$user_class->update_user_api($user_id,$user_source_id,$user_source,$id_number,$position_id,$dealer_id,$firstname,$middlename,$lastname,$utility_class,$db);
$user_class->update_user_contact_api($user_id,$mobile,$email,$utility_class,$db);
$user_class->update_user_account_api($user_id,$username,$password,$utility_class,$db);
// $user_class->update_user($user_id,$user_id,$user_source_id,$user_name,$user_code,$utility_class,$db);
// $user_class->update_user_contact($utility_class,$db);
// $user_class->update_user_account($utility_class,$db);
}else{
// insert and get system id
$user_id = $user_class->create_user_api($user_source_id,$user_source,$id_number,$position_id,$dealer_id,$firstname,$middlename,$lastname,$utility_class,$db);
$user_class->create_user_contact_api($user_id,$mobile,$email,$utility_class,$db);
$user_class->create_user_account_api($user_id,$username,$password,$utility_class,$db);
}
$where_statement = " AND (u.`id` = $user_id) ";
//check user status
$result_arr = $user_class->system_user_security($where_statement,array(),'main',$utility_class,$db);
// $result_arr = $param['user_class'] -> system_user_security($where_statement,$array_data,'login',$utility_class,$db);
// remove previous login token
$user_class->update_user_login_token_status($user_id,0,3,$utility_class,$db);
//create login token for cache
$token = $db->select('SELECT UUID()');
$to_user_id = $user_id;
$from_user_id = $user_id;
$source_id = $user_id;
$user_class->create_user_login_token($to_user_id,$from_user_id,$source_id,$token,3,$utility_class,$db);
//create cookie
$cookie_name = "login_token";
$cookie_value = $token;
setcookie($cookie_name, $cookie_value, time() + (86400 * 30), "/"); // 86400 = 1 day
// loggerr
$log_data['user_id'] = $user_id;
$log_data['description'] = 'User has login';
//important
$log_data['type'] = 1; //login
$log_data['db'] = $db;
$GLOBALS['logger_class']->log($log_data);
echo json_encode($result_arr);
// insert update user
}else{
$return_arr['message'] = "Login failed.";
$return_arr['status'] = 0;
echo json_encode($return_arr);
}
}
function signout($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
if(isset($_SESSION['cc_user'])){
session_destroy();
}else{
echo "No Session Found.";
}
}
function user_login_info($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
// print_r($_SESSION['cc_user']);
echo json_encode($_SESSION['cc_user']);
}
function user_notification_info($param){
if($param['server_method'] !== 'POST'){
echo "Invalid request.";
exit;
}
$db = $param['db'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$user_id = $param['user_id'];
$notification_obj = $user_class->get_user_notification_info($user_id,$utility_class,$db);
$notification_arr['data'] = array();
$total_count = 0;
foreach($notification_obj as $row){
$total_count += intval($row['total']);
$notification_arr['data'] = array_merge( $notification_arr['data'],
array(array(
'id'=>$row['id'],
'count'=>$row['total'],
'type'=>$row['name'],
'ago'=>$utility_class->time_elapsed_string($row['ago_time']),
)));
}
$notification_arr['total'] = $total_count;
// print_r($notification_arr);
echo json_encode($notification_arr);
}
function read_user_notification($param){
$db = $param['db'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$user_session = $param['user_session'];
$user_id = $user_session['id'];
$request = $param['request'];
$offset = $request['offset'];
$limit = $request['limit'];
$notification_list_arr = $user_class->read_user_notification($user_id,$offset,$limit,$utility_class,$db);
$notification_arr['total'] = $notification_list_arr[0];
$notification_obj = $notification_list_arr[1];
$notification_arr['rows'] = array();
foreach($notification_obj as $row){
// print_r($row);
$notification_formatted_description = read_notification_description($row['target_id'],$row['from_user_id'],$row['template_id'],$row['description'],$param);
// echo $notification_formatted_description;
$notification_arr['rows'] = array_merge($notification_arr['rows'],
array(array(
'id'=>$row['id'],
'target_id'=>$row['target_id'],
'is_read'=>$row['is_read'],
'from_user_id'=>$row['from_user_id'],
'to_user_id'=>$row['to_user_id'],
'notification_id'=>$row['id'],
'notification_type'=>$row['template_id'],
'type'=>$row['type'],
'description'=>$notification_formatted_description,
'ago'=>$utility_class->time_elapsed_string($row['date_added']),
)));
}
echo json_encode($notification_arr);
}
function read_user_notification_count($param){
$db = $param['db'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$user_session = $param['user_session'];
$user_id = $user_session['id'];
$request = $param['request'];
$notification_arr['total'] = $user_class->read_user_notification_count($user_id,$utility_class,$db);
echo json_encode($notification_arr);
}
function update_notification_status($param){
$db = $param['db'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$user_session = $param['user_session'];
$user_id = $user_session['id'];
$request = $param['request'];
$to_user_id = $request['to_user_id'];
$target_id = $request['target_id'];
$user_class->update_notification_status($target_id,$to_user_id,1,$db);
}
function update_notification_status_close($param){
$db = $param['db'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$user_session = $param['user_session'];
$user_id = $user_session['id'];
$request = $param['request'];
$target_id = $request['target_id'];
$user_class->update_notification_status($target_id,$user_id,1,$db);
}
function read_roles($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$no_roles = isset($request['no_roles']) ? true : false ;
$search = isset($request['search']) ? $db -> escape($request['search']) : '' ;
//secure the admin role
$admin_role_id = 13;
if(intval($_SESSION['cc_user']['role_id']) != $admin_role_id){
$no_admin = " AND id NOT IN ($admin_role_id) ";
}else{
$no_admin = "";
}
$list_obj = $user_class->read_roles($search,$no_admin,$utility_class,$db);
$json = [];
if($no_roles){
$json[] = ['id'=>'0', 'text'=>'No roles'];
}
foreach($list_obj as $row){
$json[] = ['id'=>$row['name'], 'text'=>$row['name']];
}
echo json_encode($json);
}
function read_notification_description($target_id,$from_user_id,$notification_type,$description,$param){
$db = $param['db'];
$user_class = $param['user_class'];
$utility_class = $param['utility_class'];
$ticket_class = $param['ticket_class'];
switch(intval($notification_type)){
case 1:
case 3:
// read ticket information
$ticket_info_obj = $ticket_class->read_ticket_information($target_id,$utility_class,$db);
$arr_data = array();
foreach($ticket_info_obj as $row){
$row = $utility_class->arrayNullToBlank($row);
$arr_data = $row;
}
$display_name = $arr_data['firstname'].' '.substr($arr_data['lastname'],0,1);
$display_name = ucwords(strtolower($display_name));
$replace_parameter = array(
''=>$display_name,
''=>$arr_data['reference_no'],
''=>$arr_data['title'],
''=>$arr_data['description'], //str_replace("\n"," ",$arr_data['description']),
''=>$arr_data['sub_category'],
''=>$arr_data['priority_level'],
''=>$arr_data['brand'],
''=>$arr_data['model'],
''=>$arr_data['model_variant'],
);
return strtr($description,$replace_parameter);
// break;
case 2:
case 4:
// read ticket information
$ticket_info_obj = $ticket_class->read_ticket_information($target_id,$utility_class,$db);
$arr_data = array();
foreach($ticket_info_obj as $row){
$row = $utility_class->arrayNullToBlank($row);
$arr_data = $row;
}
$user_info_obj = $user_class->read_user_information($from_user_id,$db);
$user_data = array();
foreach($user_info_obj as $user_row){
$user_row = $utility_class->arrayNullToBlank($user_row);
$user_data = $user_row;
}
$display_name = $user_data['firstname']. ' '.substr($user_data['lastname'],0,1);
$display_name = ucwords(strtolower($display_name));
$replace_parameter = array(
''=>$display_name,
''=>$arr_data['reference_no'],
''=>$arr_data['title'],
''=>$arr_data['description'], //str_replace("\n"," ",$arr_data['description']),
''=>$arr_data['sub_category'],
''=>$arr_data['priority_level'],
''=>$arr_data['brand'],
''=>$arr_data['model'],
''=>$arr_data['model_variant'],
);
return strtr($description,$replace_parameter);
// break;
}
}
function read_positions($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$search = isset($request['search']) ? $db -> escape($request['search']) : '' ;
$position_list_obj = $user_class->read_positions($search,$utility_class,$db);
$json = [];
foreach($position_list_obj as $row){
$json[] = ['id'=>$row['name'], 'text'=>$row['name']];
}
echo json_encode($json);
}
function update_user_role($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$user_session = $param['user_session'];
$user_id = intval($request['user_id']);
$role_id = $utility_class->isNotEmpty($request['role_id']) ? $user_class->read_role_id_by_name($request['role_id'],$utility_class,$db) : '';
$user_class->update_user_role($user_id,$role_id,$db);
$return_arr['message'] = "Success.";
$return_arr['status'] = 1;
echo json_encode($return_arr);
}
function read_users_list($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$user_session = $param['user_session'];
$search = $db->escape($request['search']);
$offset = $request['offset'];
$limit = $request['limit'];
if($request['filter_role'] == '0'){
$filter_role_id = 0;
}else{
$filter_role_id = $utility_class->isNotEmpty($request['filter_role']) ? $user_class->read_role_id_by_name($request['filter_role'],$utility_class,$db) : '';
}
//secure the admin role
$admin_role_id = 13;
if(intval($user_session['role_id']) != $admin_role_id){
$no_admin = " AND r.id NOT IN ($admin_role_id) ";
}else{
$no_admin = "";
}
$user_list_array = $user_class->read_user_list($user_session['id'],
$filter_role_id,
$no_admin,
$search,
$offset,
$limit,
$utility_class,$db);
$json_arr['total'] = $user_list_array[0];
$user_list_obj = $user_list_array[1];
$json_arr['rows'] = array();
$counter = $request['offset'] + 1;
foreach($user_list_obj as $row){
$row = $utility_class->arrayNullToBlank($row);
$json_arr['rows'] = array_merge($json_arr['rows'],
array(array(
'no'=>$counter++,
'id'=>$row['id'],
'name'=>$row['name'],
'user_id'=>$row['id_number'],
'mobile'=>'+63'.$row['mobile'],
'email'=>$row['email'],
'position'=>$row['position'],
'role_id'=>$row['role_id'],
'role'=>$row['role'],
))
);
}
echo json_encode($json_arr);
}
function read_viber_subscription($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$user_session = $param['user_session'];
$viber_obj = $user_class->read_viber_subscription($user_session['id'],$utility_class,$db);
$viber_arr = array();
foreach($viber_obj as $viber_row){
$viber_arr = $viber_row;
}
$json_arr['status'] = count($viber_arr);
$json_arr['user_id'] = $user_session['id'];
echo json_encode($json_arr);
}
//web service for ticket information viewing
function b8b3f5864711eca0f900ff70631b9a55($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$global_system_settings = $param['global_system_settings'];
if(!isset($request['asa_id'])){
$json_arr['status'] = 0 ;
$json_arr['message'] = 'ASA ID is required.';
echo json_encode($json_arr);
exit;
}
if(!isset($request['ticket_id'])){
$json_arr['message'] = "Ticket ID is required.";
$json_arr['status'] = 0;
echo json_encode($json_arr);
exit;
}
$asa_id = $request['asa_id'];
$user_obj = $user_class->read_user_by_source_id($asa_id,$utility_class,$db);
$user_arr = array();
foreach($user_obj as $user_row){
$user_arr = $user_row;
}
//for saving sessions using api
// $where_statement = " AND (u.`id` = ".$user_arr['id'].") ";
// $user_class->system_user_security($where_statement,array(),'main',$utility_class,$db);
$to_user_id = $user_arr['id'];
$from_user_id = $user_arr['id'];
$target_id = $request['ticket_id'];
$type = 1; //ticket id
$token = $db->select('SELECT UUID()');
$user_class->create_user_login_token($to_user_id,$from_user_id,$target_id,$token,$type,$utility_class,$db);
$url_params = array(
'token'=>$token,
'type'=>$type,
'id'=>$target_id,
);
$append_link = $global_system_settings['url']."token.php"."?".http_build_query($url_params);
// $append_link = urlencode($append_link);
// echo $append_link;
$json_arr['status'] = 1;
$json_arr['url'] = $append_link;
echo json_encode($json_arr);
}
//web service for dashboard viewing
function bb8da4865711eca0f900ff70631b9a14($param){
$db = $param['db'];
$utility_class = $param['utility_class'];
$user_class = $param['user_class'];
$request = $param['request'];
$global_system_settings = $param['global_system_settings'];
if(!isset($request['asa_id'])){
$json_arr['status'] = 0 ;
$json_arr['message'] = 'ASA ID is required.';
echo json_encode($json_arr);
exit;
}
$asa_id = $request['asa_id'];
$user_obj = $user_class->read_user_by_source_id($asa_id,$utility_class,$db);
$user_arr = array();
foreach($user_obj as $user_row){
$user_arr = $user_row;
}
if(count($user_arr) <= 0){
//create asa user
$asa_id_to_system = $utility_class -> curl_me(
$global_system_settings['url'].'app/models/user.php',
array('model'=>'signin_api_asa','asa_id'=>$request['asa_id']),
'POST');
$asa_id_to_system_arr = json_decode($asa_id_to_system,true);
if(!intval($asa_id_to_system_arr['status'])){
$json_arr['status'] = 0;
$json_arr['message'] = "Token generation failed.";
$json_arr['id'] = $request['asa_id'];
echo json_encode($json_arr);
exit;
}
$params['model'] = 'signin_api_asa';
$params['asa_id'] = $request['asa_id'];
$params['api'] = true;
$main_uri = $global_system_settings['url'];
$resp = $utility_class -> curl_me(
$main_uri.'app/models/user.php',
$params,
'POST');
$resp_arr = json_decode($resp,true);
$user_arr['id'] = $resp_arr['id']; //sample data
}
$to_user_id = $user_arr['id'];
$from_user_id = $user_arr['id'];
$target_id = 0;
$type = 5; // proceed to tasks
$token = $db->select('SELECT UUID()');
$user_class->create_user_login_token($to_user_id,$from_user_id,$target_id,$token,$type,$utility_class,$db);
$url_params = array(
'token'=>$token,
'type'=>$type,
'id'=>$target_id,
);
$append_link = $global_system_settings['url']."token.php"."?".http_build_query($url_params);
// $append_link = urlencode($append_link);
// echo $append_link;
$json_arr['status'] = 1;
$json_arr['url'] = $append_link;
echo json_encode($json_arr);
}
?>