183 lines
4.4 KiB
PHP
183 lines
4.4 KiB
PHP
<?php
|
|
defined('BASEPATH') OR exit('No direct script access allowed');
|
|
|
|
/**
|
|
* Userlib class
|
|
*/
|
|
|
|
/**
|
|
* user table 을 관리하는 class 입니다.
|
|
*/
|
|
class Userlib extends CI_Controller
|
|
{
|
|
|
|
private $CI;
|
|
|
|
private $mb;
|
|
|
|
private $uesr_group;
|
|
|
|
|
|
function __construct()
|
|
{
|
|
$this->CI = & get_instance();
|
|
$this->CI->load->model( array('User_model'));
|
|
$this->CI->load->helper( array('array'));
|
|
}
|
|
|
|
|
|
/**
|
|
* 접속한 유저가 회원인지 아닌지를 판단합니다
|
|
*/
|
|
public function is_user()
|
|
{
|
|
if ($this->CI->session->userdata('user_id')) {
|
|
return $this->CI->session->userdata('user_id');
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* 접속한 유저가 관리자인지 아닌지를 판단합니다
|
|
*/
|
|
public function is_admin($check = array())
|
|
{
|
|
if ($this->item('user_is_admin') == '1') {
|
|
return 'super';
|
|
}
|
|
if ($this->item('user_is_admin') == '2') {
|
|
return 'general';
|
|
}
|
|
return false;
|
|
}
|
|
|
|
|
|
/**
|
|
* user, user_meta 테이블에서 정보를 가져옵니다
|
|
*/
|
|
public function get_user()
|
|
{
|
|
if ($this->is_user()) {
|
|
if (empty($this->mb)) {
|
|
$user = $this->CI->User_model->get_by_id($this->is_user());
|
|
$metas = $this->get_all_meta(element('user_id', $user));
|
|
if (is_array($metas)) {
|
|
$user = array_merge($user, $metas);
|
|
}
|
|
$user['social'] = $this->get_all_social_meta(element('user_id', $user));
|
|
$this->mb = $user;
|
|
}
|
|
return $this->mb;
|
|
} else {
|
|
return false;
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
* get_user 에서 가져온 데이터의 item 을 보여줍니다
|
|
*/
|
|
public function item($column = '')
|
|
{
|
|
if (empty($column)) {
|
|
return false;
|
|
}
|
|
if (empty($this->mb)) {
|
|
$this->get_user();
|
|
}
|
|
if (empty($this->mb)) {
|
|
return false;
|
|
}
|
|
$user = $this->mb;
|
|
|
|
return isset($user[$column]) ? $user[$column] : false;
|
|
}
|
|
|
|
|
|
/**
|
|
* get_user 에서 가져온 데이터의 item 을 보여줍니다
|
|
*/
|
|
public function socialitem($column = '')
|
|
{
|
|
if (empty($column)) {
|
|
return false;
|
|
}
|
|
if (empty($this->mb)) {
|
|
$this->get_user();
|
|
}
|
|
if (empty($this->mb)) {
|
|
return false;
|
|
}
|
|
$user = $this->mb;
|
|
|
|
return isset($user['social']) && isset($user['social'][$column]) ? $user['social'][$column] : false;
|
|
}
|
|
|
|
|
|
|
|
/**
|
|
* user_meta 테이블에서 가져옵니다
|
|
*/
|
|
public function get_all_meta($user_id = 0)
|
|
{
|
|
$user_id = (int) $user_id;
|
|
if (empty($user_id) OR $user_id < 1) {
|
|
return false;
|
|
}
|
|
|
|
$this->CI->load->model('User_meta_model');
|
|
$result = $this->CI->User_meta_model->get_all_meta($user_id);
|
|
return $result;
|
|
}
|
|
|
|
|
|
/**
|
|
* social_meta 테이블에서 가져옵니다
|
|
*/
|
|
public function get_all_social_meta($user_id = 0)
|
|
{
|
|
$user_id = (int) $user_id;
|
|
if (empty($user_id) OR $user_id < 1) {
|
|
return false;
|
|
}
|
|
if ($this->CI->db->table_exists('social_meta') === false) {
|
|
return;
|
|
}
|
|
|
|
$this->CI->load->model('Social_meta_model');
|
|
$result = $this->CI->Social_meta_model->get_all_meta($user_id);
|
|
return $result;
|
|
}
|
|
|
|
/**
|
|
* 회원삭제 남깁니다
|
|
*/
|
|
public function delete_user($user_id = 0)
|
|
{
|
|
$user_id = (int) $user_id;
|
|
if (empty($user_id) OR $user_id < 1) {
|
|
return false;
|
|
}
|
|
|
|
$this->CI->load->model(
|
|
array(
|
|
'User_model', 'User_auth_email_model',
|
|
'User_meta_model', 'Social_meta_model',
|
|
)
|
|
);
|
|
|
|
$deletewhere = array(
|
|
'user_id' => $user_id,
|
|
);
|
|
$this->CI->User_model->delete_where($deletewhere);
|
|
$this->CI->User_auth_email_model->delete_where($deletewhere);
|
|
$this->CI->User_meta_model->delete_where($deletewhere);
|
|
$this->CI->Social_meta_model->delete_where($deletewhere);
|
|
|
|
return true;
|
|
}
|
|
|
|
}
|