huahaiyan 6 năm trước cách đây
mục cha
commit
f097ffa895

+ 205 - 0
src/dashoo.cn/backend/api/controllers/casbin/user.go

@@ -1,9 +1,11 @@
 package casbin
 
 import (
+	"dashoo.cn/backend/api/business/organize"
 	"dashoo.cn/business2/userRole"
 	"dashoo.cn/business2/permission"
 	"dashoo.cn/backend/api/models"
+	"encoding/json"
 	"strings"
 
 	. "dashoo.cn/backend/api/controllers"
@@ -16,6 +18,22 @@ type UserController struct {
 	BaseController
 }
 
+type UserModel struct {
+	Username       string `json:"username"`
+	Realname       string `json:"realname"`
+	Telephone      string `json:"telephone"`
+	Mobile         string `json:"mobile"`
+	Description    string `json:"description"`
+	Photo          string `json:"photo"`
+	Role           string `json:"role"`
+	Id             int    `json:"id"`
+	ChannelIds     string `json:"channelids"`
+	Password       string `json:"password"`
+	DepartmentId   string `json:"departmentid"`
+	DepartmentName string `json:"departmentname"`
+	Sign           string `json:"sign"`
+}
+
 // @Title get
 // @Description get user by token
 // @Param	uid		path 	string	true		"The key for staticblock"
@@ -146,3 +164,190 @@ func (this *UserController) UserPowerPostRole() {
 		this.ServeJSON()
 	}
 }
+// @Title 创建用户
+// @Description 创建用户
+// @Param	body	body	business.device.DeviceChannels	"传感器信息"
+// @Success	200	{object} controllers.Request
+// @router / [post]
+func (this *UserController) AddUser() {
+	/*var model UserModel
+	var jsonblob = this.Ctx.Input.RequestBody
+	json.Unmarshal(jsonblob, &model)
+	var errinfo ErrorDataInfo
+	departidint, _ := utils.StrTo(model.DepartmentId).Int()
+	if departidint < 1 {
+		errinfo.Message = "请选择所属组织!"
+		errinfo.Code = -3
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+		return
+	}
+	//获取组织名称
+	svcorg := organize.GetOrganizeService(utils.DBE)
+	model.DepartmentName = svcorg.GetNameById(model.DepartmentId)
+
+	var userentity userRole.Base_User
+	userentity.Roleid, _ = utils.StrTo(model.Role).Int()
+	if userentity.Roleid == 0 {
+		//userentity.Roleid = 10000123 //普通用户
+	}
+	userentity.Username = model.Username
+	userentity.Realname = model.Realname
+	userentity.Telephone = model.Telephone
+	userentity.Mobile = model.Mobile
+	if model.Sign == "" {
+		userentity.Description = model.Description
+	} else {
+		userentity.Description = model.Sign
+	}
+	userentity.Photo = model.Photo
+
+	currentuser := this.User
+	userentity.Createuserid, _ = utils.StrTo(currentuser.Id).Int()
+	userentity.Createby = currentuser.Realname
+	userentity.AccCode = this.GetAccode()
+
+	userentity.QRCode = utils.GetGuid()
+	userentity.Departmentid = model.DepartmentId
+	userentity.Departmentname = model.DepartmentName
+
+	//salt := utils.GetRandomString(5)
+	//userentity.Userpassword = fmt.Sprintf("%s$%s", salt, utils.EncodePassword("123456", salt))
+	//更改密码算法2014-11-21
+	pwd, key, errrk := utils.TripleDesEncrypt("123456")
+	if errrk != nil {
+		errinfo.Message = "添加失败!" + utils.AlertProcess(errrk.Error())
+		errinfo.Code = -2
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+		return
+	}
+	userentity.Userpassword = pwd
+	userentity.Publickey = key
+	userentity.Auditstatus = 1
+	userentity.Email = userentity.Username
+	svc := userRole.GetUserService(utils.DBE)
+	err := svc.AddUser(&userentity)
+
+	if err == nil {
+		errinfo.Message = "添加用户成功,初始密码为123456!"
+		errinfo.Code = 0
+		errinfo.Item = userentity.Id
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+		return
+	} else {
+		errinfo.Message = "添加失败!" + utils.AlertProcess(err.Error())
+		errinfo.Code = -1
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+		return
+	}*/
+}
+
+// @Title 编辑用户
+// @Description 编辑用户
+// @Param	id	path	string	true		"需要修改的传感器编号"
+// @Param	body	body	business.device.DeviceChannels	"传感器信息"
+// @Success	200	{object} controllers.Request
+// @router /:id [put]
+func (this *UserController) EditUser() {
+	id := this.Ctx.Input.Param(":id")
+	var errinfo ErrorInfo
+	if id == "" {
+		errinfo.Message = "操作失败!请求信息不完整"
+		errinfo.Code = -2
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+		return
+	}
+	var model UserModel
+	var jsonblob = this.Ctx.Input.RequestBody
+	json.Unmarshal(jsonblob, &model)
+
+	var userentity userRole.Base_User
+	var userentityempty userRole.Base_User
+	svc := userRole.GetUserService(utils.DBE)
+	has := svc.GetEntityById(id, &userentity)
+	if has {
+		//获取组织名称
+		svcorg := organize.GetOrganizeService(utils.DBE)
+		model.DepartmentName = svcorg.GetNameById(model.DepartmentId)
+		//		roleid, _ := utils.StrTo(model.Role).Int()
+		//		if userentity.Roleid != roleid {
+		//			svc.ClearUserRole(id)
+		//			svc.AddUserToRole(id, model.Role, userentity)
+		//		}
+		userentity.Realname = model.Realname
+		userentity.Telephone = model.Telephone
+		userentity.Mobile = model.Mobile
+		if model.Sign == "" {
+			userentity.Description = model.Description
+		} else {
+			userentity.Description = model.Sign
+		}
+		userentity.Photo = model.Photo
+		//		userentity.Roleid = roleid
+		userentity.Modifieduserid, _ = utils.StrTo(this.User.Id).Int()
+		userentity.Modifiedby = this.User.Realname
+		userentity.Departmentid = model.DepartmentId
+		userentity.Departmentname = model.DepartmentName
+
+		var cols []string = []string{"Realname", "DepartmentId", "DepartmentName", "Telephone", "Mobile", "Description", "Photo", "Modifieduserid", "Modifiedby"}
+
+		err := svc.UpdateEntityAndBackupByCols(id, &userentity, &userentityempty, cols, utils.ToStr(this.User.Id), this.User.Realname)
+
+		if err == nil {
+			errinfo.Message = "保存成功!"
+			errinfo.Code = 0
+			this.Data["json"] = &errinfo
+			this.ServeJSON()
+		} else {
+			errinfo.Message = "操作失败!" + utils.AlertProcess(err.Error())
+			errinfo.Code = -1
+			this.Data["json"] = &errinfo
+			this.ServeJSON()
+		}
+	} else {
+		errinfo.Message = "操作失败!操作数据不存在"
+		errinfo.Code = -3
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+		return
+	}
+
+}
+
+// @Title 删除用户
+// @Description 删除用户
+// @Param	id		path 	string	true		"需要删除的用户编号"
+// @Success 200 {object} ErrorInfo
+// @Failure 403 :id 为空
+// @router /:id [delete]
+func (this *UserController) Delete() {
+	id := this.Ctx.Input.Param(":id")
+	var errinfo ErrorInfo
+	if id == "" {
+		errinfo.Message = "操作失败!请求信息不完整"
+		errinfo.Code = -2
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+		return
+	}
+	var entity userRole.Base_User
+	var entityempty userRole.Base_User
+	svc := userRole.GetUserService(utils.DBE)
+	err := svc.DeleteEntityAndBackup(id, &entity, &entityempty, utils.ToStr(this.User.Id), this.User.Username)
+	if err == nil {
+		svc.ClearUserRole(id) //清除角色
+		errinfo.Message = "删除成功"
+		errinfo.Code = 0
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	} else {
+		errinfo.Message = "删除失败!" + utils.AlertProcess(err.Error())
+		errinfo.Code = -1
+		this.Data["json"] = &errinfo
+		this.ServeJSON()
+	}
+}

+ 4 - 4
src/dashoo.cn/frontend_web/src/pages/system/users.vue

@@ -45,7 +45,7 @@
           <el-table-column prop="Username" align="center" label="账号" show-overflow-tooltip></el-table-column>
           <el-table-column prop="Realname" align="center" label="用户名"></el-table-column>
           <el-table-column prop="Departmentname" align="center" label="所属组织"></el-table-column>
-          <el-table-column prop="RealnameRole" align="center" label="角色"></el-table-column>
+          <!-- <el-table-column prop="RealnameRole" align="center" label="角色"></el-table-column> -->
           <el-table-column prop="Telephone" align="center" label="手机" show-overflow-tooltip></el-table-column>
           <el-table-column label="座机" align="center" prop="Mobile" show-overflow-tooltip></el-table-column>
           <el-table-column v-if="this.appclient != 'lims'" prop="Description" align="center" label="备注"
@@ -495,7 +495,7 @@
           if (valid) {
             this.userform.departmentid = this.selectedorg[this.selectedorg.length - 1] + ''
             if (_this.operatingitem === 1) {
-              _this.$axios.post('users', _this.userform)
+              _this.$axios.post('casbin/users', _this.userform)
                 .then(res => {
                   // response
                   if (res.data.code === 0) {
@@ -518,7 +518,7 @@
                   console.error(err)
                 })
             } else if (_this.operatingitem === 2) {
-              _this.$axios.put('users/' + _this.userform.id, _this.userform)
+              _this.$axios.put('casbin/users/' + _this.userform.id, _this.userform)
                 .then(res => {
                   // response
                   if (res.data.code === 0) {
@@ -551,7 +551,7 @@
           cancelButtonText: '取消',
           type: 'warning'
         }).then(() => {
-          _this.$axios.delete('users/' + val.Id, null)
+          _this.$axios.delete('casbin/users/' + val.Id, null)
             .then(res => {
               // response
               if (res.data.code === 0) {