Added password reset in admin user page. 57/20557/1
authorSungmin Kim <dev.sungmin.kim@samsung.com>
Fri, 9 May 2014 07:11:13 +0000 (16:11 +0900)
committerSungmin Kim <dev.sungmin.kim@samsung.com>
Fri, 9 May 2014 07:11:13 +0000 (16:11 +0900)
Signed-off-by: Sungmin Kim <dev.sungmin.kim@samsung.com>
Change-Id: Ic706a7911e8a1df4c3e39c722c7b11cd9c4afcb0

dibs-web/app/controllers/admin_user_controller.rb
dibs-web/config/routes.rb
dibs-web/public/index.html
dibs-web/public/javascripts/admin-user-modify.js
dibs-web/public/javascripts/dibs-api.js

index 07158e12042efa84708c13ed8447762e99af790c..bfdc01a5ff41e871c25974150c08ae266d9f8cdd 100644 (file)
@@ -28,163 +28,198 @@ Contributors:
 
 class AdminUserController < ApplicationController
 
-       before_filter :check_login_status, :check_admin_group
-
-       def queryAllUser
-               user_list = User.find(:all, :order => "name")
-
-               doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 )
-               doc.Response {
-                       generate_xml_header(doc)
-               
-                       doc.Data {
-                               user_list.each do |user|
-                                       doc.User {
-                                               doc.Name(user.name)
-                                               doc.Email(user.email)
-                                               doc.Id(user.id)
-                                               doc.GroupList {
-                                                       group_list = Group.find_by_sql("SELECT groups.name
-                                                                                                                                , groups.admin
-                                                                                                                                , groups.description
-                                                                                                                         FROM users
-                                                                                                                        , user_groups
-                                                                                                                        , groups
-                                                                                                                        WHERE users.email = \"#{user.email}\"
-                                                                                                                          AND users.id = user_groups.user_id
-                                                                                                                  AND user_groups.group_id = groups.id
-                                                                                                                        ORDER BY users.name")
-                                                       group_list.each do |group|
-                                                               doc.GroupName(group.name)
-                                                       end
-                                               }
-                                       }
-                               end
-                       }
-               }
-
-               #send_data
-               render :text => out_string, :content_type => "text/xml"
-       end
-
-       def queryUserInfo
-               user_id = params[:user_id]
-
-               user = User.find(:first, :conditions => ["id = ?", user_id])
-
-               doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 )
-               doc.Response {
-                       generate_xml_header(doc)
-               
-                       doc.Data {
-                               doc.User {
-                                       doc.Name(user.name)
-                                       doc.Email(user.email)
-                                       doc.Id(user.id)
-                                       doc.GroupInfo{
-                                               full_group_list = Group.find(:all)
-                                               full_group_list.each do |group|
-                                                       doc.Group {
-                                                               doc.Name(group.name)
-                                                               doc.Id(group.id)
-                                                       }
-                                               end
-
-                                               group_list = Group.find_by_sql("SELECT user_groups.group_id
-                                                                                                                 FROM users
-                                                                                                                , user_groups
-                                                                                                                WHERE users.id = #{user.id}
-                                                                                                                  AND users.id = user_groups.user_id")
-                                               group_id_list = []
-                                               group_list.each do |group|
-                                                       group_id_list.push group.group_id
-                                               end
-                                               doc.GroupIdList(group_id_list.join(","))
-                                       }
-                               }
-                       }
-               }
-
-               #send_data
-               render :text => out_string, :content_type => "text/xml"
-       end
-
-       def modifyUser
-               change_user_list = params[:ChangeInfoList]
-               change_item = change_user_list[0]
-               errmsg = ""
-
-               id = change_item[:Id]
-               email = change_item[:Email]
-               name = change_item[:Name]
-               group_id_list = change_item[:GroupIdList].split(",")
-
-               if id.nil? or 
-                               email.nil? or email.empty?
-                       render :text => "User data is invalid", :status => 406
-                       return
-               end
-
-               user = User.find(:first, :conditions => ["id = ?", id])
-
-               if user.nil? 
-                       errmsg = "Can't find user information"
-                       render :text => errmsg, :status => 406
-                       return
-               end
-
-               if not user.email.eql? email 
-                       check_user = User.find(:first, :conditions => ["email = ?", email])
-                       if not check_user.nil?
-                               errmsg = "Email address already used"
-                               render :text => errmsg, :status => 406
-                               return
-                       end
-
-                       user.email = email 
-               end
-
-               user.name = name
-               user.save
+    before_filter :check_login_status, :check_admin_group
+
+    def queryAllUser
+        user_list = User.find(:all, :order => "name")
+
+        doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 )
+        doc.Response {
+            generate_xml_header(doc)
+        
+            doc.Data {
+                user_list.each do |user|
+                    doc.User {
+                        doc.Name(user.name)
+                        doc.Email(user.email)
+                        doc.Id(user.id)
+                        doc.GroupList {
+                            group_list = Group.find_by_sql("SELECT groups.name
+                                                                 , groups.admin
+                                                                 , groups.description
+                                                              FROM users
+                                                                 , user_groups
+                                                                 , groups
+                                                             WHERE users.email = \"#{user.email}\"
+                                                               AND users.id = user_groups.user_id
+                                                               AND user_groups.group_id = groups.id
+                                                             ORDER BY users.name")
+                            group_list.each do |group|
+                                doc.GroupName(group.name)
+                            end
+                        }
+                    }
+                end
+            }
+        }
+
+        #send_data
+        render :text => out_string, :content_type => "text/xml"
+    end
+
+    def queryUserInfo
+        user_id = params[:user_id]
+
+        user = User.find(:first, :conditions => ["id = ?", user_id])
+
+        doc = Builder::XmlMarkup.new( :target => out_string = "", :indent => 2 )
+        doc.Response {
+            generate_xml_header(doc)
+        
+            doc.Data {
+                doc.User {
+                    doc.Name(user.name)
+                    doc.Email(user.email)
+                    doc.Id(user.id)
+                    doc.GroupInfo{
+                        full_group_list = Group.find(:all)
+                        full_group_list.each do |group|
+                            doc.Group {
+                                doc.Name(group.name)
+                                doc.Id(group.id)
+                            }
+                        end
+
+                        group_list = Group.find_by_sql("SELECT user_groups.group_id
+                                                          FROM users
+                                                             , user_groups
+                                                         WHERE users.id = #{user.id}
+                                                           AND users.id = user_groups.user_id")
+                        group_id_list = []
+                        group_list.each do |group|
+                            group_id_list.push group.group_id
+                        end
+                        doc.GroupIdList(group_id_list.join(","))
+                    }
+                }
+            }
+        }
+
+        #send_data
+        render :text => out_string, :content_type => "text/xml"
+    end
+
+    def modifyUser
+        change_user_list = params[:ChangeInfoList]
+        change_item = change_user_list[0]
+        errmsg = ""
+
+        id = change_item[:Id]
+        email = change_item[:Email]
+        name = change_item[:Name]
+        group_id_list = change_item[:GroupIdList].split(",")
+
+        if id.nil? or 
+                email.nil? or email.empty?
+            render :text => "User data is invalid", :status => 406
+            return
+        end
+
+        user = User.find(:first, :conditions => ["id = ?", id])
+
+        if user.nil? 
+            errmsg = "Can't find user information"
+            render :text => errmsg, :status => 406
+            return
+        end
+
+        if not user.email.eql? email 
+            check_user = User.find(:first, :conditions => ["email = ?", email])
+            if not check_user.nil?
+                errmsg = "Email address already used"
+                render :text => errmsg, :status => 406
+                return
+            end
+
+            user.email = email 
+        end
+
+        user.name = name
+        user.save
+
+        UserGroup.delete_all(["user_id = ?", user.id])
+
+        if not group_id_list.nil? 
+            group_id_list.each do |group_id|
+                user_groups = UserGroup.new
+                
+                user_groups.user_id = user.id
+                user_groups.group_id = group_id
+                user_groups.status = "ACTIVE"
+                user_groups.save
+            end
+        end
+
+        render :json => { :success => "OK!" }
+    end
+
+    def resetUser 
+        change_user_list = params[:ChangeInfoList]
+        change_item = change_user_list[0]
+        errmsg = ""
+
+        id = change_item[:Id]
+        email = change_item[:Email]
+
+        if id.nil? or email.nil? or email.empty?
+            render :text => "User data is invalid", :status => 406
+            return
+        end
+
+        user = User.find(:first, :conditions => ["id = ?", id])
+
+        if user.nil? 
+            errmsg = "Can't find user information"
+            render :text => errmsg, :status => 406
+            return
+        end
+
+        if not user.email.eql? email 
+            errmsg = "Email address already used"
+            render :text => errmsg, :status => 406
+            return
+        end
+
+               user.password = user.email
+               user.password_confirmation = user.email
 
-               UserGroup.delete_all(["user_id = ?", user.id])
+               user.save
 
-               if not group_id_list.nil? 
-                       group_id_list.each do |group_id|
-                               user_groups = UserGroup.new
-                
-                               user_groups.user_id = user.id
-                               user_groups.group_id = group_id
-                               user_groups.status = "ACTIVE"
-                               user_groups.save
-                       end
-               end
-
-               render :json => { :success => "OK!" }
-       end
-
-       def removeUser
-               change_user_list = params[:ChangeInfoList]
-               change_item = change_user_list[0]
-               errmsg = ""
-
-               id = change_item[:Id]
-               if id.nil? 
-                       render :text => "User infomation invalid", :status => 406
-                       return
-               end
-                       
-               user = User.find(:first, :conditions => ["id = ?", id])
-
-               if user.nil?
-                       errmsg = "Can't find user information"
-                       render :text => errmsg, :status => 406
-                       return
-               end
-               
-               UserGroup.delete_all(["user_id = ?", user.id])
-
-               user.destroy
-               render :json => { :success => "OK!" }
-       end
+        render :json => { :success => "OK!" }
+    end
+
+    def removeUser
+        change_user_list = params[:ChangeInfoList]
+        change_item = change_user_list[0]
+        errmsg = ""
+
+        id = change_item[:Id]
+        if id.nil? 
+            render :text => "User infomation invalid", :status => 406
+            return
+        end
+            
+        user = User.find(:first, :conditions => ["id = ?", id])
+
+        if user.nil?
+            errmsg = "Can't find user information"
+            render :text => errmsg, :status => 406
+            return
+        end
+        
+        UserGroup.delete_all(["user_id = ?", user.id])
+
+        user.destroy
+        render :json => { :success => "OK!" }
+    end
 end
index 851c7e880a33b935f7f4ad0110d0d80216d37eb3..f5e8eb1ba31cf1aad6bc6687d66fe8e821b64731 100644 (file)
@@ -83,6 +83,7 @@ Dibs::Application.routes.draw do
        get "admin_user/queryUserInfo/:user_id" => "admin_user#queryUserInfo" 
        post "admin_user/removeUser" 
        post "admin_user/modifyUser" 
+       post "admin_user/resetUser" 
 
        # admin server
        get "admin_server/queryAllServer" 
index 3fa83cd0a912cae9bb97bfc1f1498e5400a86773..c7beeaa5e625565aea1d929ddc1dd637dea9dc7b 100644 (file)
@@ -360,6 +360,7 @@ Contributors:
                        </form>
                </div>
                <div align="right" style="font-size: 10px">
+                       <a href=#adminUser onClick="adminUserResetPassword()" data-role="button" data-inline="true" data-mini="true" data-icon="gear" id="adminUserModify-reset">Reset password</a>
                        <a href=#adminUser onClick="adminUserModify()" data-role="button" data-inline="true" data-mini="true" data-icon="gear" id="adminUserModify-save">Save</a>
                </div>
        </div><!-- /page -->
index 5dc67f89f3312676063cf315a8eb77516b8ca5d0..7081231418c78e318130ffc247d879846deae86b 100644 (file)
@@ -87,3 +87,21 @@ function adminUserModify() {
        });
 }
 
+function adminUserResetPassword() {
+    if(confirm('Are you sure reset password?')) {
+           var changeInfoList = [];
+           var changeInfoItem;
+           var id = $("#adminUserModify-id").val();
+           var email = $("#adminUserModify-email").val();
+
+           changeInfoItem = {"Type":"Reset password", "Id":id, "Email":email};
+           changeInfoList.push(changeInfoItem);
+
+           resetPasswordUser(changeInfoList, function () { 
+            alert('Password is "'+email+'"');
+        });
+    }
+    else {
+        return -1;
+    }
+}
index 19039383bc9c7538e5b50a5c040c6df523862f54..c08d1dbf0262845b172cf028b824b06d2a7a55db 100644 (file)
@@ -147,6 +147,11 @@ function changeUser(changeInfoList, successFunction) {
        postForServer(url, changeInfoList, successFunction);
 }
 
+function resetPasswordUser(changeInfoList, successFunction) {
+       var url = 'admin_user/resetUser';
+       postForServer(url, changeInfoList, successFunction);
+}
+
 function removeUser(changeInfoList, successFunction) {
        var url = 'admin_user/removeUser';
        postForServer(url, changeInfoList, successFunction);