libraries/aulib.php
changeset 0 3773f4677c40
child 3 f3e55c2386a1
equal deleted inserted replaced
-1:000000000000 0:3773f4677c40
       
     1 <?php
       
     2 class Aulib
       
     3 {
       
     4 	private $obj = NULL;
       
     5 	
       
     6 	function Aulib()
       
     7 	{
       
     8 		$this->obj =& get_instance();
       
     9 		$this->obj->load->model('aumodel');
       
    10 		$this->obj->config->load('auconfig');
       
    11 		if ($this->obj->config->item('au_language') != '') 
       
    12 			$curLang = $this->obj->config->item('au_language');
       
    13 		else
       
    14 			$curLang = $this->obj->config->item('language');    
       
    15 		$this->obj->lang->load('au', $curLang); 		
       
    16 	}
       
    17 
       
    18 	/*
       
    19 	 * Return "welcome" string with link to login page
       
    20 	 * Call this function every time on you main page 
       
    21 	 */
       
    22 	function getLoginLink()
       
    23 	{
       
    24 		$id = $this->getSessionId();
       
    25 		if($id)
       
    26 		{
       
    27 			$logoff_link = $this->obj->lang->line('logout_link_name');
       
    28 			$welcome_str = $this->obj->lang->line('welcome_string');
       
    29 			if($welcome_str != '')
       
    30 			{
       
    31 				$welcome_str = str_replace('%name%', $this->obj->aumodel->userInfo($id, 'name'), $welcome_str);
       
    32 				$welcome_str = str_replace('%logoff%', anchor('au/logout',$logoff_link), $welcome_str);
       
    33 			}
       
    34 			return $welcome_str;
       
    35 		}
       
    36 		else
       
    37 		{ 
       
    38 			$login_link = $this->obj->lang->line('login_link_name');
       
    39 			$registers_link = $this->obj->lang->line('registers_link_name');
       
    40 			$login_str = $this->obj->lang->line('login_string');
       
    41 			if($login_str != '')
       
    42 			{
       
    43 				$login_str = str_replace('%registers%', anchor('au/registers',$registers_link), $login_str);
       
    44 				$login_str = str_replace('%login%', anchor('au/login',$login_link), $login_str);
       
    45 			}
       
    46 			
       
    47 			return $login_str;
       
    48 		} 
       
    49 	}
       
    50 
       
    51 	/*
       
    52 	 * Return link for call back-end system
       
    53 	 * This back-end can help you manage users & groups
       
    54 	 */
       
    55 	function getManagerLink()
       
    56 	{
       
    57 		return anchor('aumanager', $this->obj->lang->line('manager_link_name'));
       
    58 	}
       
    59 
       
    60 	/*
       
    61 	 * function block for set/get session userID
       
    62 	 */
       
    63 	function setSessionId($id, $storable = FALSE)
       
    64 	{
       
    65 		if( $id < 1 ) 
       
    66 		{
       
    67 			$this->obj->session->unset_userdata('id');
       
    68 			$this->obj->session->unset_userdata('flash');
       
    69 		}
       
    70 		else
       
    71 		{
       
    72 			$this->obj->session->set_userdata('flash', !$storable);
       
    73 			$offset = (int) $this->obj->config->item('id_offset');
       
    74 			
       
    75 			 if($storable) 
       
    76 				$this->obj->session->set_userdata('id', $id * $offset);
       
    77 		 	else 
       
    78 		 	{
       
    79 		 		$this->obj->session->set_flashdata('id', $id * $offset);
       
    80 		 		$this->obj->session->set_flashdata('expire', time()+$this->obj->config->item('autologin_timeout'));
       
    81 		 	}
       
    82 		}
       
    83 	}
       
    84 function getSessionId()
       
    85 { 
       
    86 		$this->keepSession();
       
    87 		if($this->obj->session->userdata('flash'))
       
    88 		{
       
    89 			if( !$this->obj->session->flashdata('id') )
       
    90 				return 0;		
       
    91 		}
       
    92 		$offset = (int) $this->obj->config->item('id_offset');
       
    93 		if(!$this->obj->session->userdata('flash'))
       
    94 			$real_id = ($this->obj->session->userdata('id') / $offset);
       
    95 		else
       
    96 			$real_id = ($this->obj->session->flashdata('id') / $offset);
       
    97 		if(ceil($real_id) != floor($real_id)) 
       
    98 		{
       
    99 			$this->logout();
       
   100 			return 0;
       
   101 		}
       
   102 			else 
       
   103 				return $real_id;
       
   104 	}
       
   105 	function keepSession()
       
   106 	{
       
   107 		if( ($this->obj->session->userdata('flash')) && ($this->obj->session->flashdata('expire') >= time()) ) 
       
   108 		{
       
   109 			$this->obj->session->keep_flashdata('id');
       
   110 			$this->obj->session->set_flashdata('expire', time()+$this->obj->config->item('autologin_timeout'));
       
   111 		}   		
       
   112 	}
       
   113 
       
   114 	/*
       
   115 	 * Return TRUE if user is logged on
       
   116 	 */
       
   117 	function isLogged() { return (bool) $this->getSessionId();	}
       
   118 
       
   119 	/*
       
   120 	 * Return TRUE if user is in group
       
   121 	 */
       
   122 	function isGroup($group_name) 
       
   123 	{
       
   124 		return ($this->obj->aumodel->getRefId('augroup', $group_name) == $this->obj->aumodel->userInfo($this->getSessionId(), 'group_id')); 
       
   125 	}
       
   126 
       
   127 	/*
       
   128 	 * Return TRUE if user has specified role
       
   129 	 */
       
   130 	function isRole($role_name) 
       
   131 	{
       
   132 		return ( $this->obj->aumodel->getRefId('aurole', $role_name) == $this->obj->aumodel->userInfo($this->getSessionId(), 'role_id') ); 
       
   133 	}
       
   134 
       
   135 	/*
       
   136 	 * Show "deny access" page
       
   137 	 */
       
   138 	function denyAccess()
       
   139 	{
       
   140 		$this->obj->load->helper('url');
       
   141 		redirect('au/denyaccess');
       
   142 	}
       
   143 
       
   144 	/*
       
   145 	 * Create and return captcha
       
   146 	 * Use standart CI plugin
       
   147 	 */
       
   148 	function getCaptcha()
       
   149 	{
       
   150 		$this->obj->load->helper('url');
       
   151 		$this->obj->load->plugin('captcha');
       
   152 		$vals = array(
       
   153 						'word' => '',
       
   154 						'img_path' => $this->obj->config->item('au_captcha_store_path'),
       
   155 						'img_url' => $this->obj->config->item('au_captcha_img_url'),
       
   156 						'font_path' => '/system/fonts/texb.ttf',
       
   157 						'img_width' => '120',
       
   158 						'img_height' => '40',
       
   159 						'expiration' => '7200'
       
   160 						);
       
   161 		$cap = create_captcha($vals);
       
   162 		return $cap;		
       
   163 	}
       
   164 }
       
   165 ?>