OSDN Git Service

編集時にパスワードが空欄な場合、パスワードを更新しないようにした
[webchat/WebChat.git] / profile.js
index 9aedfcc..dc140f9 100644 (file)
@@ -194,7 +194,7 @@ function edit_postproc(req, res)
                return;\r
        }else if(typeof(req.body.edit) != "undefined"){\r
                var validator = new Validator();\r
-               var result = validator.Validate(req.body,config.alias);\r
+               var result = validator.Validate(req.body,config.alias,true);\r
                if(result.length > 0)\r
                {\r
                        RenderMessage(res,result,req.session.items);\r
@@ -219,7 +219,7 @@ function registor_postproc(req, res)
 {\r
        if(typeof(req.body.registor) != "undefined"){\r
                var validator = new Validator();\r
-               var result = validator.Validate(req.body,config.alias);\r
+               var result = validator.Validate(req.body,config.alias,false);\r
                if(result.length > 0)\r
                {\r
                        RenderMessage(res,result,req.session.items);\r
@@ -335,11 +335,18 @@ function ProfileCollection()
                        if(config.alias[key].visible_edit)\r
                        {\r
                                if(config.alias[key].type == "password")\r
-                                       item[key] = md5_hex(data[key]);\r
+                               {\r
+                                       if(data[key] != "")\r
+                                               item[key] = md5_hex(data[key]);\r
+                               }\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
@@ -357,7 +364,8 @@ function Validator()
        //\r
        // @body バリテーションの対象となる連想配列\r
        // @alias バリテーションを行う要素のリスト\r
-       this.Validate = function(body,alias){\r
+       // @editflag 編集時なら真\r
+       this.Validate = function(body,alias,editflag){\r
                var result = new Array();\r
                for(var key in alias)\r
                {\r
@@ -367,6 +375,10 @@ function Validator()
                        if(typeof(alias[key].isnotempty) != "undefined" &&\r
                                alias[key].isnotempty && body[key] == "")\r
                                        message = resource.is_not_empty;\r
+                       else if(typeof(alias[key].isnotemptyonregistor) != "undefined" &&\r
+                               alias[key].isnotemptyonregistor && body[key] == "" &&\r
+                               !editflag)\r
+                                       message = resource.is_not_empty;\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