Revision: 690
http://svn.sourceforge.net/dnfbb/?rev=690&view=rev
Author: sbosanquet
Date: 2007-01-29 11:34:36 -0800 (Mon, 29 Jan 2007)
Log Message:
-----------
Made a start on FR#1603121 - Password Age
Modified Paths:
--------------
v2/DB/MySQL/dnfBB.MySQL.v1.2.to.v2.0.Beta1.sql
v2/DB/MySQL/dnfBB.MySQL.v2.sql
v2/DNFLib/BOL/User.cs
v2/DNFLib/DAL/FirebirdDB.cs
v2/DNFLib/DAL/MSSQLDB.cs
v2/DNFLib/DAL/MySQLDB.cs
v2/DNFLib/DotNetForum.Library.Project.xml
v2/DNFLib/DotNetForum.Library.xml
Modified: v2/DB/MySQL/dnfBB.MySQL.v1.2.to.v2.0.Beta1.sql
===================================================================
--- v2/DB/MySQL/dnfBB.MySQL.v1.2.to.v2.0.Beta1.sql 2007-01-29 18:07:53 UTC (rev 689)
+++ v2/DB/MySQL/dnfBB.MySQL.v1.2.to.v2.0.Beta1.sql 2007-01-29 19:34:36 UTC (rev 690)
@@ -75,7 +75,8 @@
COMMIT;
ALTER TABLE `DNFBB_USERS`
- MODIFY COLUMN STYLE VARCHAR(25) DEFAULT 'Default' NOT NULL;
+ MODIFY COLUMN STYLE VARCHAR(25) DEFAULT 'Default' NOT NULL,
+ ADD COLUMN PWD_LAST_CHANGED TIMESTAMP;
CREATE TABLE IF NOT EXISTS DNFBB_EXCEPTION_HISTORY (
`ID` BIGINT NOT NULL AUTO_INCREMENT,
@@ -4036,6 +4037,7 @@
OUT opALLOW_SMILIES VARCHAR(1),
OUT opALLOW_IMAGES VARCHAR(1),
OUT opSUBSCRIBE_TO_TOPIC VARCHAR(1),
+ OUT opPWD_LAST_CHANGED TIMESTAMP,
OUT opEXCEPTION BIGINT
)
COMMENT 'Retrieves the details for an individual user.'
@@ -4082,7 +4084,7 @@
DATE_OF_BIRTH, URL, AVATAR, LOCATION, SIGNATURE, SHOW_SIG, LANG, STYLE,
NUM_POSTS, NUM_TOPICS, LAST_POST, DATE_REGISTERED, REGISTRATION_IP, LAST_VISIT,
ADMIN_NOTES, HIDE_ONLINE_STATUS, POSTS_PER_PAGE, TOPICS_PER_PAGE, DATE_FORMAT,
- ALLOW_BB_CODE, ALLOW_SMILIES, ALLOW_IMAGES, SUBSCRIBE_TO_TOPIC
+ ALLOW_BB_CODE, ALLOW_SMILIES, ALLOW_IMAGES, SUBSCRIBE_TO_TOPIC, PWD_LAST_CHANGED
FROM `DNFBB_USERS`
WHERE (ID = ipID)
INTO opBOARDID, opID, opUSERNAME, opPWORD, opEMAIL, opUSER_ACTIVE,
@@ -4090,7 +4092,7 @@
opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST, opDATE_REGISTERED,
opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES, opHIDE_ONLINE_STATUS,
opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opDATE_FORMAT,
- opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC;
+ opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC, opPWD_LAST_CHANGED;
CALL `DNFI_GET_USER_RANK`(opBOARDID, opNUM_POSTS, opRANK, opEXCEPTION);
@@ -4103,7 +4105,8 @@
opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST, opDATE_REGISTERED,
opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES, opRANK, opHIDE_ONLINE_STATUS,
opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opDATE_FORMAT,
- opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC, opEXCEPTION LIMIT 1;
+ opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC,
+ opPWD_LAST_CHANGED, opEXCEPTION LIMIT 1;
END;
END$$
@@ -4154,6 +4157,7 @@
OUT opALLOW_SMILIES VARCHAR(1),
OUT opALLOW_IMAGES VARCHAR(1),
OUT opSUBSCRIBE_TO_TOPIC VARCHAR(1),
+ OUT opPWD_LAST_CHANGED TIMESTAMP,
OUT opEXCEPTION BIGINT
)
COMMENT 'Searches for individual or groups of users.'
@@ -4184,7 +4188,7 @@
SET vSQL = CONCAT('SELECT BOARDID, ID, USERNAME, PWORD, EMAIL, USER_ACTIVE, TITLE, REALNAME, ',
'DATE_OF_BIRTH, URL, AVATAR, LOCATION, SIGNATURE, SHOW_SIG, LANG, STYLE, NUM_POSTS, ',
'NUM_TOPICS, LAST_POST, DATE_REGISTERED, REGISTRATION_IP, LAST_VISIT, ADMIN_NOTES,');
- SET vSQL = CONCAT(vSQL, 'HIDE_ONLINE_STATUS, POSTS_PER_PAGE, TOPICS_PER_PAGE, DATE_FORMAT, ALLOW_BB_CODE, ALLOW_SMILIES, ALLOW_IMAGES, SUBSCRIBE_TO_TOPIC FROM DNFBB_USERS WHERE (BOARDID = ', vBoardID, ') ');
+ SET vSQL = CONCAT(vSQL, 'HIDE_ONLINE_STATUS, POSTS_PER_PAGE, TOPICS_PER_PAGE, DATE_FORMAT, ALLOW_BB_CODE, ALLOW_SMILIES, ALLOW_IMAGES, SUBSCRIBE_TO_TOPIC, PWD_LAST_CHANGED FROM DNFBB_USERS WHERE (BOARDID = ', vBoardID, ') ');
CALL DNFI_VALIDATE_SEARCH_STRING(ipSEARCHTEXT, ipSEARCHTEXT);
@@ -4241,7 +4245,7 @@
opSHOW_SIG, opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST,
opDATE_REGISTERED, opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES,
opHIDE_ONLINE_STATUS, opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opDATE_FORMAT,
- opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC;
+ opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC, opPWD_LAST_CHANGED;
IF NOT vDone THEN
@@ -4257,7 +4261,7 @@
opDATE_REGISTERED, opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES,
opHIDE_ONLINE_STATUS, opRANK, opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opDATE_FORMAT,
opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC,
- opEXCEPTION;
+ opPWD_LAST_CHANGED, opEXCEPTION;
END IF;
@@ -4620,9 +4624,10 @@
OUT opADMIN_NOTES VARCHAR(300),
OUT opRANK VARCHAR(100),
OUT opHIDE_ONLINE_STATUS VARCHAR(1),
- OUT opEXCEPTION BIGINT,
OUT opPOSTS_PER_PAGE INTEGER,
- OUT opTOPICS_PER_PAGE INTEGER
+ OUT opTOPICS_PER_PAGE INTEGER,
+ OUT opPWD_LAST_CHANGED TIMESTAMP,
+ OUT opEXCEPTION BIGINT
)
COMMENT 'Retrieves the details for an individual user.'
BEGIN
@@ -4662,14 +4667,14 @@
SELECT BOARDID, ID, USERNAME, PWORD, EMAIL, USER_ACTIVE, TITLE, REALNAME,
DATE_OF_BIRTH, URL, AVATAR, LOCATION, SIGNATURE, SHOW_SIG, LANG, STYLE,
NUM_POSTS, NUM_TOPICS, LAST_POST, DATE_REGISTERED, REGISTRATION_IP, LAST_VISIT,
- ADMIN_NOTES, HIDE_ONLINE_STATUS, POSTS_PER_PAGE, TOPICS_PER_PAGE
+ ADMIN_NOTES, HIDE_ONLINE_STATUS, POSTS_PER_PAGE, TOPICS_PER_PAGE, PWD_LAST_CHANGED
FROM `DNFBB_USERS`
WHERE (USERNAME = ipUSERNAME AND BOARDID = ipBOARDID)
INTO opBOARDID, opID, opUSERNAME, opPWORD, opEMAIL, opUSER_ACTIVE,
opTITLE, opREALNAME, opDOB, opURL, opAVATAR, opLOCATION, opSIGNATURE, opSHOW_SIG,
opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST, opDATE_REGISTERED,
opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES, opHIDE_ONLINE_STATUS,
- opPOSTS_PER_PAGE, opTOPICS_PER_PAGE;
+ opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opPWD_LAST_CHANGED;
CALL `DNFI_GET_USER_RANK`(opBOARDID, opNUM_POSTS, opRANK, opEXCEPTION);
@@ -4681,7 +4686,7 @@
opTITLE, opREALNAME, opDOB, opURL, opAVATAR, opLOCATION, opSIGNATURE, opSHOW_SIG,
opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST, opDATE_REGISTERED,
opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES, opRANK, opHIDE_ONLINE_STATUS,
- opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opEXCEPTION LIMIT 1;
+ opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opPWD_LAST_CHANGED, opEXCEPTION LIMIT 1;
END;
END$$
@@ -5703,3 +5708,192 @@
COMMIT;
+DELIMITER $$
+
+DROP PROCEDURE IF EXISTS DNF_USER_CHANGE_PASSWORD$$
+
+CREATE PROCEDURE DNF_USER_CHANGE_PASSWORD (
+ IN ipSESSION VARCHAR(50),
+ IN ipUSERID BIGINT,
+ IN ipNEWPASSWORD VARCHAR(100),
+ OUT opEXCEPTION BIGINT
+)
+COMMENT 'Retrieves the details for an individual user'
+BEGIN
+
+MAIN_BLOCK:
+BEGIN
+ DECLARE vUserID, vBoardID BIGINT;
+ DECLARE vTask INTEGER;
+ DECLARE vUserName, vEncPassword VARCHAR(100);
+ DECLARE vSalt VARCHAR(2);
+
+ IF (ipUSERID IS NULL) THEN
+ SET vTask = NULL;
+ ELSE
+ SET vTask = 3000220;
+ END IF;
+
+ /* Validate Session - will throw exception if not valid */
+ CALL `DNF_CHECK_TASK_PERMISSIONS`(ipSESSION, vTask, vUserID, opEXCEPTION);
+
+ IF (opEXCEPTION != 0) THEN
+ LEAVE MAIN_BLOCK;
+ END IF;
+
+ /* if ipID is NULL then get details for current user */
+ IF (ipUSERID IS NULL) THEN
+ SET ipUSERID = vUserID;
+ END IF;
+
+ /* verify record exists */
+ SELECT ID, BOARDID, USERNAME
+ FROM `DNFBB_USERS`
+ WHERE (ID = ipUSERID)
+ INTO vUserID, vBoardID, vUserName;
+
+ IF (vUserID IS NULL) THEN
+ SET opEXCEPTION = 1000220;
+ LEAVE MAIN_BLOCK;
+ END IF;
+
+ -- create a new salt value
+ SET vSalt = SUBSTR(CAST(CURRENT_TIME AS CHAR(13)), 7, 8);
+
+ -- encrypt the password
+ CALL `DNFI_ENCRYPT_PASSWORD`(vBoardID, ipNEWPASSWORD, vSalt, vEncPassword, opEXCEPTION);
+
+ IF (opEXCEPTION != 0) THEN
+ INSERT INTO DNFBB_LOG (BOARDID, CALLING_FUNCTION, CATEGORY, MESSAGE)
+ VALUES (BOARDID, 'DNF_USER_CHANGE_PASSWORD', 'USER', CONCAT('Password Changed Failed: ', opEXCEPTION ));
+ LEAVE MAIN_BLOCK;
+ END IF;
+
+ -- store the password/salt detials
+ UPDATE `DNFBB_USERS`
+ SET SALT = vSalt,
+ PWORD = vEncPassword,
+ PWD_LAST_UPDATED = NOW()
+ WHERE (ID = vUserID);
+
+ /* Send email to new user with change of password details*/
+ CALL `DNFI_CREATE_EMAIL_CHANGEPWORD`(vBoardID, vUserID, vUserName, ipNEWPASSWORD, opEXCEPTION);
+
+ IF (opEXCEPTION != 0) THEN
+ LEAVE MAIN_BLOCK;
+ END IF;
+
+ SET opEXCEPTION = 0;
+
+ INSERT INTO DNFBB_LOG (BOARDID, CALLING_FUNCTION, CATEGORY, MESSAGE)
+ VALUES (vBoardID, 'DNF_USER_CHANGE_PASSWORD', 'USER', 'Password Changed Successfully');
+
+END;
+END$$
+
+DELIMITER ;
+
+COMMIT;
+
+DELIMITER $$
+
+DROP PROCEDURE IF EXISTS DNF_USERSGROUP_USERS$$
+
+CREATE PROCEDURE DNF_USERSGROUP_USERS(
+ IN ipSESSION VARCHAR(50),
+ IN ipUSERGROUPID BIGINT,
+ OUT opBOARDID BIGINT,
+ OUT opID BIGINT,
+ OUT opUSERNAME VARCHAR(100),
+ OUT opPWORD VARCHAR(100),
+ OUT opEMAIL VARCHAR(60),
+ OUT opUSER_ACTIVE VARCHAR(1),
+ OUT opTITLE VARCHAR(50),
+ OUT opREALNAME VARCHAR(40),
+ OUT opDOB DATE,
+ OUT opURL VARCHAR(100),
+ OUT opAVATAR VARCHAR(100),
+ OUT opLOCATION VARCHAR(30),
+ OUT opSIGNATURE VARCHAR(2500),
+ OUT opSHOW_SIG VARCHAR(1),
+ OUT opLANG VARCHAR(25),
+ OUT opSTYLE VARCHAR(25),
+ OUT opNUM_POSTS INTEGER,
+ OUT opNUM_TOPICS INTEGER,
+ OUT opLAST_POST TIMESTAMP,
+ OUT opDATE_REGISTERED TIMESTAMP,
+ OUT opREGISTRATION_IP VARCHAR(15),
+ OUT opLAST_VISIT TIMESTAMP,
+ OUT opADMIN_NOTES VARCHAR(300),
+ OUT opRANK VARCHAR(100),
+ OUT opHIDE_ONLINE_STATUS VARCHAR(1),
+ OUT opPOSTS_PER_PAGE INTEGER,
+ OUT opTOPICS_PER_PAGE INTEGER,
+ OUT opPWD_LAST_CHANGED TIMESTAMP,
+ OUT opEXCEPTION BIGINT
+)
+COMMENT 'Retrieves a list of users for a user group.'
+BEGIN
+
+MAIN_BLOCK:
+BEGIN
+ DECLARE vUserID, vBoardID BIGINT;
+ DECLARE vTaskID, vCounter INTEGER;
+ DECLARE vSQL VARCHAR(1024);
+ DECLARE vOrderClause VARCHAR(200);
+ DECLARE vWhereClause VARCHAR(200);
+ DECLARE vDone INT DEFAULT 0;
+ DECLARE cUsergroupUsers CURSOR
+ FOR SELECT U.BOARDID, U.ID, U.USERNAME, U.PWORD, U.EMAIL, U.USER_ACTIVE,
+ U.TITLE, U.REALNAME, U.DATE_OF_BIRTH, U.URL, U.AVATAR, U.LOCATION,
+ U.SIGNATURE, U.SHOW_SIG, U.LANG, U.STYLE, U.NUM_POSTS,
+ U.NUM_TOPICS, U.LAST_POST, U.DATE_REGISTERED, U.REGISTRATION_IP,
+ U.LAST_VISIT, U.ADMIN_NOTES, U.HIDE_ONLINE_STATUS, U.POSTS_PER_PAGE,
+ U.TOPICS_PER_PAGE, U.PWD_LAST_CHANGED
+ FROM DNFBB_USERS U
+ LEFT JOIN DNFBB_USERTOUSERGROUPS UG ON (U.ID = UG.USER_ID)
+ WHERE (UG.USERGROUP_ID = ipUSERGROUPID);
+ DECLARE CONTINUE HANDLER FOR NOT FOUND SET vDone = 1;
+
+ SET opEXCEPTION = 0;
+
+ /* Validate Session - will throw exception if not valid */
+ CALL `DNF_CHECK_TASK_PERMISSIONS`(ipSESSION, 1000010, vUserID, opEXCEPTION);
+
+ IF (opEXCEPTION != 0) THEN
+ LEAVE MAIN_BLOCK;
+ END IF;
+
+ OPEN cUsergroupUsers;
+
+ REPEAT
+
+ BEGIN
+
+ FETCH cUsergroupUsers INTO opBOARDID, opID, opUSERNAME, opPWORD, opEMAIL, opUSER_ACTIVE,
+ opTITLE, opREALNAME, opDOB, opURL, opAVATAR, opLOCATION, opSIGNATURE,
+ opSHOW_SIG, opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST,
+ opDATE_REGISTERED, opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES,
+ opHIDE_ONLINE_STATUS, opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opPWD_LAST_CHANGED;
+
+ IF NOT vDone THEN
+ SELECT opBOARDID, opID, opUSERNAME, opPWORD, opEMAIL, opUSER_ACTIVE,
+ opTITLE, opREALNAME, opDOB, opURL, opAVATAR, opLOCATION, opSIGNATURE,
+ opSHOW_SIG, opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST,
+ opDATE_REGISTERED, opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES,
+ opHIDE_ONLINE_STATUS, opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opPWD_LAST_CHANGED, opEXCEPTION;
+ END IF;
+
+ END;
+
+ UNTIL vDone END REPEAT;
+
+ CLOSE cUsergroupUsers;
+
+END;
+END $$
+
+DELIMITER ;
+
+COMMIT;
+
Modified: v2/DB/MySQL/dnfBB.MySQL.v2.sql
===================================================================
--- v2/DB/MySQL/dnfBB.MySQL.v2.sql 2007-01-29 18:07:53 UTC (rev 689)
+++ v2/DB/MySQL/dnfBB.MySQL.v2.sql 2007-01-29 19:34:36 UTC (rev 690)
@@ -316,7 +316,8 @@
ALLOW_BB_CODE VARCHAR(1) DEFAULT 'T' NOT NULL,
ALLOW_SMILIES VARCHAR(1) DEFAULT 'T' NOT NULL,
ALLOW_IMAGES VARCHAR(1) DEFAULT 'T' NOT NULL,
- SUBSCRIBE_TO_TOPIC VARCHAR(1) DEFAULT 'T' NOT NULL
+ SUBSCRIBE_TO_TOPIC VARCHAR(1) DEFAULT 'T' NOT NULL,
+ PWD_LAST_CHANGED TIMESTAMP
)
ENGINE = INNODB,
COMMENT 'Table holds information regarding registered users';
@@ -10640,6 +10641,7 @@
OUT opALLOW_SMILIES VARCHAR(1),
OUT opALLOW_IMAGES VARCHAR(1),
OUT opSUBSCRIBE_TO_TOPIC VARCHAR(1),
+ OUT opPWD_LAST_CHANGED TIMESTAMP,
OUT opEXCEPTION BIGINT
)
COMMENT 'Searches for individual or groups of users.'
@@ -10670,7 +10672,7 @@
SET vSQL = CONCAT('SELECT BOARDID, ID, USERNAME, PWORD, EMAIL, USER_ACTIVE, TITLE, REALNAME, ',
'DATE_OF_BIRTH, URL, AVATAR, LOCATION, SIGNATURE, SHOW_SIG, LANG, STYLE, NUM_POSTS, ',
'NUM_TOPICS, LAST_POST, DATE_REGISTERED, REGISTRATION_IP, LAST_VISIT, ADMIN_NOTES,');
- SET vSQL = CONCAT(vSQL, 'HIDE_ONLINE_STATUS, POSTS_PER_PAGE, TOPICS_PER_PAGE, DATE_FORMAT, ALLOW_BB_CODE, ALLOW_SMILIES, ALLOW_IMAGES, SUBSCRIBE_TO_TOPIC FROM DNFBB_USERS WHERE (BOARDID = ', vBoardID, ') ');
+ SET vSQL = CONCAT(vSQL, 'HIDE_ONLINE_STATUS, POSTS_PER_PAGE, TOPICS_PER_PAGE, DATE_FORMAT, ALLOW_BB_CODE, ALLOW_SMILIES, ALLOW_IMAGES, SUBSCRIBE_TO_TOPIC, PWD_LAST_CHANGED FROM DNFBB_USERS WHERE (BOARDID = ', vBoardID, ') ');
CALL DNFI_VALIDATE_SEARCH_STRING(ipSEARCHTEXT, ipSEARCHTEXT);
@@ -10728,7 +10730,7 @@
opSHOW_SIG, opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST,
opDATE_REGISTERED, opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES,
opHIDE_ONLINE_STATUS, opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opDATE_FORMAT,
- opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC;
+ opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC, opPWD_LAST_CHANGED;
IF NOT vDone THEN
@@ -10744,7 +10746,7 @@
opDATE_REGISTERED, opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES,
opHIDE_ONLINE_STATUS, opRANK, opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opDATE_FORMAT,
opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC,
- opEXCEPTION;
+ opPWD_LAST_CHANGED, opEXCEPTION;
END IF;
@@ -11198,6 +11200,7 @@
OUT opALLOW_SMILIES VARCHAR(1),
OUT opALLOW_IMAGES VARCHAR(1),
OUT opSUBSCRIBE_TO_TOPIC VARCHAR(1),
+ OUT opPWD_LAST_CHANGED TIMESTAMP,
OUT opEXCEPTION BIGINT
)
COMMENT 'Retrieves the details for an individual user.'
@@ -11244,7 +11247,7 @@
DATE_OF_BIRTH, URL, AVATAR, LOCATION, SIGNATURE, SHOW_SIG, LANG, STYLE,
NUM_POSTS, NUM_TOPICS, LAST_POST, DATE_REGISTERED, REGISTRATION_IP, LAST_VISIT,
ADMIN_NOTES, HIDE_ONLINE_STATUS, POSTS_PER_PAGE, TOPICS_PER_PAGE, DATE_FORMAT,
- ALLOW_BB_CODE, ALLOW_SMILIES, ALLOW_IMAGES, SUBSCRIBE_TO_TOPIC
+ ALLOW_BB_CODE, ALLOW_SMILIES, ALLOW_IMAGES, SUBSCRIBE_TO_TOPIC, PWD_LAST_CHANGED
FROM `DNFBB_USERS`
WHERE (ID = ipID)
INTO opBOARDID, opID, opUSERNAME, opPWORD, opEMAIL, opUSER_ACTIVE,
@@ -11252,7 +11255,7 @@
opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST, opDATE_REGISTERED,
opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES, opHIDE_ONLINE_STATUS,
opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opDATE_FORMAT,
- opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC;
+ opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC, opPWD_LAST_CHANGED;
CALL `DNFI_GET_USER_RANK`(opBOARDID, opNUM_POSTS, opRANK, opEXCEPTION);
@@ -11265,7 +11268,8 @@
opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST, opDATE_REGISTERED,
opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES, opRANK, opHIDE_ONLINE_STATUS,
opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opDATE_FORMAT,
- opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC, opEXCEPTION LIMIT 1;
+ opALLOW_BB_CODE, opALLOW_SMILIES, opALLOW_IMAGES, opSUBSCRIBE_TO_TOPIC,
+ opPWD_LAST_CHANGED, opEXCEPTION LIMIT 1;
END;
END$$
@@ -11449,8 +11453,10 @@
-- store the password/salt detials
UPDATE `DNFBB_USERS`
- SET SALT = vSalt, PWORD = vEncPassword
- WHERE (ID = vUserID);
+ SET SALT = vSalt,
+ PWORD = vEncPassword,
+ PWD_LAST_UPDATED = NOW()
+ WHERE (ID = vUserID);
/* Send email to new user with change of password details*/
CALL `DNFI_CREATE_EMAIL_CHANGEPWORD`(vBoardID, vUserID, vUserName, ipNEWPASSWORD, opEXCEPTION);
@@ -14142,6 +14148,7 @@
OUT opHIDE_ONLINE_STATUS VARCHAR(1),
OUT opPOSTS_PER_PAGE INTEGER,
OUT opTOPICS_PER_PAGE INTEGER,
+ OUT opPWD_LAST_CHANGED TIMESTAMP,
OUT opEXCEPTION BIGINT
)
COMMENT 'Retrieves a list of users for a user group.'
@@ -14161,7 +14168,7 @@
U.SIGNATURE, U.SHOW_SIG, U.LANG, U.STYLE, U.NUM_POSTS,
U.NUM_TOPICS, U.LAST_POST, U.DATE_REGISTERED, U.REGISTRATION_IP,
U.LAST_VISIT, U.ADMIN_NOTES, U.HIDE_ONLINE_STATUS, U.POSTS_PER_PAGE,
- U.TOPICS_PER_PAGE
+ U.TOPICS_PER_PAGE, U.PWD_LAST_CHANGED
FROM DNFBB_USERS U
LEFT JOIN DNFBB_USERTOUSERGROUPS UG ON (U.ID = UG.USER_ID)
WHERE (UG.USERGROUP_ID = ipUSERGROUPID);
@@ -14186,14 +14193,14 @@
opTITLE, opREALNAME, opDOB, opURL, opAVATAR, opLOCATION, opSIGNATURE,
opSHOW_SIG, opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST,
opDATE_REGISTERED, opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES,
- opHIDE_ONLINE_STATUS, opPOSTS_PER_PAGE, opTOPICS_PER_PAGE;
+ opHIDE_ONLINE_STATUS, opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opPWD_LAST_CHANGED;
IF NOT vDone THEN
SELECT opBOARDID, opID, opUSERNAME, opPWORD, opEMAIL, opUSER_ACTIVE,
opTITLE, opREALNAME, opDOB, opURL, opAVATAR, opLOCATION, opSIGNATURE,
opSHOW_SIG, opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST,
opDATE_REGISTERED, opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES,
- opHIDE_ONLINE_STATUS, opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opEXCEPTION;
+ opHIDE_ONLINE_STATUS, opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opPWD_LAST_CHANGED, opEXCEPTION;
END IF;
END;
@@ -15990,9 +15997,10 @@
OUT opADMIN_NOTES VARCHAR(300),
OUT opRANK VARCHAR(100),
OUT opHIDE_ONLINE_STATUS VARCHAR(1),
- OUT opEXCEPTION BIGINT,
OUT opPOSTS_PER_PAGE INTEGER,
- OUT opTOPICS_PER_PAGE INTEGER
+ OUT opTOPICS_PER_PAGE INTEGER,
+ OUT opPWD_LAST_CHANGED TIMESTAMP,
+ OUT opEXCEPTION BIGINT
)
COMMENT 'Retrieves the details for an individual user.'
BEGIN
@@ -16032,14 +16040,14 @@
SELECT BOARDID, ID, USERNAME, PWORD, EMAIL, USER_ACTIVE, TITLE, REALNAME,
DATE_OF_BIRTH, URL, AVATAR, LOCATION, SIGNATURE, SHOW_SIG, LANG, STYLE,
NUM_POSTS, NUM_TOPICS, LAST_POST, DATE_REGISTERED, REGISTRATION_IP, LAST_VISIT,
- ADMIN_NOTES, HIDE_ONLINE_STATUS, POSTS_PER_PAGE, TOPICS_PER_PAGE
+ ADMIN_NOTES, HIDE_ONLINE_STATUS, POSTS_PER_PAGE, TOPICS_PER_PAGE, PWD_LAST_CHANGED
FROM `DNFBB_USERS`
WHERE (USERNAME = ipUSERNAME AND BOARDID = ipBOARDID)
INTO opBOARDID, opID, opUSERNAME, opPWORD, opEMAIL, opUSER_ACTIVE,
opTITLE, opREALNAME, opDOB, opURL, opAVATAR, opLOCATION, opSIGNATURE, opSHOW_SIG,
opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST, opDATE_REGISTERED,
opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES, opHIDE_ONLINE_STATUS,
- opPOSTS_PER_PAGE, opTOPICS_PER_PAGE;
+ opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opPWD_LAST_CHANGED;
CALL `DNFI_GET_USER_RANK`(opBOARDID, opNUM_POSTS, opRANK, opEXCEPTION);
@@ -16051,7 +16059,7 @@
opTITLE, opREALNAME, opDOB, opURL, opAVATAR, opLOCATION, opSIGNATURE, opSHOW_SIG,
opLANG, opSTYLE, opNUM_POSTS, opNUM_TOPICS, opLAST_POST, opDATE_REGISTERED,
opREGISTRATION_IP, opLAST_VISIT, opADMIN_NOTES, opRANK, opHIDE_ONLINE_STATUS,
- opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opEXCEPTION LIMIT 1;
+ opPOSTS_PER_PAGE, opTOPICS_PER_PAGE, opPWD_LAST_CHANGED, opEXCEPTION LIMIT 1;
END;
END$$
Modified: v2/DNFLib/BOL/User.cs
===================================================================
--- v2/DNFLib/BOL/User.cs 2007-01-29 18:07:53 UTC (rev 689)
+++ v2/DNFLib/BOL/User.cs 2007-01-29 19:34:36 UTC (rev 690)
@@ -71,6 +71,7 @@
private bool _allowimages;
private bool _allowsmilies;
private bool _subscribetotopic;
+ private DateTime _pwdLastChanged;
#endregion Private Members
@@ -109,7 +110,7 @@
DateTime DateRegistered, string SignupIP, DateTime LastVisit, string AdminNotes,
string Rank, bool HideUserOnlineStatus, int PostsPerPage, int TopicsPerPage,
string dateFormat, bool allowSmilies, bool allowBBCode, bool allowImages,
- bool subscribeToTopic)
+ bool subscribeToTopic, DateTime PwdLastChanged)
{
DotNetForum.Library.Utilities.Utils u = new DotNetForum.Library.Utilities.Utils();
@@ -156,12 +157,26 @@
_allowbbcode = allowBBCode;
_allowimages = allowImages;
_subscribetotopic = subscribeToTopic;
+
+ _pwdLastChanged = PwdLastChanged;
+
}
#endregion Constructors
#region Properties
+
+ /// <summary>
+ /// Get the date/time when the user password was last changed
+ /// </summary>
+ public DateTime PasswordLastChanged
+ {
+ get
+ {
+ return _pwdLastChanged;
+ }
+ }
/// <summary>
/// Allow Smilies
Modified: v2/DNFLib/DAL/FirebirdDB.cs
===================================================================
--- v2/DNFLib/DAL/FirebirdDB.cs 2007-01-29 18:07:53 UTC (rev 689)
+++ v2/DNFLib/DAL/FirebirdDB.cs 2007-01-29 19:34:36 UTC (rev 690)
@@ -2248,6 +2248,8 @@
LastVisit = rdr.GetDateTime(21);
string AdminNotes = rdr.GetString(22);
+
+ DateTime pwdLastChanged = new DateTime();
bool allowBBCode = StrToBool(rdr.GetString(28));
bool allowImages = StrToBool(rdr.GetString(29));
@@ -2260,7 +2262,7 @@
UserSignature, ShowSig, UserLanguage, UserStyle, UserPostCount, UserTopicCount,
LastPost, DateRegistered, SignupIP, LastVisit, AdminNotes, UserRank,
HideUserOnlineStatus, PostsPerPage, TopicsPerPage, dateFormat, allowSmilies,
- allowBBCode, allowImages, subscribeToTopic);
+ allowBBCode, allowImages, subscribeToTopic, pwdLastChanged);
Result.Add(usr);
}
@@ -3503,7 +3505,7 @@
UserSignature, ShowSig, UserLanguage, UserStyle, UserPostCount, UserTopicCount,
LastPost, DateRegistered, SignupIP, LastVisit, AdminNotes, UserRank,
HideUserOnlineStatus, PostsPerPage, TopicsPerPage, dateFormat, allowSmilies,
- allowBBCode, allowImages, subscribeToTopic);
+ allowBBCode, allowImages, subscribeToTopic, new DateTime());
}
}
finally
@@ -3913,7 +3915,7 @@
UserSignature, ShowSig, UserLanguage, UserStyle, UserPostCount, UserTopicCount,
LastPost, DateRegistered, SignupIP, LastVisit, AdminNotes, UserRank,
HideUserOnlineStatus, PostsPerPage, TopicsPerPage, dateFormat, allowSmilies,
- allowBBCode, allowImages, subscribeToTopic);
+ allowBBCode, allowImages, subscribeToTopic, new DateTime());
Result.Add(usr);
}
Modified: v2/DNFLib/DAL/MSSQLDB.cs
===================================================================
--- v2/DNFLib/DAL/MSSQLDB.cs 2007-01-29 18:07:53 UTC (rev 689)
+++ v2/DNFLib/DAL/MSSQLDB.cs 2007-01-29 19:34:36 UTC (rev 690)
@@ -2744,7 +2744,7 @@
UserSignature, ShowSig, UserLanguage, UserStyle, UserPostCount, 0,
LastPost, DateRegistered, SignupIP, LastVisit, AdminNotes, "", false,
PostsPerPage, TopicsPerPage, dateFormat, allowSmilies,
- allowBBCode, allowImages, subscribeToTopic);
+ allowBBCode, allowImages, subscribeToTopic, new DateTime());
}
}
catch
Modified: v2/DNFLib/DAL/MySQLDB.cs
===================================================================
--- v2/DNFLib/DAL/MySQLDB.cs 2007-01-29 18:07:53 UTC (rev 689)
+++ v2/DNFLib/DAL/MySQLDB.cs 2007-01-29 19:34:36 UTC (rev 690)
@@ -3094,6 +3094,7 @@
AddParam(cmd, "?opALLOW_SMILIES", MySqlDbType.VarChar);
AddParam(cmd, "?opALLOW_IMAGES", MySqlDbType.VarChar);
AddParam(cmd, "?opSUBSCRIBE_TO_TOPIC", MySqlDbType.VarChar);
+ AddParam(cmd, "?opPWD_LAST_CHANGED", MySqlDbType.Timestamp);
AddParam(cmd, _ExceptionParamName, MySqlDbType.Int64);
MySqlDataReader rdr = cmd.ExecuteReader();
@@ -3131,6 +3132,7 @@
DateTime LastPost = new DateTime();
DateTime DateRegistered = new DateTime();
DateTime DOB = new DateTime();
+ DateTime PwdLastChanged = new DateTime();
if (!rdr.IsDBNull(8))
DOB = rdr.GetDateTime(8);
@@ -3147,24 +3149,28 @@
LastVisit = rdr.GetDateTime(21);
string AdminNotes = rdr.GetString(22);
-
- if (rdr.GetInt64(32) != 0)
- {
- throw (new MySqlDBException(GetExceptionMsg(rdr.GetInt64(32))));
- }
-
- bool allowBBCode = StrToBool(rdr.GetString(28));
+
+ if (!rdr.IsDBNull(32))
+ PwdLastChanged = rdr.GetDateTime(32);
+
+ bool allowBBCode = StrToBool(rdr.GetString(28));
bool allowImages = StrToBool(rdr.GetString(29));
bool allowSmilies = StrToBool(rdr.GetString(30));
bool subscribeToTopic = StrToBool(rdr.GetString(31));
+
string dateFormat = rdr.GetString(27);
-
+
+ if (rdr.GetInt64(33) != 0)
+ {
+ throw (new MySqlDBException(GetExceptionMsg(rdr.GetInt64(33))));
+ }
+
User usr = new User(Session, UserId, UserName, UserEMail,
UserActive, UserTitle, UserRealName, DOB, UserURL, UserAvatar, UserLocation,
UserSignature, ShowSig, UserLanguage, UserStyle, UserPostCount, UserTopicCount,
LastPost, DateRegistered, SignupIP, LastVisit, AdminNotes, UserRank, HideUserOnlineStatus,
PostsPerPage, TopicsPerPage, dateFormat, allowSmilies,
- allowBBCode, allowImages, subscribeToTopic);
+ allowBBCode, allowImages, subscribeToTopic, PwdLastChanged);
Result.Add(usr);
@@ -4727,6 +4733,7 @@
AddParam(cmd, "?opALLOW_SMILIES", MySqlDbType.VarChar);
AddParam(cmd, "?opALLOW_IMAGES", MySqlDbType.VarChar);
AddParam(cmd, "?opSUBSCRIBE_TO_TOPIC", MySqlDbType.VarChar);
+ AddParam(cmd, "?opPWD_LAST_CHANGED", MySqlDbType.Timestamp);
AddParam(cmd, _ExceptionParamName, MySqlDbType.Int64);
MySqlDataReader rdr = cmd.ExecuteReader();
@@ -4764,9 +4771,10 @@
DateTime LastPost = new DateTime();
DateTime DateRegistered = new DateTime();
DateTime DOB = new DateTime();
+ DateTime PwdLastChanged = new DateTime();
if (!rdr.IsDBNull(8))
- LastPost = rdr.GetDateTime(8);
+ DOB = rdr.GetDateTime(8);
if (!rdr.IsDBNull(18))
LastPost = rdr.GetDateTime(18);
@@ -4780,25 +4788,27 @@
LastVisit = rdr.GetDateTime(21);
string AdminNotes = rdr.GetString(22);
-
-
- if (rdr.GetInt64(32) != 0)
- {
- throw (new MySqlDBException(GetExceptionMsg(rdr.GetInt64(32))));
- }
-
+
+ if (!rdr.IsDBNull(32))
+ PwdLastChanged = rdr.GetDateTime(32);
+
bool allowBBCode = StrToBool(rdr.GetString(28));
bool allowImages = StrToBool(rdr.GetString(29));
bool allowSmilies = StrToBool(rdr.GetString(30));
bool subscribeToTopic = StrToBool(rdr.GetString(31));
string dateFormat = rdr.GetString(27);
+
+ if (rdr.GetInt64(33) != 0)
+ {
+ throw (new MySqlDBException(GetExceptionMsg(rdr.GetInt64(33))));
+ }
Result = new User(Session, UserId, UserName, UserEMail,
UserActive, UserTitle, UserRealName, DOB, UserURL, UserAvatar, UserLocation,
UserSignature, ShowSig, UserLanguage, UserStyle, UserPostCount, UserTopicCount,
LastPost, DateRegistered, SignupIP, LastVisit, AdminNotes, UserRank,
HideUserOnlineStatus, PostsPerPage, TopicsPerPage, dateFormat, allowSmilies,
- allowBBCode, allowImages, subscribeToTopic);
+ allowBBCode, allowImages, subscribeToTopic, PwdLastChanged);
}
}
catch
@@ -4819,7 +4829,7 @@
}
catch (Exception E)
{
- WriteDebugInformation("DNF_USERS_GET", "UserGet", E);
+ WriteDebugInformation("DNF_USERS_GET", "UsersGet", E);
if (E.Message.IndexOf("Record not found") > -1)
throw new UserException("Invalid User/User not found.");
else
@@ -4890,6 +4900,7 @@
AddParam(cmd, "?opHIDE_ONLINE_STATUS", MySqlDbType.VarChar);
AddParam(cmd, "?opPOSTS_PER_PAGE", MySqlDbType.Int32);
AddParam(cmd, "?opTOPICS_PER_PAGE", MySqlDbType.Int32);
+ AddParam(cmd, "?opPWD_LAST_CHANGED", MySqlDbType.Timestamp);
AddParam(cmd, _ExceptionParamName, MySqlDbType.Int64);
MySqlDataReader rdr = cmd.ExecuteReader();
@@ -4927,15 +4938,19 @@
DateTime LastPost = new DateTime();
DateTime DateRegistered = new DateTime();
DateTime DOB = new DateTime();
+ DateTime PwdLastChanged = new DateTime();
if (!rdr.IsDBNull(8))
- LastPost = rdr.GetDateTime(8);
+ DOB = rdr.GetDateTime(8);
if (!rdr.IsDBNull(18))
LastPost = rdr.GetDateTime(18);
if (!rdr.IsDBNull(19))
DateRegistered = rdr.GetDateTime(19);
+
+ if (!rdr.IsDBNull(27))
+ PwdLastChanged = rdr.GetDateTime(27);
string SignupIP = rdr.GetString(20);
@@ -4944,10 +4959,9 @@
string AdminNotes = rdr.GetString(22);
-
- if (rdr.GetInt64(27) != 0)
+ if (rdr.GetInt64(28) != 0)
{
- throw (new MySqlDBException(GetExceptionMsg(rdr.GetInt64(27))));
+ throw (new MySqlDBException(GetExceptionMsg(rdr.GetInt64(28))));
}
bool allowBBCode = true;
@@ -4961,7 +4975,7 @@
UserSignature, ShowSig, UserLanguage, UserStyle, UserPostCount, UserTopicCount,
LastPost, DateRegistered, SignupIP, LastVisit, AdminNotes, UserRank,
HideUserOnlineStatus, PostsPerPage, TopicsPerPage, dateFormat, allowSmilies,
- allowBBCode, allowImages, subscribeToTopic);
+ allowBBCode, allowImages, subscribeToTopic, PwdLastChanged);
}
}
catch
@@ -5414,6 +5428,7 @@
AddParam(cmd, "?opALLOW_SMILIES", MySqlDbType.VarChar);
AddParam(cmd, "?opALLOW_IMAGES", MySqlDbType.VarChar);
AddParam(cmd, "?opSUBSCRIBE_TO_TOPIC", MySqlDbType.VarChar);
+ AddParam(cmd, "?opPWD_LAST_CHANGED", MySqlDbType.Timestamp);
AddParam(cmd, _ExceptionParamName, MySqlDbType.Int64);
MySqlDataReader rdr = cmd.ExecuteReader();
@@ -5452,6 +5467,7 @@
DateTime LastPost = new DateTime();
DateTime DateRegistered = new DateTime();
DateTime DOB = new DateTime();
+ DateTime PwdLastChanged = new DateTime();
if (!rdr.IsDBNull(8))
DOB = rdr.GetDateTime(8);
@@ -5469,29 +5485,28 @@
string AdminNotes = rdr.GetString(22);
- if (rdr.GetInt64(32) != 0)
- {
- throw (new MySqlDBException(GetExceptionMsg(rdr.GetInt64(32))));
- }
-
+ if (!rdr.IsDBNull(32))
+ PwdLastChanged = rdr.GetDateTime(32);
+
bool allowBBCode = StrToBool(rdr.GetString(28));
bool allowImages = StrToBool(rdr.GetString(29));
bool allowSmilies = StrToBool(rdr.GetString(30));
bool subscribeToTopic = StrToBool(rdr.GetString(31));
string dateFormat = rdr.GetString(27);
-
+
+ if (rdr.GetInt64(33) != 0)
+ {
+ throw (new MySqlDBException(GetExceptionMsg(rdr.GetInt64(33))));
+ }
+
User usr = new User(Session, UserId, UserName, UserEMail,
UserActive, UserTitle, UserRealName, DOB, UserURL, UserAvatar, UserLocation,
UserSignature, ShowSig, UserLanguage, UserStyle, UserPostCount, UserTopicCount,
LastPost, DateRegistered, SignupIP, LastVisit, AdminNotes, UserRank,
HideUserOnlineStatus, PostsPerPage, TopicsPerPage, dateFormat, allowSmilies,
- allowBBCode, allowImages, subscribeToTopic);
+ allowBBCode, allowImages, subscribeToTopic, PwdLastChanged);
Result.Add(usr);
-
- // HACK: Implemented to fix a problem with an exception being generated
- // Exception: rdr.NextResult() error: evaluation of function 'rdr.NextResult' cannot take place because the thread is at a location at which function evaluation is not possible
-// System.Threading.Thread.Sleep(10);
}while(rdr.NextResult());
}
Modified: v2/DNFLib/DotNetForum.Library.Project.xml
===================================================================
--- v2/DNFLib/DotNetForum.Library.Project.xml 2007-01-29 18:07:53 UTC (rev 689)
+++ v2/DNFLib/DotNetForum.Library.Project.xml 2007-01-29 19:34:36 UTC (rev 690)
@@ -69,6 +69,11 @@
The DotNetForum.Library.Utilities namespace contains types which
</summary>
</member>
+ <member name="N:DotNetForum.Library.Utilities.HighLightLanguage">
+ <summary>
+ The DotNetForum.Library.Utilities.HighLightLanguage namespace contains types which
+ </summary>
+ </member>
</members>
</doc>
Modified: v2/DNFLib/DotNetForum.Library.xml
===================================================================
--- v2/DNFLib/DotNetForum.Library.xml 2007-01-29 18:07:53 UTC (rev 689)
+++ v2/DNFLib/DotNetForum.Library.xml 2007-01-29 19:34:36 UTC (rev 690)
@@ -2144,7 +2144,7 @@
Forces the object to revert previous unchanged state, rolls back any changes
</summary>
</member>
- <member name="M:DotNetForum.Library.BOL.User.#ctor(DotNetForum.Library.BOL.UserSession,System.Int64,System.String,System.String,System.Boolean,System.String,System.String,System.DateTime,System.String,System.String,System.String,System.String,System.Boolean,System.String,System.String,System.Int32,System.Int32,System.DateTime,System.DateTime,System.String,System.DateTime,System.String,System.String,System.Boolean,System.Int32,System.Int32,System.String,System.Boolean,System.Boolean,System.Boolean,System.Boolean)">
+ <member name="M:DotNetForum.Library.BOL.User.#ctor(DotNetForum.Library.BOL.UserSession,System.Int64,System.String,System.String,System.Boolean,System.String,System.String,System.DateTime,System.String,System.String,System.String,System.String,System.Boolean,System.String,System.String,System.Int32,System.Int32,System.DateTime,System.DateTime,System.String,System.DateTime,System.String,System.String,System.Boolean,System.Int32,System.Int32,System.String,System.Boolean,System.Boolean,System.Boolean,System.Boolean,System.DateTime)">
<summary>
Constructor for a user
</summary>
@@ -2239,6 +2239,11 @@
</summary>
<returns></returns>
</member>
+ <member name="P:DotNetForum.Library.BOL.User.PasswordLastChanged">
+ <summary>
+ Get the date/time when the user password was last changed
+ </summary>
+ </member>
<member name="P:DotNetForum.Library.BOL.User.AllowSmilies">
<summary>
Allow Smilies
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|