From: Sungmin Kim Date: Fri, 9 May 2014 07:11:13 +0000 (+0900) Subject: Added password reset in admin user page. X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=2bc8daf2536f67c1fdb764acb016a2d25e754227;p=sdk%2Ftools%2Fsdk-build.git Added password reset in admin user page. Signed-off-by: Sungmin Kim Change-Id: Ic706a7911e8a1df4c3e39c722c7b11cd9c4afcb0 --- diff --git a/dibs-web/app/controllers/admin_user_controller.rb b/dibs-web/app/controllers/admin_user_controller.rb index 07158e1..bfdc01a 100644 --- a/dibs-web/app/controllers/admin_user_controller.rb +++ b/dibs-web/app/controllers/admin_user_controller.rb @@ -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 diff --git a/dibs-web/config/routes.rb b/dibs-web/config/routes.rb index 851c7e8..f5e8eb1 100644 --- a/dibs-web/config/routes.rb +++ b/dibs-web/config/routes.rb @@ -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" diff --git a/dibs-web/public/index.html b/dibs-web/public/index.html index 3fa83cd..c7beeaa 100644 --- a/dibs-web/public/index.html +++ b/dibs-web/public/index.html @@ -360,6 +360,7 @@ Contributors:
+ Reset password Save
diff --git a/dibs-web/public/javascripts/admin-user-modify.js b/dibs-web/public/javascripts/admin-user-modify.js index 5dc67f8..7081231 100644 --- a/dibs-web/public/javascripts/admin-user-modify.js +++ b/dibs-web/public/javascripts/admin-user-modify.js @@ -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; + } +} diff --git a/dibs-web/public/javascripts/dibs-api.js b/dibs-web/public/javascripts/dibs-api.js index 1903938..c08d1db 100644 --- a/dibs-web/public/javascripts/dibs-api.js +++ b/dibs-web/public/javascripts/dibs-api.js @@ -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);