added DbLoginModel
This commit is contained in:
parent
d9191b9921
commit
17d72c00ef
@ -94,6 +94,7 @@ svn_base_url = "${REQUEST_PROTOCOL}://${SERVER_NAME}:${SERVER_PORT}/svn"
|
|||||||
; Login model to use.
|
; Login model to use.
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
login_model = "LdapLoginModel"
|
login_model = "LdapLoginModel"
|
||||||
|
#login_model = "DbLoginModel"
|
||||||
|
|
||||||
;------------------------------------------------------------------------------
|
;------------------------------------------------------------------------------
|
||||||
; Comma separated list of system administrator IDs
|
; Comma separated list of system administrator IDs
|
||||||
|
@ -152,3 +152,10 @@ CREATE TABLE user_settings (
|
|||||||
code_hide_line_num CHAR(1) NOT NULL,
|
code_hide_line_num CHAR(1) NOT NULL,
|
||||||
code_hide_details CHAR(1) NOT NULL
|
code_hide_details CHAR(1) NOT NULL
|
||||||
) charset=utf8 engine=InnoDB;
|
) charset=utf8 engine=InnoDB;
|
||||||
|
|
||||||
|
CREATE TABLE user (
|
||||||
|
userid VARCHAR(32) PRIMARY KEY,
|
||||||
|
passwd VARCHAR(255) NOT NULL,
|
||||||
|
email VARCHAR(255),
|
||||||
|
enabled CHAR(1) NOT NULL DEFAULT 'N' CHECK(enabled in ('Y', 'N'))
|
||||||
|
) charset=utf8 engine=InnoDB;
|
||||||
|
@ -4,8 +4,8 @@ class User extends Controller
|
|||||||
{
|
{
|
||||||
var $VIEW_ERROR = 'error';
|
var $VIEW_ERROR = 'error';
|
||||||
var $VIEW_LOG = 'log';
|
var $VIEW_LOG = 'log';
|
||||||
var $VIEW_HOME = 'user_home';
|
var $VIEW_HOME = 'user_home';
|
||||||
var $VIEW_SETTINGS = 'user_settings';
|
var $VIEW_SETTINGS = 'user_settings';
|
||||||
|
|
||||||
function User ()
|
function User ()
|
||||||
{
|
{
|
||||||
@ -159,8 +159,8 @@ class User extends Controller
|
|||||||
|
|
||||||
if($this->input->post('settings'))
|
if($this->input->post('settings'))
|
||||||
{
|
{
|
||||||
$settings->code_hide_line_num = $this->input->post('code_hide_line_num');
|
$settings->code_hide_line_num = $this->input->post('code_hide_line_num');
|
||||||
$settings->code_hide_details = $this->input->post('code_hide_details');
|
$settings->code_hide_details = $this->input->post('code_hide_details');
|
||||||
|
|
||||||
if ($this->users->storeSettings ($login['id'], $settings) === FALSE)
|
if ($this->users->storeSettings ($login['id'], $settings) === FALSE)
|
||||||
{
|
{
|
||||||
|
@ -1,12 +1,12 @@
|
|||||||
wwwdir=$(WWWDIR)/codepot/models
|
wwwdir=$(WWWDIR)/codepot/models
|
||||||
www_DATA = \
|
www_DATA = \
|
||||||
|
dbloginmodel.php \
|
||||||
filemodel.php \
|
filemodel.php \
|
||||||
index.html \
|
index.html \
|
||||||
issuemodel.php \
|
issuemodel.php \
|
||||||
ldaploginmodel.php \
|
ldaploginmodel.php \
|
||||||
loginmodel.php \
|
loginmodel.php \
|
||||||
logmodel.php \
|
logmodel.php \
|
||||||
mysqlloginmodel.php \
|
|
||||||
projectmodel.php \
|
projectmodel.php \
|
||||||
sitemodel.php \
|
sitemodel.php \
|
||||||
subversionmodel.php \
|
subversionmodel.php \
|
||||||
|
@ -166,13 +166,13 @@ top_builddir = @top_builddir@
|
|||||||
top_srcdir = @top_srcdir@
|
top_srcdir = @top_srcdir@
|
||||||
wwwdir = $(WWWDIR)/codepot/models
|
wwwdir = $(WWWDIR)/codepot/models
|
||||||
www_DATA = \
|
www_DATA = \
|
||||||
|
dbloginmodel.php \
|
||||||
filemodel.php \
|
filemodel.php \
|
||||||
index.html \
|
index.html \
|
||||||
issuemodel.php \
|
issuemodel.php \
|
||||||
ldaploginmodel.php \
|
ldaploginmodel.php \
|
||||||
loginmodel.php \
|
loginmodel.php \
|
||||||
logmodel.php \
|
logmodel.php \
|
||||||
mysqlloginmodel.php \
|
|
||||||
projectmodel.php \
|
projectmodel.php \
|
||||||
sitemodel.php \
|
sitemodel.php \
|
||||||
subversionmodel.php \
|
subversionmodel.php \
|
||||||
|
98
codepot/src/codepot/models/dbloginmodel.php
Normal file
98
codepot/src/codepot/models/dbloginmodel.php
Normal file
@ -0,0 +1,98 @@
|
|||||||
|
<?php
|
||||||
|
require_once 'loginmodel.php';
|
||||||
|
|
||||||
|
class DbLoginModel extends LoginModel
|
||||||
|
{
|
||||||
|
function DbLoginModel ()
|
||||||
|
{
|
||||||
|
parent::LoginModel ();
|
||||||
|
$this->load->database ();
|
||||||
|
}
|
||||||
|
|
||||||
|
function rand_string ($length)
|
||||||
|
{
|
||||||
|
$chars = "abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
|
||||||
|
|
||||||
|
$str = '';
|
||||||
|
$size = strlen ($chars);
|
||||||
|
for( $i = 0; $i < $length; $i++ )
|
||||||
|
{
|
||||||
|
$str .= $chars[ rand( 0, $size - 1 ) ];
|
||||||
|
}
|
||||||
|
|
||||||
|
return $str;
|
||||||
|
}
|
||||||
|
|
||||||
|
function format_password_with_salt ($password, $salt)
|
||||||
|
{
|
||||||
|
return '{ssha1}' . sha1($password . $salt) . bin2hex($salt);
|
||||||
|
}
|
||||||
|
|
||||||
|
function format_password ($password, $salt_length)
|
||||||
|
{
|
||||||
|
$salt = $this->rand_string ($salt_length);
|
||||||
|
return $this->format_password_with_salt ($password, $salt);
|
||||||
|
}
|
||||||
|
|
||||||
|
function authenticate ($userid, $passwd)
|
||||||
|
{
|
||||||
|
$this->db->trans_start ();
|
||||||
|
|
||||||
|
$this->db->select ('userid,passwd,email');
|
||||||
|
$this->db->where ('userid', $userid);
|
||||||
|
$query = $this->db->get ('user');
|
||||||
|
|
||||||
|
if ($this->db->trans_status() == FALSE)
|
||||||
|
{
|
||||||
|
$this->db->trans_complete ();
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
$result = $query->result ();
|
||||||
|
if (empty($result))
|
||||||
|
{
|
||||||
|
$this->db->trans_complete ();
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_complete ();
|
||||||
|
if ($this->db->trans_status() == FALSE) return FALSE;
|
||||||
|
|
||||||
|
$user = $result[0];
|
||||||
|
if (strlen($user->passwd) < 10) return FALSE;
|
||||||
|
$hexsalt = substr ($user->passwd, -10);
|
||||||
|
$binsalt = pack("H*" , $hexsalt);
|
||||||
|
|
||||||
|
if (strcmp ($this->format_password_with_salt($passwd,$binsalt),$user->passwd) != 0) return FALSE;
|
||||||
|
|
||||||
|
return parent::authenticate ($userid, $user->passwd, $user->email);
|
||||||
|
}
|
||||||
|
|
||||||
|
function changePassword ($userid, $passwd)
|
||||||
|
{
|
||||||
|
$this->db->trans_start ();
|
||||||
|
$this->db->trans_complete ();
|
||||||
|
|
||||||
|
$this->db->where ('userid', $userid);
|
||||||
|
$this->db->set ('passwd', format_password($passwd,5));
|
||||||
|
$this->db->update ('user');
|
||||||
|
|
||||||
|
if ($this->db->trans_status() === FALSE)
|
||||||
|
{
|
||||||
|
$this->db->trans_rollback ();
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
|
$this->db->trans_commit ();
|
||||||
|
return TRUE;
|
||||||
|
}
|
||||||
|
|
||||||
|
function queryUserInfo ($userid)
|
||||||
|
{
|
||||||
|
$user['id'] = $userid;
|
||||||
|
$user['email'] = '';
|
||||||
|
return $user;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
?>
|
@ -81,7 +81,7 @@ class LdapLoginModel extends LoginModel
|
|||||||
if ($bind === FALSE)
|
if ($bind === FALSE)
|
||||||
{
|
{
|
||||||
$this->setErrorMessage (ldap_error ($ldap));
|
$this->setErrorMessage (ldap_error ($ldap));
|
||||||
ldap_close ($ldap);
|
@ldap_close ($ldap);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -127,7 +127,7 @@ class LdapLoginModel extends LoginModel
|
|||||||
if ($bind === FALSE)
|
if ($bind === FALSE)
|
||||||
{
|
{
|
||||||
$this->setErrorMessage (ldap_error ($ldap));
|
$this->setErrorMessage (ldap_error ($ldap));
|
||||||
ldap_close ($ldap);
|
@ldap_close ($ldap);
|
||||||
return FALSE;
|
return FALSE;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -87,6 +87,11 @@ class LoginModel extends Model
|
|||||||
$this->session->sess_destroy ();
|
$this->session->sess_destroy ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
function changePassword ($userid, $passwd)
|
||||||
|
{
|
||||||
|
return FALSE;
|
||||||
|
}
|
||||||
|
|
||||||
function setUserSettings ($settings)
|
function setUserSettings ($settings)
|
||||||
{
|
{
|
||||||
$this->session->set_userdata ('user_settings', serialize($settings));
|
$this->session->set_userdata ('user_settings', serialize($settings));
|
||||||
|
@ -1,37 +0,0 @@
|
|||||||
<?php
|
|
||||||
require_once 'loginmodel.php';
|
|
||||||
|
|
||||||
class MysqlLoginModel extends LoginModel
|
|
||||||
{
|
|
||||||
function LdapLoginModel ()
|
|
||||||
{
|
|
||||||
parent::LoginModel ();
|
|
||||||
$this->load->database ('auth-mysql');
|
|
||||||
}
|
|
||||||
|
|
||||||
function authenticate ($userid, $password)
|
|
||||||
{
|
|
||||||
$this->db->trans_start ();
|
|
||||||
|
|
||||||
/*
|
|
||||||
TODO:
|
|
||||||
$this->db->select ('username');
|
|
||||||
$this->db->where ('username', $userid);
|
|
||||||
$this->db->where ('passwd', $userid);
|
|
||||||
*/
|
|
||||||
$this->db->trans_complete ();
|
|
||||||
if ($this->db->trans_status() === FALSE) return FALSE;
|
|
||||||
|
|
||||||
return parent::authenticate ($userid, $password, $email);
|
|
||||||
}
|
|
||||||
|
|
||||||
function queryUserInfo ($userid)
|
|
||||||
{
|
|
||||||
$user['id'] = '';
|
|
||||||
$user['email'] = '';
|
|
||||||
|
|
||||||
return $user;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
?>
|
|
@ -129,8 +129,8 @@ class ProjectModel extends Model
|
|||||||
$this->db->set ('type', 'project');
|
$this->db->set ('type', 'project');
|
||||||
$this->db->set ('action', 'create');
|
$this->db->set ('action', 'create');
|
||||||
$this->db->set ('projectid', $project->id);
|
$this->db->set ('projectid', $project->id);
|
||||||
$this->db->set ('userid', $userid);
|
$this->db->set ('userid', $userid);
|
||||||
$this->db->set ('message', $project->name);
|
$this->db->set ('message', $project->name);
|
||||||
$this->db->insert ('log');
|
$this->db->insert ('log');
|
||||||
|
|
||||||
if ($priority <= 0 || $this->db->trans_status() === FALSE)
|
if ($priority <= 0 || $this->db->trans_status() === FALSE)
|
||||||
@ -236,8 +236,8 @@ class ProjectModel extends Model
|
|||||||
$this->db->set ('type', 'project');
|
$this->db->set ('type', 'project');
|
||||||
$this->db->set ('action', 'update');
|
$this->db->set ('action', 'update');
|
||||||
$this->db->set ('projectid', $project->id);
|
$this->db->set ('projectid', $project->id);
|
||||||
$this->db->set ('userid', $userid);
|
$this->db->set ('userid', $userid);
|
||||||
$this->db->set ('message', $project->name);
|
$this->db->set ('message', $project->name);
|
||||||
$this->db->insert ('log');
|
$this->db->insert ('log');
|
||||||
|
|
||||||
if ($priority <= 0 || $this->db->trans_status() === FALSE)
|
if ($priority <= 0 || $this->db->trans_status() === FALSE)
|
||||||
|
@ -28,11 +28,11 @@ class WikiModel extends Model
|
|||||||
return NULL;
|
return NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->db->select ('name,encname,createdon,createdby');
|
$this->db->select ('name,encname,createdon,createdby');
|
||||||
$this->db->where ('projectid', $project->id);
|
$this->db->where ('projectid', $project->id);
|
||||||
$this->db->where ('wikiname', $name);
|
$this->db->where ('wikiname', $name);
|
||||||
$this->db->order_by ('name', 'ASC');
|
$this->db->order_by ('name', 'ASC');
|
||||||
$query2 = $this->db->get ('wiki_attachment');
|
$query2 = $this->db->get ('wiki_attachment');
|
||||||
|
|
||||||
if ($this->db->trans_status() === FALSE)
|
if ($this->db->trans_status() === FALSE)
|
||||||
{
|
{
|
||||||
@ -82,7 +82,7 @@ class WikiModel extends Model
|
|||||||
{
|
{
|
||||||
$this->db->trans_start ();
|
$this->db->trans_start ();
|
||||||
|
|
||||||
$this->db->select ('name,encname,createdon,createdby');
|
$this->db->select ('name,encname,createdon,createdby');
|
||||||
$this->db->where ('projectid', $project->id);
|
$this->db->where ('projectid', $project->id);
|
||||||
$this->db->where ('wikiname', $wikiname);
|
$this->db->where ('wikiname', $wikiname);
|
||||||
|
|
||||||
@ -143,13 +143,13 @@ class WikiModel extends Model
|
|||||||
$this->db->insert ('wiki_attachment');
|
$this->db->insert ('wiki_attachment');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->db->set ('createdon', $now);
|
$this->db->set ('createdon', $now);
|
||||||
$this->db->set ('type', 'wiki');
|
$this->db->set ('type', 'wiki');
|
||||||
$this->db->set ('action', 'create');
|
$this->db->set ('action', 'create');
|
||||||
$this->db->set ('projectid', $wiki->projectid);
|
$this->db->set ('projectid', $wiki->projectid);
|
||||||
$this->db->set ('userid', $userid);
|
$this->db->set ('userid', $userid);
|
||||||
$this->db->set ('message', $wiki->name);
|
$this->db->set ('message', $wiki->name);
|
||||||
$this->db->insert ('log');
|
$this->db->insert ('log');
|
||||||
|
|
||||||
if ($this->db->trans_status() === FALSE)
|
if ($this->db->trans_status() === FALSE)
|
||||||
{
|
{
|
||||||
@ -207,13 +207,13 @@ class WikiModel extends Model
|
|||||||
$this->db->insert ('wiki_attachment');
|
$this->db->insert ('wiki_attachment');
|
||||||
}
|
}
|
||||||
|
|
||||||
$this->db->set ('createdon', $now);
|
$this->db->set ('createdon', $now);
|
||||||
$this->db->set ('type', 'wiki');
|
$this->db->set ('type', 'wiki');
|
||||||
$this->db->set ('action', 'update');
|
$this->db->set ('action', 'update');
|
||||||
$this->db->set ('projectid', $wiki->projectid);
|
$this->db->set ('projectid', $wiki->projectid);
|
||||||
$this->db->set ('userid', $userid);
|
$this->db->set ('userid', $userid);
|
||||||
$this->db->set ('message', $wiki->name);
|
$this->db->set ('message', $wiki->name);
|
||||||
$this->db->insert ('log');
|
$this->db->insert ('log');
|
||||||
|
|
||||||
if ($this->db->trans_status() === FALSE)
|
if ($this->db->trans_status() === FALSE)
|
||||||
{
|
{
|
||||||
@ -238,16 +238,16 @@ class WikiModel extends Model
|
|||||||
$this->db->where ('name', $wiki->name);
|
$this->db->where ('name', $wiki->name);
|
||||||
$this->db->delete ('wiki');
|
$this->db->delete ('wiki');
|
||||||
|
|
||||||
$this->db->set ('createdon', date('Y-m-d H:i:s'));
|
$this->db->set ('createdon', date('Y-m-d H:i:s'));
|
||||||
$this->db->set ('type', 'wiki');
|
$this->db->set ('type', 'wiki');
|
||||||
$this->db->set ('action', 'delete');
|
$this->db->set ('action', 'delete');
|
||||||
$this->db->set ('projectid', $wiki->projectid);
|
$this->db->set ('projectid', $wiki->projectid);
|
||||||
$this->db->set ('userid', $userid);
|
$this->db->set ('userid', $userid);
|
||||||
$this->db->set ('message', $wiki->name);
|
$this->db->set ('message', $wiki->name);
|
||||||
|
|
||||||
$this->db->insert ('log');
|
$this->db->insert ('log');
|
||||||
$this->db->trans_complete ();
|
$this->db->trans_complete ();
|
||||||
return $this->db->trans_status();
|
return $this->db->trans_status();
|
||||||
}
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -35,8 +35,8 @@ $(function () {
|
|||||||
$user->id = $login['id'];
|
$user->id = $login['id'];
|
||||||
|
|
||||||
$this->load->view (
|
$this->load->view (
|
||||||
'projectbar',
|
'projectbar',
|
||||||
array (
|
array (
|
||||||
'banner' => NULL,
|
'banner' => NULL,
|
||||||
|
|
||||||
'page' => array (
|
'page' => array (
|
||||||
@ -45,8 +45,8 @@ $this->load->view (
|
|||||||
'user' => $user,
|
'user' => $user,
|
||||||
),
|
),
|
||||||
|
|
||||||
'ctxmenuitems' => array ()
|
'ctxmenuitems' => array ()
|
||||||
)
|
)
|
||||||
);
|
);
|
||||||
?>
|
?>
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user