You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
221 lines
18 KiB
221 lines
18 KiB
<!DOCTYPE html> |
|
<html lang="en-us"> |
|
<head> |
|
<meta charset="UTF-8"> |
|
<title>Codeigniter Aauth by emreakay</title> |
|
<meta name="viewport" content="width=device-width, initial-scale=1"> |
|
<link rel="stylesheet" type="text/css" href="stylesheets/normalize.css" media="screen"> |
|
<link href='https://fonts.googleapis.com/css?family=Open+Sans:400,700' rel='stylesheet' type='text/css'> |
|
<link rel="stylesheet" type="text/css" href="stylesheets/stylesheet.css" media="screen"> |
|
<link rel="stylesheet" type="text/css" href="stylesheets/github-light.css" media="screen"> |
|
</head> |
|
<body> |
|
<section class="page-header"> |
|
<h1 class="project-name">Codeigniter Aauth</h1> |
|
<h2 class="project-tagline">Authorization, authentication and User Management library for Codeigniter 2.x and 3.x to make easy user management and permission operations</h2> |
|
<a href="https://github.com/emreakay/CodeIgniter-Aauth" class="btn">View on GitHub</a> |
|
<a href="https://github.com/emreakay/CodeIgniter-Aauth/zipball/master" class="btn">Download .zip</a> |
|
<a href="https://github.com/emreakay/CodeIgniter-Aauth/tarball/master" class="btn">Download .tar.gz</a> |
|
</section> |
|
|
|
<section class="main-content"> |
|
<p align="center"> |
|
<img src="https://cloud.githubusercontent.com/assets/2417212/8925689/add409ea-34be-11e5-8e50-845da8f5b1b0.png" height="320"> |
|
</p> |
|
|
|
<hr> |
|
|
|
<p>Aauth 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. Despite its ease of use, it has also very advanced features like private messages, groupping, access management, and public access.</p> |
|
|
|
<p><strong>This is Quick Start page. You can also take a look at the <a href="https://github.com/emreakay/CodeIgniter-Aauth/wiki/_pages">detailed Documentation Wiki</a> to learn about other great Features</strong></p> |
|
|
|
<h3> |
|
<a id="features" class="anchor" href="#features" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Features</h3> |
|
|
|
<hr> |
|
|
|
<ul> |
|
<li>User Management and Operations (login, logout, register, verification via e-mail, forgotten password, user ban, login DDoS protection)</li> |
|
<li>Group Operations (creating/deleting groups, membership management)</li> |
|
<li>Admin and Public Group support (Public permissions)</li> |
|
<li>Permission Management (creating/deleting permissions, allow/deny groups, public permissions, permission checking)</li> |
|
<li>Group Permissions</li> |
|
<li>User Permissions</li> |
|
<li>User and System Variables</li> |
|
<li>Login DDoS Protection</li> |
|
<li>Private Messages (between users)</li> |
|
<li>Error Messages and Validations</li> |
|
<li>Langugage and config file support</li> |
|
<li>Flexible implementation</li> |
|
</ul> |
|
|
|
<h3> |
|
<a id="what-is-new-in-version-2" class="anchor" href="#what-is-new-in-version-2" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>What is new in Version 2</h3> |
|
|
|
<hr> |
|
|
|
<ul> |
|
<li>User Permissions</li> |
|
<li>User and System Variables</li> |
|
<li>Login DDoS Protection</li> |
|
<li>Updated functions (check documentation for details)</li> |
|
<li>Bugs fixes</li> |
|
<li>TOTP (Time-based One-time Password)</li> |
|
</ul> |
|
|
|
<h3> |
|
<a id="migration" class="anchor" href="#migration" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Migration</h3> |
|
|
|
<hr> |
|
|
|
<ul> |
|
<li>If you are currently using Version 1, take a look at the <a href="https://github.com/emreakay/CodeIgniter-Aauth/wiki/1%29-Migration-from-V1">v1 to v2 migration page.</a>.</li> |
|
</ul> |
|
|
|
<h3> |
|
<a id="quick-start" class="anchor" href="#quick-start" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Quick Start</h3> |
|
|
|
<hr> |
|
|
|
<p>Let's get started :) |
|
First, we will load the Aauth Library into the system</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">load</span><span class="pl-k">-></span>library(<span class="pl-s"><span class="pl-pds">"</span>Aauth<span class="pl-pds">"</span></span>);</span></pre></div> |
|
|
|
<p>That was easy!</p> |
|
|
|
<p>Now let's create two new users, <code>Frodo</code> and <code>Legolas</code>.</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>create_user(<span class="pl-s"><span class="pl-pds">'</span>frodo@example.com<span class="pl-pds">'</span></span>,<span class="pl-s"><span class="pl-pds">'</span>frodopass<span class="pl-pds">'</span></span>,<span class="pl-s"><span class="pl-pds">'</span>Frodo Baggins<span class="pl-pds">'</span></span>);</span> |
|
<span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>create_user(<span class="pl-s"><span class="pl-pds">'</span>legolas@example.com<span class="pl-pds">'</span></span>,<span class="pl-s"><span class="pl-pds">'</span>legolaspass<span class="pl-pds">'</span></span>,<span class="pl-s"><span class="pl-pds">'</span>Legolas<span class="pl-pds">'</span></span>);</span></pre></div> |
|
|
|
<p>We now we have two users.</p> |
|
|
|
<p>OK, now we can create two groups, <code>hobbits</code> and <code>elves</code>.</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>create_group(<span class="pl-s"><span class="pl-pds">'</span>hobbits<span class="pl-pds">'</span></span>);</span> |
|
<span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>create_group(<span class="pl-s"><span class="pl-pds">'</span>elves<span class="pl-pds">'</span></span>);</span></pre></div> |
|
|
|
<p>Now, let's create a user with power, Gandalf (for our example, let's assume he was given the <code>id</code> of 12).</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>create_user(<span class="pl-s"><span class="pl-pds">'</span>gandalf@example.com<span class="pl-pds">'</span></span>, <span class="pl-s"><span class="pl-pds">'</span>gandalfpass<span class="pl-pds">'</span></span>, <span class="pl-s"><span class="pl-pds">'</span>Gandalf the Gray<span class="pl-pds">'</span></span>);</span></pre></div> |
|
|
|
<p>OK, now we have two groups and three users.</p> |
|
|
|
<p>Let's create two permissions <code>walk_unseen</code> and <code>immortality</code> </p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>create_perm(<span class="pl-s"><span class="pl-pds">'</span>walk_unseen<span class="pl-pds">'</span></span>);</span> |
|
<span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>create_perm(<span class="pl-s"><span class="pl-pds">'</span>immortality<span class="pl-pds">'</span></span>);</span></pre></div> |
|
|
|
<p>Ok, now let's give accesses to our groups. The Hobbits seem to have ability to walk unseen, so we will assign that privilage to them. The Elves have imortality, so we will assign that privilage to them. |
|
We will assign access with <code>allow_group()</code> function.</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>allow_group(<span class="pl-s"><span class="pl-pds">'</span>hobbits<span class="pl-pds">'</span></span>,<span class="pl-s"><span class="pl-pds">'</span>walk_unseen<span class="pl-pds">'</span></span>);</span> |
|
<span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>allow_group(<span class="pl-s"><span class="pl-pds">'</span>elves<span class="pl-pds">'</span></span>,<span class="pl-s"><span class="pl-pds">'</span>immortality<span class="pl-pds">'</span></span>);</span> |
|
<span class="pl-s1"></span> |
|
<span class="pl-s1"></span> |
|
<span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>allow_group(<span class="pl-s"><span class="pl-pds">'</span>hobbits<span class="pl-pds">'</span></span>,<span class="pl-s"><span class="pl-pds">'</span>immortality<span class="pl-pds">'</span></span>);</span></pre></div> |
|
|
|
<p>Wait a minute! Hobbits should not have <code>immortality</code>. We need to fix this, we can use <code>deny()</code> to remove the permission.</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>deny(<span class="pl-s"><span class="pl-pds">'</span>hobbits<span class="pl-pds">'</span></span>,<span class="pl-s"><span class="pl-pds">'</span>immortality<span class="pl-pds">'</span></span>);</span></pre></div> |
|
|
|
<p>Gandalf can also live forever.</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>allow_user(<span class="pl-c1">12</span>,<span class="pl-s"><span class="pl-pds">'</span>immortality<span class="pl-pds">'</span></span>);</span></pre></div> |
|
|
|
<p>Ok now let's check if Hobbits have <code>immortality</code>.</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-k">if</span>(<span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>is_group_allowed(<span class="pl-s"><span class="pl-pds">'</span>hobbits<span class="pl-pds">'</span></span>,<span class="pl-s"><span class="pl-pds">'</span>immortality<span class="pl-pds">'</span></span>)){</span> |
|
<span class="pl-s1"> <span class="pl-c1">echo</span> <span class="pl-s"><span class="pl-pds">"</span>Hobbits are immortal<span class="pl-pds">"</span></span>;</span> |
|
<span class="pl-s1">} <span class="pl-k">else</span> {</span> |
|
<span class="pl-s1"> <span class="pl-c1">echo</span> <span class="pl-s"><span class="pl-pds">"</span>Hobbits are NOT immortal<span class="pl-pds">"</span></span>;</span> |
|
<span class="pl-s1">}</span></pre></div> |
|
|
|
<p>Results:</p> |
|
|
|
<pre><code>Hobbits are NOT immortal |
|
</code></pre> |
|
|
|
<p>Does Gandalf have the ability to live forever?</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-k">if</span>(<span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>is_allowed(<span class="pl-c1">12</span>,<span class="pl-s"><span class="pl-pds">'</span>immortality<span class="pl-pds">'</span></span>)){</span> |
|
<span class="pl-s1"> <span class="pl-c1">echo</span> <span class="pl-s"><span class="pl-pds">"</span>Gandalf is immortal<span class="pl-pds">"</span></span>;</span> |
|
<span class="pl-s1">} <span class="pl-k">else</span> {</span> |
|
<span class="pl-s1"> <span class="pl-c1">echo</span> <span class="pl-s"><span class="pl-pds">"</span>Gandalf is NOT immortal<span class="pl-pds">"</span></span>;</span> |
|
<span class="pl-s1">}</span></pre></div> |
|
|
|
<p>Results:</p> |
|
|
|
<pre><code>Gandalf is immortal |
|
</code></pre> |
|
|
|
<p>Since we don't accually live in Middle Earth, we are not aware of actual immortality. Alas, we must delete the permission.</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>delete_perm(<span class="pl-s"><span class="pl-pds">'</span>immortality<span class="pl-pds">'</span></span>);</span></pre></div> |
|
|
|
<p>It is gone.</p> |
|
|
|
<h4> |
|
<a id="un-authenticated-users" class="anchor" href="#un-authenticated-users" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Un-authenticated Users</h4> |
|
|
|
<p>So, how about un-authenticated users? In Aauth they are part of the <code>public</code> group. Let's give them permissions to <code>travel</code>. |
|
We will assume we already have a permission set up named <code>travel</code>.</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>allow_group(<span class="pl-s"><span class="pl-pds">'</span>public<span class="pl-pds">'</span></span>,<span class="pl-s"><span class="pl-pds">'</span>travel<span class="pl-pds">'</span></span>);</span></pre></div> |
|
|
|
<h4> |
|
<a id="admin-users" class="anchor" href="#admin-users" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Admin Users</h4> |
|
|
|
<p>What about the Admin users? The <code>Admin</code> user and any member of the <code>Admin</code> group is a superuser who had access everthing, There is no need to grant additional permissions.</p> |
|
|
|
<h4> |
|
<a id="user-parametersvariables" class="anchor" href="#user-parametersvariables" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>User Parameters/Variables</h4> |
|
|
|
<p>For each user, variables can be defined as individual key/value pairs.</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>set_user_var(<span class="pl-s"><span class="pl-pds">"</span>key<span class="pl-pds">"</span></span>,<span class="pl-s"><span class="pl-pds">"</span>value<span class="pl-pds">"</span></span>);</span></pre></div> |
|
|
|
<p>For example, if you want to store a user's phone number.</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>set_user_var(<span class="pl-s"><span class="pl-pds">"</span>phone<span class="pl-pds">"</span></span>,<span class="pl-s"><span class="pl-pds">"</span>1-507-555-1234<span class="pl-pds">"</span></span>);</span></pre></div> |
|
|
|
<p>To retreive value you will use <code>get_user_var()</code>:</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>get_user_var(<span class="pl-s"><span class="pl-pds">"</span>key<span class="pl-pds">"</span></span>);</span></pre></div> |
|
|
|
<p>Aauth also permits you to define System Variables. These can be which can be accesed by all users in the system.</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>set_system_var(<span class="pl-s"><span class="pl-pds">"</span>key<span class="pl-pds">"</span></span>,<span class="pl-s"><span class="pl-pds">"</span>value<span class="pl-pds">"</span></span>);</span> |
|
<span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>get_system_var(<span class="pl-s"><span class="pl-pds">"</span>key<span class="pl-pds">"</span></span>);</span></pre></div> |
|
|
|
<h4> |
|
<a id="private-messages" class="anchor" href="#private-messages" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Private Messages</h4> |
|
|
|
<p>OK, let's look at private messages. Frodo (<code>id</code> = 3) will send a PM to Legolas (<code>id</code> = 4);</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>send_pm(<span class="pl-c1">3</span>,<span class="pl-c1">4</span>,<span class="pl-s"><span class="pl-pds">'</span>New cloaks<span class="pl-pds">'</span></span>,<span class="pl-s"><span class="pl-pds">'</span>These new cloaks are fantastic!<span class="pl-pds">'</span></span>)</span></pre></div> |
|
|
|
<h4> |
|
<a id="banning-users" class="anchor" href="#banning-users" aria-hidden="true"><span aria-hidden="true" class="octicon octicon-link"></span></a>Banning users</h4> |
|
|
|
<p>Frodo has broke the rules and will now need to be banned from the system.</p> |
|
|
|
<div class="highlight highlight-text-html-php"><pre><span class="pl-s1"><span class="pl-smi">$this</span><span class="pl-k">-></span><span class="pl-smi">aauth</span><span class="pl-k">-></span>ban_user(<span class="pl-c1">3</span>);</span></pre></div> |
|
|
|
<p>You have reached the end of the Quick Start Guide, but please take a look at the <a href="https://github.com/emreakay/CodeIgniter-Aauth/wiki/_pages">detailed Documentation Wiki</a> for additional information.</p> |
|
|
|
<p>Don't forget to keep and eye on Aauth, we are constantly improving the system. |
|
You can also contribute and help me out. :)</p> |
|
|
|
<footer class="site-footer"> |
|
<span class="site-footer-owner"><a href="https://github.com/emreakay/CodeIgniter-Aauth">Codeigniter Aauth</a> is maintained by <a href="https://github.com/emreakay">emreakay</a>.</span> |
|
|
|
<span class="site-footer-credits">This page was generated by <a href="https://pages.github.com">GitHub Pages</a> using the <a href="https://github.com/jasonlong/cayman-theme">Cayman theme</a> by <a href="https://twitter.com/jasonlong">Jason Long</a>.</span> |
|
</footer> |
|
|
|
</section> |
|
|
|
|
|
</body> |
|
</html>
|
|
|