Add: account_validator
This commit is contained in:
@@ -0,0 +1,54 @@
|
||||
class AccountValidator {
|
||||
|
||||
constructor() {
|
||||
this.patternMaestroID = /^[A-Za-z]{1}[A-Za-z0-9]{3,19}$/;
|
||||
this.patternMaestroPW = /^[A-Za-z0-9]{4,16}$/;
|
||||
}
|
||||
|
||||
isValidMaestroID(textID) {
|
||||
if(!this.patternMaestroID.test(textID))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
messageForInvalidMaestroID(textID) {
|
||||
if(textID.length < AccountValidator.MAESTRO_ID_LENGTH_MINIMUM)
|
||||
return "마에스트로 계정명은 " + AccountValidator.MAESTRO_ID_LENGTH_MINIMUM + "글자 이상이어야 합니다.";
|
||||
else if(textID.length > AccountValidator.MAESTRO_ID_LENGTH_MAXIMUM)
|
||||
return "마에스트로 계정명은 " + AccountValidator.MAESTRO_ID_LENGTH_MAXIMUM + "글자 이하이어야 합니다.";
|
||||
else if(!(/^[A-Za-z]/.test(textID)))
|
||||
return "마에스트로 계정명은 알파벳으로 시작해야 합니다.";
|
||||
else if((/[^\w]/g).test(textID))
|
||||
return "마에스트로 계정명은 알파벳과 숫자로만 적어주세요.";
|
||||
}
|
||||
|
||||
|
||||
isValidMaestroPW(textPW) {
|
||||
if(!this.patternMaestroPW.test(textPW))
|
||||
return false;
|
||||
|
||||
return true;
|
||||
}
|
||||
|
||||
messageForInvalidMaestroPW(textPW) {
|
||||
console.log(textPW);
|
||||
if(textPW.length < AccountValidator.MAESTRO_PW_LENGTH_MINIMUM)
|
||||
return "마에스트로의 암호는 " + AccountValidator.MAESTRO_PW_LENGTH_MINIMUM + "글자 이상이어야 합니다.";
|
||||
else if(textPW.length > AccountValidator.MAESTRO_PW_LENGTH_MAXIMUM)
|
||||
return "마에스트로의 암호는 " + AccountValidator.MAESTRO_PW_LENGTH_MAXIMUM + "글자 이하이어야 합니다.";
|
||||
else if((/[^\w]/g).test(textPW))
|
||||
return "마에스트로의 암호는 알파벳과 숫자로만 적어주세요.";
|
||||
else
|
||||
return "???";
|
||||
}
|
||||
|
||||
|
||||
}
|
||||
|
||||
|
||||
AccountValidator.MAESTRO_ID_LENGTH_MINIMUM = 4;
|
||||
AccountValidator.MAESTRO_ID_LENGTH_MAXIMUM = 20;
|
||||
|
||||
AccountValidator.MAESTRO_PW_LENGTH_MINIMUM = 4;
|
||||
AccountValidator.MAESTRO_PW_LENGTH_MAXIMUM = 16;
|
||||
@@ -10,6 +10,7 @@
|
||||
|
||||
<script type="text/javascript" src="./../../../resources/jquery/jquery-3.3.1.min.js"></script>
|
||||
<script type="text/javascript" src="./../js/main.js"></script>
|
||||
<script type="text/javascript" src="./../js/lib/account_validator.js"></script>
|
||||
<script type="text/javascript" src="./../js/request_server.js"></script>
|
||||
<script type="text/javascript">
|
||||
$(document).ready(function() {
|
||||
|
||||
@@ -38,15 +38,22 @@ let selectedAccountTypeText = "";
|
||||
|
||||
let tab1, tab2, tab3;
|
||||
|
||||
let accountValidator = new AccountValidator();
|
||||
|
||||
$(document).ready(function() {
|
||||
tab1 = $("#page-tabs li").filter(":eq(0)");
|
||||
tab2 = $("#page-tabs li").filter(":eq(1)");
|
||||
tab3 = $("#page-tabs li").filter(":eq(2)");
|
||||
});
|
||||
|
||||
function check_id() {
|
||||
function checkMaestroID() {
|
||||
maestro_name = $("#maestro_name").val();
|
||||
|
||||
if(!accountValidator.isValidMaestroID(maestro_name)) {
|
||||
onErrorMaestroID(accountValidator.messageForInvalidMaestroID(maestro_name));
|
||||
return;
|
||||
}
|
||||
|
||||
sendRequestServer( //url, sendParams, onSuccess, onFail, isDebugMode);
|
||||
"./../server/maestro/check_id.php",
|
||||
"maestro_name=" + maestro_name,
|
||||
@@ -58,20 +65,31 @@ function check_id() {
|
||||
|
||||
(errorMessage, errorCode) => {
|
||||
isAvailableID = false;
|
||||
|
||||
if($("#error_message").length) {
|
||||
$("#error_message").text(errorMessage);
|
||||
}
|
||||
|
||||
$("#maestro_name").val("");
|
||||
$("#maestro_name").focus();
|
||||
onErrorMaestroID(errorMessage);
|
||||
}
|
||||
|
||||
);
|
||||
}
|
||||
|
||||
function onErrorMaestroID(message) {
|
||||
if($("#error_message").length) {
|
||||
$("#error_message").text(message);
|
||||
}
|
||||
|
||||
function check_data() {
|
||||
$("#maestro_name").val("");
|
||||
$("#maestro_name").focus();
|
||||
}
|
||||
|
||||
function onErrorMaestroPW(message) {
|
||||
if($("#error_message").length) {
|
||||
$("#error_message").text(message);
|
||||
}
|
||||
|
||||
$("#password").val("");
|
||||
$("#password").focus();
|
||||
}
|
||||
|
||||
function checkData() {
|
||||
if(!isAvailableID) {
|
||||
$("#error_message").text("아이디 중복 확인을 해 주세요.");
|
||||
$("#check_id").focus();
|
||||
@@ -79,11 +97,15 @@ function check_data() {
|
||||
}
|
||||
|
||||
password = $("#password").val();
|
||||
if(password.length === 0) {
|
||||
$("#error_message").text("패스워드를 입력해 주세요.");
|
||||
$("#password").focus();
|
||||
if(!accountValidator.isValidMaestroPW(password)) {
|
||||
onErrorMaestroPW(accountValidator.messageForInvalidMaestroPW(password));
|
||||
return;
|
||||
}
|
||||
// if(password.length === 0) {
|
||||
// $("#error_message").text("패스워드를 입력해 주세요.");
|
||||
// $("#password").focus();
|
||||
// return;
|
||||
// }
|
||||
|
||||
email = $("#email").val();
|
||||
if(email.length === 0) {
|
||||
@@ -110,6 +132,8 @@ function check_data() {
|
||||
$(".account_type").append(selectedAccountTypeText);
|
||||
$(".price_account").append(selectedAccountTypeText);
|
||||
|
||||
$("#error_message").text("");
|
||||
|
||||
$("#input_data").css("display", "none");
|
||||
$("#register_account").css("display", "block");
|
||||
|
||||
@@ -170,7 +194,7 @@ function register_account() {
|
||||
<div id="input_data">
|
||||
|
||||
(필수) 마에스트로 아이디 : <input type="text" id="maestro_name" value="test" >
|
||||
<button id="check_id" onClick="check_id()">중복 확인</button><br/>
|
||||
<button id="check_id" onClick="checkMaestroID()">중복 확인</button><br/>
|
||||
(필수) 암호 : <input id="password" value="test" type="password" name="password"><br/>
|
||||
(필수) 이메일 : <input id="email" value="test@test.com" name="email"><br/>
|
||||
(필수) 학생 수 :
|
||||
@@ -211,7 +235,7 @@ function register_account() {
|
||||
</ul>
|
||||
|
||||
<div class="col alignCenter">
|
||||
<a id="maestro_register" class="btn btn-sea width400" onClick="check_data()">등록 신청</a>
|
||||
<a id="maestro_register" class="btn btn-sea width400" onClick="checkData()">등록 신청</a>
|
||||
</div>
|
||||
|
||||
</div>
|
||||
|
||||
@@ -55,7 +55,7 @@ function get_maestro_list_by_name($maestroName) {
|
||||
|
||||
$query = "
|
||||
SELECT MaestroID, Name, AccountType FROM moty_maestro
|
||||
WHERE Name=? AND ActivateStatus=0
|
||||
WHERE Name LIKE CONCAT('%', ?, '%') AND ActivateStatus=0
|
||||
ORDER BY MaestroID DESC
|
||||
";
|
||||
$stmt = $db_conn->prepare($query);
|
||||
|
||||
@@ -13,6 +13,8 @@
|
||||
<script src="https://code.jquery.com/qunit/qunit-2.6.0.js"></script>
|
||||
<script src="../resources/js/phaser.min.js"></script>
|
||||
|
||||
<script src="../src/web/js/lib/account_validator.js"></script>
|
||||
|
||||
<script src="../src/game/typing/lib/typing_text_manager.js"></script>
|
||||
<script src="../src/game/lib/score_manager.js"></script>
|
||||
<script src="../src/game/lib/session_storage_manager.js"></script>
|
||||
|
||||
+93
-29
@@ -1,3 +1,67 @@
|
||||
//////////////////////////////////////////////////
|
||||
// AccountValidator
|
||||
|
||||
let accountValidator = new AccountValidator();
|
||||
|
||||
QUnit.test( "AccountValidator - isValidMaestroID", function( assert ) {
|
||||
let text = "";
|
||||
assert.equal(accountValidator.isValidMaestroID(text), false, "isValidMaestroID - no text");
|
||||
text = "1abcde";
|
||||
assert.equal(accountValidator.isValidMaestroID(text), false, "isValidMaestroID - " + text);
|
||||
text = "abc";
|
||||
assert.equal(accountValidator.isValidMaestroID(text), false, "isValidMaestroID - " + text);
|
||||
text = "a1b";
|
||||
assert.equal(accountValidator.isValidMaestroID(text), false, "isValidMaestroID - " + text);
|
||||
text = "abcdeabcdeabcdeabcdea";
|
||||
assert.equal(accountValidator.isValidMaestroID(text), false, "isValidMaestroID - " + text);
|
||||
|
||||
text = "abcd";
|
||||
assert.equal(accountValidator.isValidMaestroID(text), true, "isValidMaestroID - " + text);
|
||||
text = "aA1Bccd";
|
||||
assert.equal(accountValidator.isValidMaestroID(text), true, "isValidMaestroID - " + text);
|
||||
text = "abcdeabcdeabcdeabcde";
|
||||
assert.equal(accountValidator.isValidMaestroID(text), true, "isValidMaestroID - " + text);
|
||||
});
|
||||
|
||||
QUnit.test( "AccountValidator - isValidMaestroPW", function( assert ) {
|
||||
let text = "";
|
||||
text = "";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text);
|
||||
text = "1";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text);
|
||||
text = "12";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text);
|
||||
text = "123";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text);
|
||||
text = "1234";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), true, "isValidMaestroPW - " + text);
|
||||
text = "12345";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), true, "isValidMaestroPW - " + text);
|
||||
text = "123456";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), true, "isValidMaestroPW - " + text);
|
||||
text = "1234567";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text);
|
||||
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - no text");
|
||||
text = "1abcde";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text);
|
||||
text = "abc";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text);
|
||||
text = "a1b";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text);
|
||||
text = "abcdeabcdeabcdeabcdea";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text);
|
||||
|
||||
text = "abcd";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text);
|
||||
text = "aA1Bccd";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroPW - " + text);
|
||||
text = "abcdeabcdeabcdeabcde";
|
||||
assert.equal(accountValidator.isValidMaestroPW(text), false, "isValidMaestroID - " + text);
|
||||
});
|
||||
|
||||
|
||||
|
||||
//////////////////////////////////////////////////
|
||||
// TypingTextManager
|
||||
|
||||
@@ -140,15 +204,15 @@ dbConnectManager.setMaestroID(0);
|
||||
dbConnectManager.setPlayerID(0);
|
||||
dbConnectManager.setDateTime("2018-05-16", "14:50:00");
|
||||
|
||||
QUnit.test( "DBConnectManager - User login", function( assert ) {
|
||||
QUnit.test( "DBConnectManager - Player login", function( assert ) {
|
||||
let returnPlayerID = -1;
|
||||
|
||||
let done = assert.async();
|
||||
setTimeout(function() {
|
||||
dbConnectManager.requestCheckUserLogin(
|
||||
dbConnectManager.requestCheckPlayerLogin(
|
||||
"jisangs", "test", "111111",
|
||||
(jsonData) => {
|
||||
returnPlayerID = jsonData["UserID"];
|
||||
returnPlayerID = jsonData["PlayerID"];
|
||||
assert.equal(returnPlayerID, 31);
|
||||
done();
|
||||
},
|
||||
@@ -162,7 +226,7 @@ QUnit.test( "DBConnectManager - User login", function( assert ) {
|
||||
|
||||
QUnit.test( "DBConnectManager - Player history", function( assert ) {
|
||||
sessionStorageManager.maestroID = 1; // jisangs
|
||||
sessionStorageManager.playerUserID = "8"; // 부현율
|
||||
sessionStorageManager.playerID = "8"; // 부현율
|
||||
sessionStorageManager.playingAppID = 29;
|
||||
let date = "2018-05-16";
|
||||
|
||||
@@ -205,13 +269,13 @@ QUnit.test( "DBConnectManager - Player ranking", function( assert ) {
|
||||
(type, rankingRecordManager) => {
|
||||
assert.equal(rankingRecordManager.getRankAt(0), 1, "hour");
|
||||
assert.equal(rankingRecordManager.getBestRecordAt(0), 302.921, "hour");
|
||||
assert.equal(rankingRecordManager.getUserIDAt(0), 5, "hour");
|
||||
assert.equal(rankingRecordManager.getUserNameAt(0), "김지유", "hour");
|
||||
assert.equal(rankingRecordManager.getPlayerIDAt(0), 5, "hour");
|
||||
assert.equal(rankingRecordManager.getPlayerNameAt(0), "김지유", "hour");
|
||||
|
||||
assert.equal(rankingRecordManager.getRankAt(5), 6, "hour");
|
||||
assert.equal(rankingRecordManager.getBestRecordAt(5), 128.436, "hour");
|
||||
assert.equal(rankingRecordManager.getUserIDAt(5), 22, "hour");
|
||||
assert.equal(rankingRecordManager.getUserNameAt(5), "모윤건", "hour");
|
||||
assert.equal(rankingRecordManager.getPlayerIDAt(5), 22, "hour");
|
||||
assert.equal(rankingRecordManager.getPlayerNameAt(5), "모윤건", "hour");
|
||||
|
||||
done();
|
||||
}
|
||||
@@ -227,13 +291,13 @@ QUnit.test( "DBConnectManager - Player ranking", function( assert ) {
|
||||
(type, rankingRecordManager) => {
|
||||
assert.equal(rankingRecordManager.getRankAt(0), 1, "day");
|
||||
assert.equal(rankingRecordManager.getBestRecordAt(0), 313.304, "day");
|
||||
assert.equal(rankingRecordManager.getUserIDAt(0), 19, "day");
|
||||
assert.equal(rankingRecordManager.getUserNameAt(0), "오지운", "day");
|
||||
assert.equal(rankingRecordManager.getPlayerIDAt(0), 19, "day");
|
||||
assert.equal(rankingRecordManager.getPlayerNameAt(0), "오지운", "day");
|
||||
|
||||
assert.equal(rankingRecordManager.getRankAt(17), 18, "day");
|
||||
assert.equal(rankingRecordManager.getBestRecordAt(17), 65.337, "day");
|
||||
assert.equal(rankingRecordManager.getUserIDAt(17), 20, "day");
|
||||
assert.equal(rankingRecordManager.getUserNameAt(17), "김민성", "day");
|
||||
assert.equal(rankingRecordManager.getPlayerIDAt(17), 20, "day");
|
||||
assert.equal(rankingRecordManager.getPlayerNameAt(17), "김민성", "day");
|
||||
|
||||
done();
|
||||
}
|
||||
@@ -249,13 +313,13 @@ QUnit.test( "DBConnectManager - Player ranking", function( assert ) {
|
||||
(type, rankingRecordManager) => {
|
||||
assert.equal(rankingRecordManager.getRankAt(0), 1, "month");
|
||||
assert.equal(rankingRecordManager.getBestRecordAt(0), 617.231, "month");
|
||||
assert.equal(rankingRecordManager.getUserIDAt(0), 50, "month");
|
||||
assert.equal(rankingRecordManager.getUserNameAt(0), "강민준", "month");
|
||||
assert.equal(rankingRecordManager.getPlayerIDAt(0), 50, "month");
|
||||
assert.equal(rankingRecordManager.getPlayerNameAt(0), "강민준", "month");
|
||||
|
||||
assert.equal(rankingRecordManager.getRankAt(17), 18, "month");
|
||||
assert.equal(rankingRecordManager.getBestRecordAt(17), 216.279, "month");
|
||||
assert.equal(rankingRecordManager.getUserIDAt(17), 9, "month");
|
||||
assert.equal(rankingRecordManager.getUserNameAt(17), "신예성", "month");
|
||||
assert.equal(rankingRecordManager.getPlayerIDAt(17), 9, "month");
|
||||
assert.equal(rankingRecordManager.getPlayerNameAt(17), "신예성", "month");
|
||||
|
||||
done();
|
||||
}
|
||||
@@ -307,7 +371,7 @@ QUnit.test( "DBConnectManager - UpdateRecord", function( assert ) {
|
||||
setTimeout(function() {
|
||||
dbConnectManager.requestTodayBestRecord(
|
||||
1, // maestro ID for "jisangs"
|
||||
1, // user ID for jisangs
|
||||
1, // Player ID for jisangs
|
||||
101, // space_invaders app ID
|
||||
(jsonData) => {
|
||||
todayBestRecord = jsonData["BestRecord"];
|
||||
@@ -322,7 +386,7 @@ QUnit.test( "DBConnectManager - UpdateRecord", function( assert ) {
|
||||
setTimeout(function() {
|
||||
dbConnectManager.updateTodayBestRecord(
|
||||
1, // maestro ID for "jisangs"
|
||||
1, // user ID for jisangs
|
||||
1, // Player ID for jisangs
|
||||
101, // space_invaders app ID
|
||||
todayBestRecord + 1000 // new record
|
||||
);
|
||||
@@ -331,7 +395,7 @@ QUnit.test( "DBConnectManager - UpdateRecord", function( assert ) {
|
||||
setTimeout(function() {
|
||||
dbConnectManager.requestTodayBestRecord(
|
||||
1, // maestro ID for "jisangs"
|
||||
1, // user ID for jisangs
|
||||
1, // Player ID for jisangs
|
||||
101, // space_invaders app ID
|
||||
(jsonData) => {
|
||||
let bestRecord = jsonData["BestRecord"];
|
||||
@@ -497,11 +561,11 @@ QUnit.test( "RankingRecordManager - getAt", function( assert ) {
|
||||
assert.equal(rankingRecordManager.getRankAt(0), 4);
|
||||
assert.equal(rankingRecordManager.getRankAt(4), 8);
|
||||
|
||||
assert.equal(rankingRecordManager.getUserIDAt(0), 1);
|
||||
assert.equal(rankingRecordManager.getUserIDAt(4), 5);
|
||||
assert.equal(rankingRecordManager.getPlayerIDAt(0), 1);
|
||||
assert.equal(rankingRecordManager.getPlayerIDAt(4), 5);
|
||||
|
||||
assert.equal(rankingRecordManager.getUserNameAt(0), "김남희");
|
||||
assert.equal(rankingRecordManager.getUserNameAt(4), "신현주");
|
||||
assert.equal(rankingRecordManager.getPlayerNameAt(0), "김남희");
|
||||
assert.equal(rankingRecordManager.getPlayerNameAt(4), "신현주");
|
||||
|
||||
assert.equal(rankingRecordManager.getBestRecordAt(0), 1400);
|
||||
assert.equal(rankingRecordManager.getBestRecordAt(4), 600);
|
||||
@@ -544,15 +608,15 @@ QUnit.test( "SessionStorageManager - PlayerName", function( assert ) {
|
||||
assert.equal(sessionStorageManager.playerName, null, "playerName");
|
||||
});
|
||||
|
||||
QUnit.test( "SessionStorageManager - playerUserID", function( assert ) {
|
||||
QUnit.test( "SessionStorageManager - playerPlayerID", function( assert ) {
|
||||
sessionStorageManager.clear();
|
||||
assert.equal(sessionStorageManager.playerUserID, null, "playerUserID");
|
||||
assert.equal(sessionStorageManager.playerID, null, "playerID");
|
||||
|
||||
sessionStorageManager.playerUserID = 1;
|
||||
assert.equal(sessionStorageManager.playerUserID, 1, "playerUserID");
|
||||
sessionStorageManager.playerID = 1;
|
||||
assert.equal(sessionStorageManager.playerID, 1, "playerID");
|
||||
|
||||
sessionStorageManager.removeItem("playerUserID");
|
||||
assert.equal(sessionStorageManager.playerUserID, null, "playerUserID");
|
||||
sessionStorageManager.removeItem("playerID");
|
||||
assert.equal(sessionStorageManager.playerID, null, "playerID");
|
||||
});
|
||||
|
||||
QUnit.test( "SessionStorageManager - playingAppName", function( assert ) {
|
||||
|
||||
Reference in New Issue
Block a user