--- /dev/null Thu Jan 01 00:00:00 1970 +0000
+++ b/libraries/aulib.php Thu Dec 25 11:25:58 2008 +0000
@@ -0,0 +1,165 @@
+<?php
+class Aulib
+{
+ private $obj = NULL;
+
+ function Aulib()
+ {
+ $this->obj =& get_instance();
+ $this->obj->load->model('aumodel');
+ $this->obj->config->load('auconfig');
+ if ($this->obj->config->item('au_language') != '')
+ $curLang = $this->obj->config->item('au_language');
+ else
+ $curLang = $this->obj->config->item('language');
+ $this->obj->lang->load('au', $curLang);
+ }
+
+ /*
+ * Return "welcome" string with link to login page
+ * Call this function every time on you main page
+ */
+ function getLoginLink()
+ {
+ $id = $this->getSessionId();
+ if($id)
+ {
+ $logoff_link = $this->obj->lang->line('logout_link_name');
+ $welcome_str = $this->obj->lang->line('welcome_string');
+ if($welcome_str != '')
+ {
+ $welcome_str = str_replace('%name%', $this->obj->aumodel->userInfo($id, 'name'), $welcome_str);
+ $welcome_str = str_replace('%logoff%', anchor('au/logout',$logoff_link), $welcome_str);
+ }
+ return $welcome_str;
+ }
+ else
+ {
+ $login_link = $this->obj->lang->line('login_link_name');
+ $registers_link = $this->obj->lang->line('registers_link_name');
+ $login_str = $this->obj->lang->line('login_string');
+ if($login_str != '')
+ {
+ $login_str = str_replace('%registers%', anchor('au/registers',$registers_link), $login_str);
+ $login_str = str_replace('%login%', anchor('au/login',$login_link), $login_str);
+ }
+
+ return $login_str;
+ }
+ }
+
+ /*
+ * Return link for call back-end system
+ * This back-end can help you manage users & groups
+ */
+ function getManagerLink()
+ {
+ return anchor('aumanager', $this->obj->lang->line('manager_link_name'));
+ }
+
+ /*
+ * function block for set/get session userID
+ */
+ function setSessionId($id, $storable = FALSE)
+ {
+ if( $id < 1 )
+ {
+ $this->obj->session->unset_userdata('id');
+ $this->obj->session->unset_userdata('flash');
+ }
+ else
+ {
+ $this->obj->session->set_userdata('flash', !$storable);
+ $offset = (int) $this->obj->config->item('id_offset');
+
+ if($storable)
+ $this->obj->session->set_userdata('id', $id * $offset);
+ else
+ {
+ $this->obj->session->set_flashdata('id', $id * $offset);
+ $this->obj->session->set_flashdata('expire', time()+$this->obj->config->item('autologin_timeout'));
+ }
+ }
+ }
+function getSessionId()
+{
+ $this->keepSession();
+ if($this->obj->session->userdata('flash'))
+ {
+ if( !$this->obj->session->flashdata('id') )
+ return 0;
+ }
+ $offset = (int) $this->obj->config->item('id_offset');
+ if(!$this->obj->session->userdata('flash'))
+ $real_id = ($this->obj->session->userdata('id') / $offset);
+ else
+ $real_id = ($this->obj->session->flashdata('id') / $offset);
+ if(ceil($real_id) != floor($real_id))
+ {
+ $this->logout();
+ return 0;
+ }
+ else
+ return $real_id;
+ }
+ function keepSession()
+ {
+ if( ($this->obj->session->userdata('flash')) && ($this->obj->session->flashdata('expire') >= time()) )
+ {
+ $this->obj->session->keep_flashdata('id');
+ $this->obj->session->set_flashdata('expire', time()+$this->obj->config->item('autologin_timeout'));
+ }
+ }
+
+ /*
+ * Return TRUE if user is logged on
+ */
+ function isLogged() { return (bool) $this->getSessionId(); }
+
+ /*
+ * Return TRUE if user is in group
+ */
+ function isGroup($group_name)
+ {
+ return ($this->obj->aumodel->getRefId('augroup', $group_name) == $this->obj->aumodel->userInfo($this->getSessionId(), 'group_id'));
+ }
+
+ /*
+ * Return TRUE if user has specified role
+ */
+ function isRole($role_name)
+ {
+ return ( $this->obj->aumodel->getRefId('aurole', $role_name) == $this->obj->aumodel->userInfo($this->getSessionId(), 'role_id') );
+ }
+
+ /*
+ * Show "deny access" page
+ */
+ function denyAccess()
+ {
+ $this->obj->load->helper('url');
+ redirect('au/denyaccess');
+ }
+
+ /*
+ * Create and return captcha
+ * Use standart CI plugin
+ */
+ function getCaptcha()
+ {
+ $this->obj->load->helper('url');
+ $this->obj->load->plugin('captcha');
+ $vals = array(
+ 'word' => '',
+ 'img_path' => $this->obj->config->item('au_captcha_store_path'),
+ 'img_url' => $this->obj->config->item('au_captcha_img_url'),
+ 'font_path' => '/system/fonts/texb.ttf',
+ 'img_width' => '120',
+ 'img_height' => '40',
+ 'expiration' => '7200'
+ );
+ $cap = create_captcha($vals);
+ return $cap;
+ }
+}
+?>