OSDN Git Service

新しいパスワードを入力しないと更新できないようにした
authorkonekoneko <jbh03215@hotmail.co.jp>
Mon, 6 May 2013 08:23:12 +0000 (17:23 +0900)
committerkonekoneko <jbh03215@hotmail.co.jp>
Mon, 6 May 2013 08:23:12 +0000 (17:23 +0900)
configure.js
init.js
profile.js
public/profile/edit.ejs
resources.js

index 23a945a..9796d18 100644 (file)
        //      textとpasswordの場合、最大長を指定する\r
        //defaultvalue デフォルト値を指定する\r
        //primary プライマリーキーとして指定するなら真。そうでないなら偽\r
-       //isnotempty:真なら必須メンバーであることを表し、そうでないなら空欄でも構わないことを表す\r
+       //isnotempty 真なら必須メンバーであることを表し、そうでないなら空欄でも構わないことを表す\r
+       //nodefinetable 真ならテーブルの項目に登録しないことを表し、そうでないなら登録することを表す\r
        //visible 詳細画面に表示するなら真。そうでないなら偽\r
        //visible_edit 編集画面に表示するなら真。そうでないなら偽\r
+       //mustmatchitem 編集時に一致しなければならない項目を指定する\r
        //rule バリテーション時に実行される関数を指定する\r
+       // 呼び出される関数の第一パラメーターはバリテーションの対象となるデーターで、第二パラメーターはデーター型となる\r
        // 実行される関数でバリテーションが成功した場合、nullを返さなければならない\r
        alias : {\r
        //name以外の項目を編集しないでください。正常に動作しなくなります\r
                                length : 32,\r
                                visible : false,\r
                                visible_edit : true,\r
+                               isnotempty : true\r
+                       },\r
+               newpassword :\r
+                       {\r
+                               name : "",\r
+                               type : "password",\r
+                               length : 32,\r
+                               visible : false,\r
+                               visible_edit : true,\r
+                               mustmatchitem : "password",\r
+                               nodefinetable : true,\r
                        },\r
                lastmodified :\r
                        {\r
diff --git a/init.js b/init.js
index 9df557e..0370eaa 100644 (file)
--- a/init.js
+++ b/init.js
@@ -117,6 +117,8 @@ function GetCreateQuery(def,tablename)
        var result = "CREATE TABLE " + tablename + "(";
        for(key in def)
        {
+               if(typeof(def[key].nodefinetable) != "undefined" && def[key].nodefinetable)
+                       continue;
                switch(def[key].type)
                {
                        case "text":
index 5c10efc..c0b190e 100644 (file)
@@ -201,10 +201,7 @@ function edit_postproc(req, res)
                }\r
                async.waterfall([\r
                        function(cb){\r
-                               if(typeof(req.body.updatepassword) == "undefined")\r
-                                       collection.UpdatAsync(req.body.name,req.body,null,cb);\r
-                               else\r
-                                       collection.UpdatAsync(req.body.name,req.body,req.body.password,cb);\r
+                               collection.UpdatAsync(req.body.name,req.body,cb);\r
                        },\r
                ],function(err,result){\r
                        if(err != null)\r
@@ -292,8 +289,8 @@ function ProfileCollection()
                var item = GetItem(data);;\r
                pool.query("INSERT INTO profilelist SET ?",[item],cb);\r
        }\r
-       this.UpdatAsync = function(name,data,newpassword,cb){\r
-               var item = GetItem(data,newpassword);\r
+       this.UpdatAsync = function(name,data,cb){\r
+               var item = GetItem(data);\r
                pool.query("UPDATE profilelist SET ? WHERE name = ?",[item,name],cb);\r
        }\r
        this.ClearAsync = function(cb){\r
@@ -328,23 +325,17 @@ function ProfileCollection()
                };\r
                for(var key in config.alias)\r
                {\r
+                       if(typeof(config.alias[key].nodefinetable) != "undefined" && \r
+                               config.alias[key].nodefinetable)\r
+                               continue;\r
                        if(config.alias[key].visible_edit)\r
                        {\r
                                if(config.alias[key].type == "password")\r
-                               {\r
-                                       if(typeof(newpw) != "undefined")\r
-                                               data[key] = newpw;\r
-                                       if(data[key] != null)\r
-                                               item[key] = md5_hex(data[key]);\r
-                               }\r
+                                       item[key] = md5_hex(data[key]);\r
                                else if(data[key] == "" && typeof(config.alias[key].defaultvalue) != "undefined")\r
-                               {\r
                                        item[key] = config.alias[key].defaultvalue;\r
-                               }\r
                                else\r
-                               {\r
                                        item[key] = data[key];\r
-                               }\r
                        }\r
                }\r
                return item;\r
@@ -373,10 +364,17 @@ function Validator()
                        if(typeof(alias[key].isnotempty) != "undefined" &&\r
                                alias[key].isnotempty && body[key] == "")\r
                                        message = resource.is_not_empty;\r
-                       message = IsValidate(body[key],alias[key].type,alias[key].rule);\r
+                       else if(typeof(alias[key].mustmatchitem) != "undefined" &&\r
+                               body[key] != body[alias[key].mustmatchitem])\r
+                                       message = util.format(resource.must_match_item,alias[alias[key].mustmatchitem].name); \r
+                       else\r
+                               message = IsValidate(body[key],alias[key].type,alias[key].rule);\r
                        if(message != null)\r
                        {\r
-                               this.Message += "<p>" + alias[key].name + ":" + message + "</p>\n";\r
+                               if(alias[key].name == "")\r
+                                       this.Message += "<p>" + message + "</p>\n";\r
+                               else\r
+                                       this.Message += "<p>" + alias[key].name + ":" + message + "</p>\n";\r
                                result = true;\r
                        }\r
                }\r
index a00a9b1..126a7cf 100644 (file)
@@ -19,7 +19,6 @@
                                                <textarea name="<%= key %>" rows="4" cols="50"><%= list[0][key] %></textarea>\r
                                        <% }else if(alias[key].type == "password"){ %>\r
                                                <input type="text" value="" name="<%= key %>"/><br/>\r
-                                               <input type="checkbox" name="update<%= key %>" value="true">更新する</input>\r
                                        <% }else{ %>\r
                                                <input type="text" value="<%= list[0][key] %>" name="<%= key %>"/>\r
                                        <% } %>\r
index e18b37d..bf2cf48 100644 (file)
@@ -14,4 +14,5 @@
        is_not_string : "文字列ではありません",\r
        is_not_number : "数字ではありません",\r
        is_not_mail : "メールアドレスではありません",\r
+       must_match_item : "%sは一致させなければなりません",\r
 };\r