Index: trunk/kernel/include/portaluser.php =================================================================== diff -u -N -r3576 -r3895 --- trunk/kernel/include/portaluser.php (.../portaluser.php) (revision 3576) +++ trunk/kernel/include/portaluser.php (.../portaluser.php) (revision 3895) @@ -871,7 +871,7 @@ $u = $this->GetUser($result->fields["PortalUserId"]); return $u; } - + function &Add_User($Login, $Password, $Email, $CreatedOn, $FirstName="", $LastName="", $Status=2, $Phone="", $Street="", $City="", $State="", $Zip="", $Country="", $dob=0, $ip="", $CheckBanned=FALSE) { @@ -893,6 +893,51 @@ /*md5($Password)*/ } + function &Add_User_NEW($fields_hash, $check_banned = false) + { + $user = new clsPortalUser(NULL); + $user->tablename = $this->SourceTable; + + foreach ($fields_hash as $field_name => $field_value) { + $user->Set($field_name, $field_value); + } + + $broken_rule = $check_banned ? $user->CheckBanned() : false; + if (!$BrokenRule) { + $user->Create(); + return $user; + } + + return $BrokenRule; + } + + function &Edit_User_NEW($id, $fields_hash) + { + $user =& $this->GetItem($id); + + if (!is_object($user)) { + return $user; + } + + $fields_hash['IsBanned'] = $user->Get('IsBanned'); + if ($fields_hash['Status'] == 1) { + $fields_hash['IsBanned'] = 0; + } + + if (getArrayValue($fields_hash['Password'])) { + $user->Set('Password', $fields_hash['Password']); + unset($fields_hash['Password']); + } + + foreach ($fields_hash as $field_name => $field_value) { + $user->Set($field_name, $field_value); + } + + $user->Update(); + + return $user; + } + function &Edit_User($UserId, $Login, $Password, $Email, $CreatedOn, $FirstName="", $LastName="", $Status=2, $Phone="", $Street="", $City="", $State="", $Zip="", $Country="", $dob=0, $MinPwResetDelay=300) { Index: trunk/admin/install/inportal_schema.sql =================================================================== diff -u -N -r3888 -r3895 --- trunk/admin/install/inportal_schema.sql (.../inportal_schema.sql) (revision 3888) +++ trunk/admin/install/inportal_schema.sql (.../inportal_schema.sql) (revision 3895) @@ -387,34 +387,37 @@ # -------------------------------------------------------- -CREATE TABLE PortalUser ( +CREATE TABLE inp_PortalUser ( PortalUserId int(11) NOT NULL auto_increment, Login varchar(255) default NULL, - Password varchar(255) default NULL, + `Password` varchar(255) default NULL, FirstName varchar(255) default NULL, LastName varchar(255) default NULL, + Company varchar(255) NOT NULL default '', Email varchar(255) NOT NULL default '', CreatedOn double NOT NULL default '0', Phone varchar(20) default NULL, + Fax varchar(255) NOT NULL default '', Street varchar(255) default NULL, + Street2 varchar(255) NOT NULL default '', City varchar(20) default NULL, - State VARCHAR(20) NOT NULL, + State varchar(20) NOT NULL default '', Zip varchar(20) default NULL, Country varchar(20) NOT NULL default '', ResourceId int(11) NOT NULL default '0', - Status tinyint(4) NOT NULL default '2', + `Status` tinyint(4) NOT NULL default '2', Modified int(11) NOT NULL default '0', dob double NOT NULL default '0', tz int(11) default NULL, ip varchar(20) default NULL, IsBanned tinyint(1) NOT NULL default '0', - PassResetTime bigint(20), - PwResetConfirm varchar(255), - PwRequestTime bigint(25), - MinPwResetDelay int(11) NOT NULL default '1800', + PassResetTime bigint(20) default NULL, + PwResetConfirm varchar(255) default NULL, + PwRequestTime bigint(25) default NULL, + MinPwResetDelay int(11) NOT NULL default '1800', PRIMARY KEY (PortalUserId), - UNIQUE KEY Login (Login), UNIQUE KEY ResourceId (ResourceId), + UNIQUE KEY Login (Login), KEY CreatedOn (CreatedOn) ) Index: trunk/admin/install/upgrades/inportal_upgrade_v1.1.7.sql =================================================================== diff -u -N -r3888 -r3895 --- trunk/admin/install/upgrades/inportal_upgrade_v1.1.7.sql (.../inportal_upgrade_v1.1.7.sql) (revision 3888) +++ trunk/admin/install/upgrades/inportal_upgrade_v1.1.7.sql (.../inportal_upgrade_v1.1.7.sql) (revision 3895) @@ -2,4 +2,8 @@ ALTER TABLE ThemeFiles ADD INDEX (FilePath); ALTER TABLE Category CHANGE EditorsPick EditorsPick TINYINT(4) NOT NULL DEFAULT '0'; +ALTER TABLE PortalUser ADD Company VARCHAR(255) NOT NULL AFTER LastName; +ALTER TABLE PortalUser ADD Fax VARCHAR(255) NOT NULL AFTER Phone; +ALTER TABLE PortalUser ADD Street2 VARCHAR(255) NOT NULL AFTER Street; + UPDATE Modules SET Version = '1.1.7' WHERE Name = 'In-Portal'; \ No newline at end of file Index: trunk/admin/users/adduser.php =================================================================== diff -u -N -r3282 -r3895 --- trunk/admin/users/adduser.php (.../adduser.php) (revision 3282) +++ trunk/admin/users/adduser.php (.../adduser.php) (revision 3895) @@ -177,94 +177,136 @@ - > - - - "> - - - + + > + + + + + "> + + + + + > + + + + + + + + > - "> + ">   > - "> + "> - > + > - "> +   + + > + + + + + + + +   + + + > + + 1 + + + + + +   + + + + > + + 2 + + + + + +   + + + > - - - "> - -   - - > - "> + ">   > - "> + ">   > - "> + ">   > - "> + ">   > - Get("Status") == 1) echo "checked"; ?>> - Get("Status") == 2) echo "checked"; ?>> - Get("Status") == 0) echo "checked"; ?>> + Get("Status") == 1) echo "checked"; ?>> + Get("Status") == 2) echo "checked"; ?>> + Get("Status") == 0) echo "checked"; ?>>   > - "> + "> > - "> + "> Index: trunk/kernel/action.php =================================================================== diff -u -N -r3888 -r3895 --- trunk/kernel/action.php (.../action.php) (revision 3888) +++ trunk/kernel/action.php (.../action.php) (revision 3895) @@ -104,13 +104,26 @@ } else { - $password = md5($_POST["password"]); - $u = $objEditItems->Add_User($_POST["user_login"], $password, - $_POST["user_email"], $CreatedOn, $_POST["user_firstname"], - $_POST["user_lastname"], $_POST["status"], - $_POST["user_phone"], - $_POST["user_street"], $_POST["user_city"], - $_POST["user_state"], $_POST["user_zip"], $_POST["user_country"], $dob); + $fields_hash = Array( 'Login' => $_POST['user_login'], + 'Password' => md5($_POST['password']), + 'FirstName' => $_POST['user_firstname'], + 'LastName' => $_POST['user_lastname'], + 'Company' => $_POST['user_company'], + 'Email' => $_POST['user_email'], + 'Phone' => $_POST['user_phone'], + 'Fax' => $_POST['user_fax'], + 'Street' => $_POST['user_street'], + 'Street2' => $_POST['user_street2'], + 'City' => $_POST['user_city'], + 'State' => $_POST['user_state'], + 'Country' => $_POST['user_country'], + 'Zip' => $_POST['user_zip'], + 'Status' => $_POST['status'], + 'CreatedOn' => $CreatedOn, + 'dob' => $dob + ); + + $u =& $objEditItems->Add_User_NEW($fields_hash); $objCustomEdit = new clsCustomDataList(); //$objSession->GetEditTable("CustomMetaData")); $objCustomEdit->SetTable('edit'); @@ -140,7 +153,7 @@ break; case "m_edit_user": - //$CreatedOn = DateTimestamp($_POST["user_date"],GetDateFormat()); + //$CreatedOn = DateTimestamp($_POST["user_date"],GetDateFormat()); //$CreatedOn += SecondsSinceMidnight($_POST["user_time"]); $dob = DateTimestamp($_POST["user_dob"],GetDateFormat()); $objEditItems = new clsUserManager(); @@ -149,21 +162,28 @@ //$user_enabled = (int)$_POST["user_enabled"]; $UserId = (int)$_POST["user_id"]; //echo $UserId."
\n"; - if(!strlen($_POST["user_login"])) - $dob = 0; - if(strlen($_POST["password"])) - { - $password = md5($_POST["password"]); + if (!GetVar('user_login')) { + $dob = 0; } - else - $password = ""; - $u = $objEditItems->Edit_User($UserId, $_POST["user_login"], $password, - $_POST["user_email"], $CreatedOn, $_POST["user_firstname"], - $_POST["user_lastname"], $_POST["status"], - $_POST["user_phone"], - $_POST["user_street"], $_POST["user_city"], - $_POST["user_state"], $_POST["user_zip"], $_POST["user_country"], - $dob); + + $fields_hash = Array( 'Login' => $_POST['user_login'], + 'Password' => GetVar('password') ? md5(GetVar('password')) : '', + 'FirstName' => $_POST['user_firstname'], + 'LastName' => $_POST['user_lastname'], + 'Company' => $_POST['user_company'], + 'Email' => $_POST['user_email'], + 'Street' => $_POST['user_street'], + 'Street2' => $_POST['user_street2'], + 'City' => $_POST['user_city'], + 'State' => $_POST['user_state'], + 'Country' => $_POST['user_country'], // note: should issue some conversion from name to ISO code + 'Zip' => $_POST['user_zip'], + 'Phone' => $_POST['user_phone'], + 'Fax' => $_POST['user_fax'], + 'Status' => $_POST['status'], + 'dob' => $dob, + ); + $u =& $objEditItems->Edit_User_NEW($UserId, $fields_hash); $objCustomEdit = new clsCustomDataList(); //$objSession->GetEditTable("CustomMetaData")); $objCustomEdit->SetTable('edit');