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