Skip to content

GaetanCottrez/CodeIgniter-GesAuth

Repository files navigation

#GesAuth

###GesAuth is a User Authorization Library for CodeIgniter 2.x and 3.x, which aims to make easy some essential jobs such as login, permissions and access operations for web application. by Gaëtan Cottrez

##Description

GesAuth is a fork to Aauth (https://github.com/emreakay/CodeIgniter-Aauth). Thank a lot to the author =). I created this library about an example that serves as starter kit for a web application. It contains a CRUD for managing users and roles with permissions generated with Grocery CRUD (https://github.com/scoumbourdis/grocery-crud). It also contains a web application design generated via a custom bookstore (template.php) created by me. The folder package contains all files to library GesAuth

##Latest release

GesAuth 2.0 (16/08/2015)

##What is new in version 2.0

  • Upgrade the library for a comptability with CodeIgniter 2.x and 3.x
  • Add new field in table user : login. login is the copy of field id. the field id becomes a real PRIMARY KEY
  • Add a new config : authentification with the email (just for the mode MySQL)
  • fix bug with the method login LDAP

##If you migrate Gesauth 1.X to 2.x

  • In your application, replace the file Gesauth.php in the folder libraries, gesauth_model.php in the folder models and gesauth_lang in your different folder languages.
  • Apply the file gesauth-migrate-version-1-to-2.sql in your database. My database have a prefix (gesauth_). Adapt the content in sql table names to be defined this works on your database.
  • The file sql add the field login and the field id PRIMARY KEY. It updates the table user_to_role with new id
  • If you use the field id of the table users with others table in your database, you must create your upgrade request on your tables yourself

##My philosophy

An example is better than a long documentation

##Requirements

  • This library use session in database, active this option in file config.php in the folder config
$config['sess_use_database'] = TRUE;
  • If you use the LDAP connection, you need to enable the PHP extension on your LDAP server
  • Create all tables gesauth in your application, execute gesauth.sql in the folder package

##Learning opportunities GesAuth an example

  • Just copy the folder GesAuth in your localhost.
  • Create a new database gesauth and import file gesauth.sql
  • (Optionnal) Change parameter gesauth.application\config\database.php by your parameters
  • (Optionnal) Change parameter $config['language'] by french or english in gesauth.application\config\config.php by your parameters
  • Consult GesAuth library and config file to learn more

##Load GesAuth Library to system

$this->load->library("GesAuth");

##Accounts user

 - username / password / role / language : gaetan.cottrez / admin / Admin / french
 - username / password / role / language : john.doe / admin / default / english

##Demo

http://gesauth.laviedunwebdeveloper.com/

##Most important method

 - login user : $this->gesauth->login($login,$password, $remember, $gesauth_mode) => see controller login.php
 - error login : $this->gesauth->get_errors()  => see controller login.php
 - check user is login : $this->gesauth->is_loggedin()  => see library Template.php
 - update activity user login : $this->gesauth->update_activity()  => see library Template.php
 - control perms user : $this->gesauth->control()  => see library Template.php
 - check status server LDAP : $this->gesauth->get_status_server() => see controller login.php

##History version

##What is new in version 1.1

  • Add logs authentification and perms in database
  • Check disabled user to
  • Deleting some unnecessary methods
  • Deleting users sessions where the browser was closed
  • Closing all sessions connected to the same users
  • Disconnect the user if the IP address has changed
  • Login form multi-language based on the browser language
  • Adding LDAP connection mode
  • Check status server LDAP
  • Adding the choice of connection type (MySQL and/or LDAP)
  • Improved dos protection
  • Adding logic error messages to the user

Dont forget to watch GesAuth. You can also contribute and help me :