diff --git a/cmd/open_im_api/main.go b/cmd/open_im_api/main.go
index 50d002f6c..0a4acc6d7 100644
--- a/cmd/open_im_api/main.go
+++ b/cmd/open_im_api/main.go
@@ -174,7 +174,7 @@ func main() {
 
 		organizationGroup.POST("/get_department_member", organization.GetDepartmentMember)
 		organizationGroup.POST("/delete_user_in_department", organization.DeleteUserInDepartment)
-
+		organizationGroup.POST("/get_user_in_organization", organization.GetUserInOrganization)
 	}
 
 	go apiThird.MinioInit()
diff --git a/internal/api/organization/organization.go b/internal/api/organization/organization.go
index 9d134a253..b8f398c9d 100644
--- a/internal/api/organization/organization.go
+++ b/internal/api/organization/organization.go
@@ -441,3 +441,40 @@ func DeleteUserInDepartment(c *gin.Context) {
 	log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api return ", apiResp)
 	c.JSON(http.StatusOK, apiResp)
 }
+
+func GetUserInOrganization(c *gin.Context) {
+	req := api.GetUserInOrganizationReq{}
+	if err := c.BindJSON(&req); err != nil {
+		log.NewError(req.OperationID, "BindJSON failed ", err.Error())
+		c.JSON(http.StatusBadRequest, gin.H{"errCode": 400, "errMsg": err.Error()})
+		return
+	}
+	log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req)
+	err, _ := token_verify.ParseTokenGetUserID(c.Request.Header.Get("token"), req.OperationID)
+	if err != nil {
+		errMsg := "ParseTokenGetUserID failed " + err.Error() + c.Request.Header.Get("token")
+		log.NewError(req.OperationID, errMsg, errMsg)
+		c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg})
+		return
+	}
+	etcdConn := getcdv3.GetDefaultConn(config.Config.Etcd.EtcdSchema, strings.Join(config.Config.Etcd.EtcdAddr, ","), config.Config.RpcRegisterName.OpenImOrganizationName, req.OperationID)
+	if etcdConn == nil {
+		errMsg := req.OperationID + "getcdv3.GetDefaultConn == nil"
+		log.NewError(req.OperationID, errMsg)
+		c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg})
+		return
+	}
+	reqPb := &rpc.GetUserInOrganizationReq{}
+	client := rpc.NewOrganizationClient(etcdConn)
+	respPb, err := client.GetUserInOrganization(context.Background(), reqPb)
+	if err != nil {
+		errMsg := "rpc DeleteUserInDepartment failed " + err.Error() + reqPb.String()
+		log.NewError(req.OperationID, errMsg)
+		c.JSON(http.StatusInternalServerError, gin.H{"errCode": 500, "errMsg": errMsg})
+		return
+	}
+	apiResp := api.GetUserInOrganizationResp{CommResp: api.CommResp{ErrCode: respPb.ErrCode, ErrMsg: respPb.ErrMsg}, OrganizationUserList: respPb.OrganizationUsers}
+	apiResp.Data = jsonData.JsonDataList(apiResp.OrganizationUserList)
+	log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "api return ", apiResp)
+	c.JSON(http.StatusOK, apiResp)
+}
diff --git a/internal/rpc/organization/organization.go b/internal/rpc/organization/organization.go
index 6c03acf08..77d852ef6 100644
--- a/internal/rpc/organization/organization.go
+++ b/internal/rpc/organization/organization.go
@@ -488,3 +488,22 @@ func (s *organizationServer) GetDepartmentRelatedGroupIDList(ctx context.Context
 	log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String())
 	return resp, nil
 }
+
+func (s *organizationServer) GetUserInOrganization(_ context.Context, req *rpc.GetUserInOrganizationReq) (resp *rpc.GetUserInOrganizationResp, err error) {
+	log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "req: ", req.String())
+	resp = &rpc.GetUserInOrganizationResp{}
+	organizationUserList, err := imdb.GetOrganizationUsers(req.UserIDList)
+	if err != nil {
+		log.NewError(req.OperationID, utils.GetSelfFuncName(), err.Error(), req.UserIDList)
+		resp.ErrCode = constant.ErrDB.ErrCode
+		resp.ErrMsg = err.Error()
+		return resp, nil
+	}
+	for _, v := range organizationUserList {
+		organizationUser := &open_im_sdk.OrganizationUser{}
+		utils.CopyStructFields(organizationUser, v)
+		resp.OrganizationUsers = append(resp.OrganizationUsers, organizationUser)
+	}
+	log.NewInfo(req.OperationID, utils.GetSelfFuncName(), "resp: ", resp.String())
+	return resp, nil
+}
diff --git a/pkg/base_info/organization_api_struct.go b/pkg/base_info/organization_api_struct.go
index 31a9c038b..06f14857d 100644
--- a/pkg/base_info/organization_api_struct.go
+++ b/pkg/base_info/organization_api_struct.go
@@ -108,3 +108,14 @@ type DeleteUserInDepartmentReq struct {
 type DeleteUserInDepartmentResp struct {
 	CommResp
 }
+
+type GetUserInOrganizationReq struct {
+	OperationID string   `json:"operationID" binding:"required"`
+	UserIDList  []string `json:"userIDList" binding:"required"`
+}
+
+type GetUserInOrganizationResp struct {
+	CommResp
+	OrganizationUserList []*open_im_sdk.OrganizationUser `json:"organizationUserList"`
+	Data                 []map[string]interface{}        `json:"data" swaggerignore:"true"`
+}
diff --git a/pkg/common/db/mysql_model/im_mysql_model/organization_model.go b/pkg/common/db/mysql_model/im_mysql_model/organization_model.go
index be4ddefe5..1cfa5cf4b 100644
--- a/pkg/common/db/mysql_model/im_mysql_model/organization_model.go
+++ b/pkg/common/db/mysql_model/im_mysql_model/organization_model.go
@@ -89,6 +89,12 @@ func GetOrganizationUser(userID string) (error, *db.OrganizationUser) {
 	return err, &organizationUser
 }
 
+func GetOrganizationUsers(userIDList []string) ([]*db.OrganizationUser, error) {
+	var organizationUserList []*db.OrganizationUser
+	err := db.DB.MysqlDB.DefaultGormDB().Table("organization_users").Where("user_id in (?)", userIDList).Find(&organizationUserList).Error
+	return organizationUserList, err
+}
+
 func UpdateOrganizationUser(organizationUser *db.OrganizationUser, args map[string]interface{}) error {
 	dbConn, err := db.DB.MysqlDB.DefaultGormDB()
 	if err != nil {
diff --git a/pkg/proto/organization/organization.pb.go b/pkg/proto/organization/organization.pb.go
index 4aec922db..3db1b5448 100644
--- a/pkg/proto/organization/organization.pb.go
+++ b/pkg/proto/organization/organization.pb.go
@@ -37,7 +37,7 @@ func (m *CreateDepartmentReq) Reset()         { *m = CreateDepartmentReq{} }
 func (m *CreateDepartmentReq) String() string { return proto.CompactTextString(m) }
 func (*CreateDepartmentReq) ProtoMessage()    {}
 func (*CreateDepartmentReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{0}
+	return fileDescriptor_organization_a66b64589e547186, []int{0}
 }
 func (m *CreateDepartmentReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_CreateDepartmentReq.Unmarshal(m, b)
@@ -91,7 +91,7 @@ func (m *CreateDepartmentResp) Reset()         { *m = CreateDepartmentResp{} }
 func (m *CreateDepartmentResp) String() string { return proto.CompactTextString(m) }
 func (*CreateDepartmentResp) ProtoMessage()    {}
 func (*CreateDepartmentResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{1}
+	return fileDescriptor_organization_a66b64589e547186, []int{1}
 }
 func (m *CreateDepartmentResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_CreateDepartmentResp.Unmarshal(m, b)
@@ -145,7 +145,7 @@ func (m *UpdateDepartmentReq) Reset()         { *m = UpdateDepartmentReq{} }
 func (m *UpdateDepartmentReq) String() string { return proto.CompactTextString(m) }
 func (*UpdateDepartmentReq) ProtoMessage()    {}
 func (*UpdateDepartmentReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{2}
+	return fileDescriptor_organization_a66b64589e547186, []int{2}
 }
 func (m *UpdateDepartmentReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_UpdateDepartmentReq.Unmarshal(m, b)
@@ -198,7 +198,7 @@ func (m *UpdateDepartmentResp) Reset()         { *m = UpdateDepartmentResp{} }
 func (m *UpdateDepartmentResp) String() string { return proto.CompactTextString(m) }
 func (*UpdateDepartmentResp) ProtoMessage()    {}
 func (*UpdateDepartmentResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{3}
+	return fileDescriptor_organization_a66b64589e547186, []int{3}
 }
 func (m *UpdateDepartmentResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_UpdateDepartmentResp.Unmarshal(m, b)
@@ -245,7 +245,7 @@ func (m *GetSubDepartmentReq) Reset()         { *m = GetSubDepartmentReq{} }
 func (m *GetSubDepartmentReq) String() string { return proto.CompactTextString(m) }
 func (*GetSubDepartmentReq) ProtoMessage()    {}
 func (*GetSubDepartmentReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{4}
+	return fileDescriptor_organization_a66b64589e547186, []int{4}
 }
 func (m *GetSubDepartmentReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_GetSubDepartmentReq.Unmarshal(m, b)
@@ -299,7 +299,7 @@ func (m *GetSubDepartmentResp) Reset()         { *m = GetSubDepartmentResp{} }
 func (m *GetSubDepartmentResp) String() string { return proto.CompactTextString(m) }
 func (*GetSubDepartmentResp) ProtoMessage()    {}
 func (*GetSubDepartmentResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{5}
+	return fileDescriptor_organization_a66b64589e547186, []int{5}
 }
 func (m *GetSubDepartmentResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_GetSubDepartmentResp.Unmarshal(m, b)
@@ -353,7 +353,7 @@ func (m *DeleteDepartmentReq) Reset()         { *m = DeleteDepartmentReq{} }
 func (m *DeleteDepartmentReq) String() string { return proto.CompactTextString(m) }
 func (*DeleteDepartmentReq) ProtoMessage()    {}
 func (*DeleteDepartmentReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{6}
+	return fileDescriptor_organization_a66b64589e547186, []int{6}
 }
 func (m *DeleteDepartmentReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_DeleteDepartmentReq.Unmarshal(m, b)
@@ -406,7 +406,7 @@ func (m *DeleteDepartmentResp) Reset()         { *m = DeleteDepartmentResp{} }
 func (m *DeleteDepartmentResp) String() string { return proto.CompactTextString(m) }
 func (*DeleteDepartmentResp) ProtoMessage()    {}
 func (*DeleteDepartmentResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{7}
+	return fileDescriptor_organization_a66b64589e547186, []int{7}
 }
 func (m *DeleteDepartmentResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_DeleteDepartmentResp.Unmarshal(m, b)
@@ -452,7 +452,7 @@ func (m *GetDepartmentParentIDListReq) Reset()         { *m = GetDepartmentParen
 func (m *GetDepartmentParentIDListReq) String() string { return proto.CompactTextString(m) }
 func (*GetDepartmentParentIDListReq) ProtoMessage()    {}
 func (*GetDepartmentParentIDListReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{8}
+	return fileDescriptor_organization_a66b64589e547186, []int{8}
 }
 func (m *GetDepartmentParentIDListReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_GetDepartmentParentIDListReq.Unmarshal(m, b)
@@ -499,7 +499,7 @@ func (m *GetDepartmentParentIDListResp) Reset()         { *m = GetDepartmentPare
 func (m *GetDepartmentParentIDListResp) String() string { return proto.CompactTextString(m) }
 func (*GetDepartmentParentIDListResp) ProtoMessage()    {}
 func (*GetDepartmentParentIDListResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{9}
+	return fileDescriptor_organization_a66b64589e547186, []int{9}
 }
 func (m *GetDepartmentParentIDListResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_GetDepartmentParentIDListResp.Unmarshal(m, b)
@@ -554,7 +554,7 @@ func (m *CreateOrganizationUserReq) Reset()         { *m = CreateOrganizationUse
 func (m *CreateOrganizationUserReq) String() string { return proto.CompactTextString(m) }
 func (*CreateOrganizationUserReq) ProtoMessage()    {}
 func (*CreateOrganizationUserReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{10}
+	return fileDescriptor_organization_a66b64589e547186, []int{10}
 }
 func (m *CreateOrganizationUserReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_CreateOrganizationUserReq.Unmarshal(m, b)
@@ -614,7 +614,7 @@ func (m *CreateOrganizationUserResp) Reset()         { *m = CreateOrganizationUs
 func (m *CreateOrganizationUserResp) String() string { return proto.CompactTextString(m) }
 func (*CreateOrganizationUserResp) ProtoMessage()    {}
 func (*CreateOrganizationUserResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{11}
+	return fileDescriptor_organization_a66b64589e547186, []int{11}
 }
 func (m *CreateOrganizationUserResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_CreateOrganizationUserResp.Unmarshal(m, b)
@@ -661,7 +661,7 @@ func (m *UpdateOrganizationUserReq) Reset()         { *m = UpdateOrganizationUse
 func (m *UpdateOrganizationUserReq) String() string { return proto.CompactTextString(m) }
 func (*UpdateOrganizationUserReq) ProtoMessage()    {}
 func (*UpdateOrganizationUserReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{12}
+	return fileDescriptor_organization_a66b64589e547186, []int{12}
 }
 func (m *UpdateOrganizationUserReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_UpdateOrganizationUserReq.Unmarshal(m, b)
@@ -714,7 +714,7 @@ func (m *UpdateOrganizationUserResp) Reset()         { *m = UpdateOrganizationUs
 func (m *UpdateOrganizationUserResp) String() string { return proto.CompactTextString(m) }
 func (*UpdateOrganizationUserResp) ProtoMessage()    {}
 func (*UpdateOrganizationUserResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{13}
+	return fileDescriptor_organization_a66b64589e547186, []int{13}
 }
 func (m *UpdateOrganizationUserResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_UpdateOrganizationUserResp.Unmarshal(m, b)
@@ -761,7 +761,7 @@ func (m *CreateDepartmentMemberReq) Reset()         { *m = CreateDepartmentMembe
 func (m *CreateDepartmentMemberReq) String() string { return proto.CompactTextString(m) }
 func (*CreateDepartmentMemberReq) ProtoMessage()    {}
 func (*CreateDepartmentMemberReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{14}
+	return fileDescriptor_organization_a66b64589e547186, []int{14}
 }
 func (m *CreateDepartmentMemberReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_CreateDepartmentMemberReq.Unmarshal(m, b)
@@ -814,7 +814,7 @@ func (m *CreateDepartmentMemberResp) Reset()         { *m = CreateDepartmentMemb
 func (m *CreateDepartmentMemberResp) String() string { return proto.CompactTextString(m) }
 func (*CreateDepartmentMemberResp) ProtoMessage()    {}
 func (*CreateDepartmentMemberResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{15}
+	return fileDescriptor_organization_a66b64589e547186, []int{15}
 }
 func (m *CreateDepartmentMemberResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_CreateDepartmentMemberResp.Unmarshal(m, b)
@@ -861,7 +861,7 @@ func (m *GetUserInDepartmentReq) Reset()         { *m = GetUserInDepartmentReq{}
 func (m *GetUserInDepartmentReq) String() string { return proto.CompactTextString(m) }
 func (*GetUserInDepartmentReq) ProtoMessage()    {}
 func (*GetUserInDepartmentReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{16}
+	return fileDescriptor_organization_a66b64589e547186, []int{16}
 }
 func (m *GetUserInDepartmentReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_GetUserInDepartmentReq.Unmarshal(m, b)
@@ -915,7 +915,7 @@ func (m *GetUserInDepartmentResp) Reset()         { *m = GetUserInDepartmentResp
 func (m *GetUserInDepartmentResp) String() string { return proto.CompactTextString(m) }
 func (*GetUserInDepartmentResp) ProtoMessage()    {}
 func (*GetUserInDepartmentResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{17}
+	return fileDescriptor_organization_a66b64589e547186, []int{17}
 }
 func (m *GetUserInDepartmentResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_GetUserInDepartmentResp.Unmarshal(m, b)
@@ -969,7 +969,7 @@ func (m *UpdateUserInDepartmentReq) Reset()         { *m = UpdateUserInDepartmen
 func (m *UpdateUserInDepartmentReq) String() string { return proto.CompactTextString(m) }
 func (*UpdateUserInDepartmentReq) ProtoMessage()    {}
 func (*UpdateUserInDepartmentReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{18}
+	return fileDescriptor_organization_a66b64589e547186, []int{18}
 }
 func (m *UpdateUserInDepartmentReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_UpdateUserInDepartmentReq.Unmarshal(m, b)
@@ -1022,7 +1022,7 @@ func (m *UpdateUserInDepartmentResp) Reset()         { *m = UpdateUserInDepartme
 func (m *UpdateUserInDepartmentResp) String() string { return proto.CompactTextString(m) }
 func (*UpdateUserInDepartmentResp) ProtoMessage()    {}
 func (*UpdateUserInDepartmentResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{19}
+	return fileDescriptor_organization_a66b64589e547186, []int{19}
 }
 func (m *UpdateUserInDepartmentResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_UpdateUserInDepartmentResp.Unmarshal(m, b)
@@ -1070,7 +1070,7 @@ func (m *DeleteUserInDepartmentReq) Reset()         { *m = DeleteUserInDepartmen
 func (m *DeleteUserInDepartmentReq) String() string { return proto.CompactTextString(m) }
 func (*DeleteUserInDepartmentReq) ProtoMessage()    {}
 func (*DeleteUserInDepartmentReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{20}
+	return fileDescriptor_organization_a66b64589e547186, []int{20}
 }
 func (m *DeleteUserInDepartmentReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_DeleteUserInDepartmentReq.Unmarshal(m, b)
@@ -1130,7 +1130,7 @@ func (m *DeleteUserInDepartmentResp) Reset()         { *m = DeleteUserInDepartme
 func (m *DeleteUserInDepartmentResp) String() string { return proto.CompactTextString(m) }
 func (*DeleteUserInDepartmentResp) ProtoMessage()    {}
 func (*DeleteUserInDepartmentResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{21}
+	return fileDescriptor_organization_a66b64589e547186, []int{21}
 }
 func (m *DeleteUserInDepartmentResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_DeleteUserInDepartmentResp.Unmarshal(m, b)
@@ -1177,7 +1177,7 @@ func (m *DeleteOrganizationUserReq) Reset()         { *m = DeleteOrganizationUse
 func (m *DeleteOrganizationUserReq) String() string { return proto.CompactTextString(m) }
 func (*DeleteOrganizationUserReq) ProtoMessage()    {}
 func (*DeleteOrganizationUserReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{22}
+	return fileDescriptor_organization_a66b64589e547186, []int{22}
 }
 func (m *DeleteOrganizationUserReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_DeleteOrganizationUserReq.Unmarshal(m, b)
@@ -1230,7 +1230,7 @@ func (m *DeleteOrganizationUserResp) Reset()         { *m = DeleteOrganizationUs
 func (m *DeleteOrganizationUserResp) String() string { return proto.CompactTextString(m) }
 func (*DeleteOrganizationUserResp) ProtoMessage()    {}
 func (*DeleteOrganizationUserResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{23}
+	return fileDescriptor_organization_a66b64589e547186, []int{23}
 }
 func (m *DeleteOrganizationUserResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_DeleteOrganizationUserResp.Unmarshal(m, b)
@@ -1277,7 +1277,7 @@ func (m *GetDepartmentMemberReq) Reset()         { *m = GetDepartmentMemberReq{}
 func (m *GetDepartmentMemberReq) String() string { return proto.CompactTextString(m) }
 func (*GetDepartmentMemberReq) ProtoMessage()    {}
 func (*GetDepartmentMemberReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{24}
+	return fileDescriptor_organization_a66b64589e547186, []int{24}
 }
 func (m *GetDepartmentMemberReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_GetDepartmentMemberReq.Unmarshal(m, b)
@@ -1331,7 +1331,7 @@ func (m *GetDepartmentMemberResp) Reset()         { *m = GetDepartmentMemberResp
 func (m *GetDepartmentMemberResp) String() string { return proto.CompactTextString(m) }
 func (*GetDepartmentMemberResp) ProtoMessage()    {}
 func (*GetDepartmentMemberResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{25}
+	return fileDescriptor_organization_a66b64589e547186, []int{25}
 }
 func (m *GetDepartmentMemberResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_GetDepartmentMemberResp.Unmarshal(m, b)
@@ -1384,7 +1384,7 @@ func (m *GetDepartmentRelatedGroupIDListReq) Reset()         { *m = GetDepartmen
 func (m *GetDepartmentRelatedGroupIDListReq) String() string { return proto.CompactTextString(m) }
 func (*GetDepartmentRelatedGroupIDListReq) ProtoMessage()    {}
 func (*GetDepartmentRelatedGroupIDListReq) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{26}
+	return fileDescriptor_organization_a66b64589e547186, []int{26}
 }
 func (m *GetDepartmentRelatedGroupIDListReq) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_GetDepartmentRelatedGroupIDListReq.Unmarshal(m, b)
@@ -1431,7 +1431,7 @@ func (m *GetDepartmentRelatedGroupIDListResp) Reset()         { *m = GetDepartme
 func (m *GetDepartmentRelatedGroupIDListResp) String() string { return proto.CompactTextString(m) }
 func (*GetDepartmentRelatedGroupIDListResp) ProtoMessage()    {}
 func (*GetDepartmentRelatedGroupIDListResp) Descriptor() ([]byte, []int) {
-	return fileDescriptor_organization_2845c40b2de0bcf0, []int{27}
+	return fileDescriptor_organization_a66b64589e547186, []int{27}
 }
 func (m *GetDepartmentRelatedGroupIDListResp) XXX_Unmarshal(b []byte) error {
 	return xxx_messageInfo_GetDepartmentRelatedGroupIDListResp.Unmarshal(m, b)
@@ -1472,6 +1472,106 @@ func (m *GetDepartmentRelatedGroupIDListResp) GetGroupIDList() []string {
 	return nil
 }
 
+type GetUserInOrganizationReq struct {
+	UserIDList           []string `protobuf:"bytes,1,rep,name=userIDList" json:"userIDList,omitempty"`
+	OperationID          string   `protobuf:"bytes,2,opt,name=operationID" json:"operationID,omitempty"`
+	XXX_NoUnkeyedLiteral struct{} `json:"-"`
+	XXX_unrecognized     []byte   `json:"-"`
+	XXX_sizecache        int32    `json:"-"`
+}
+
+func (m *GetUserInOrganizationReq) Reset()         { *m = GetUserInOrganizationReq{} }
+func (m *GetUserInOrganizationReq) String() string { return proto.CompactTextString(m) }
+func (*GetUserInOrganizationReq) ProtoMessage()    {}
+func (*GetUserInOrganizationReq) Descriptor() ([]byte, []int) {
+	return fileDescriptor_organization_a66b64589e547186, []int{28}
+}
+func (m *GetUserInOrganizationReq) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetUserInOrganizationReq.Unmarshal(m, b)
+}
+func (m *GetUserInOrganizationReq) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetUserInOrganizationReq.Marshal(b, m, deterministic)
+}
+func (dst *GetUserInOrganizationReq) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetUserInOrganizationReq.Merge(dst, src)
+}
+func (m *GetUserInOrganizationReq) XXX_Size() int {
+	return xxx_messageInfo_GetUserInOrganizationReq.Size(m)
+}
+func (m *GetUserInOrganizationReq) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetUserInOrganizationReq.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetUserInOrganizationReq proto.InternalMessageInfo
+
+func (m *GetUserInOrganizationReq) GetUserIDList() []string {
+	if m != nil {
+		return m.UserIDList
+	}
+	return nil
+}
+
+func (m *GetUserInOrganizationReq) GetOperationID() string {
+	if m != nil {
+		return m.OperationID
+	}
+	return ""
+}
+
+type GetUserInOrganizationResp struct {
+	ErrCode              int32                      `protobuf:"varint,1,opt,name=errCode" json:"errCode,omitempty"`
+	ErrMsg               string                     `protobuf:"bytes,2,opt,name=errMsg" json:"errMsg,omitempty"`
+	OrganizationUsers    []*sdk_ws.OrganizationUser `protobuf:"bytes,3,rep,name=organizationUsers" json:"organizationUsers,omitempty"`
+	XXX_NoUnkeyedLiteral struct{}                   `json:"-"`
+	XXX_unrecognized     []byte                     `json:"-"`
+	XXX_sizecache        int32                      `json:"-"`
+}
+
+func (m *GetUserInOrganizationResp) Reset()         { *m = GetUserInOrganizationResp{} }
+func (m *GetUserInOrganizationResp) String() string { return proto.CompactTextString(m) }
+func (*GetUserInOrganizationResp) ProtoMessage()    {}
+func (*GetUserInOrganizationResp) Descriptor() ([]byte, []int) {
+	return fileDescriptor_organization_a66b64589e547186, []int{29}
+}
+func (m *GetUserInOrganizationResp) XXX_Unmarshal(b []byte) error {
+	return xxx_messageInfo_GetUserInOrganizationResp.Unmarshal(m, b)
+}
+func (m *GetUserInOrganizationResp) XXX_Marshal(b []byte, deterministic bool) ([]byte, error) {
+	return xxx_messageInfo_GetUserInOrganizationResp.Marshal(b, m, deterministic)
+}
+func (dst *GetUserInOrganizationResp) XXX_Merge(src proto.Message) {
+	xxx_messageInfo_GetUserInOrganizationResp.Merge(dst, src)
+}
+func (m *GetUserInOrganizationResp) XXX_Size() int {
+	return xxx_messageInfo_GetUserInOrganizationResp.Size(m)
+}
+func (m *GetUserInOrganizationResp) XXX_DiscardUnknown() {
+	xxx_messageInfo_GetUserInOrganizationResp.DiscardUnknown(m)
+}
+
+var xxx_messageInfo_GetUserInOrganizationResp proto.InternalMessageInfo
+
+func (m *GetUserInOrganizationResp) GetErrCode() int32 {
+	if m != nil {
+		return m.ErrCode
+	}
+	return 0
+}
+
+func (m *GetUserInOrganizationResp) GetErrMsg() string {
+	if m != nil {
+		return m.ErrMsg
+	}
+	return ""
+}
+
+func (m *GetUserInOrganizationResp) GetOrganizationUsers() []*sdk_ws.OrganizationUser {
+	if m != nil {
+		return m.OrganizationUsers
+	}
+	return nil
+}
+
 func init() {
 	proto.RegisterType((*CreateDepartmentReq)(nil), "organization.CreateDepartmentReq")
 	proto.RegisterType((*CreateDepartmentResp)(nil), "organization.CreateDepartmentResp")
@@ -1501,6 +1601,8 @@ func init() {
 	proto.RegisterType((*GetDepartmentMemberResp)(nil), "organization.GetDepartmentMemberResp")
 	proto.RegisterType((*GetDepartmentRelatedGroupIDListReq)(nil), "organization.GetDepartmentRelatedGroupIDListReq")
 	proto.RegisterType((*GetDepartmentRelatedGroupIDListResp)(nil), "organization.GetDepartmentRelatedGroupIDListResp")
+	proto.RegisterType((*GetUserInOrganizationReq)(nil), "organization.GetUserInOrganizationReq")
+	proto.RegisterType((*GetUserInOrganizationResp)(nil), "organization.GetUserInOrganizationResp")
 }
 
 // Reference imports to suppress errors if they are not otherwise used.
@@ -1528,6 +1630,7 @@ type OrganizationClient interface {
 	UpdateUserInDepartment(ctx context.Context, in *UpdateUserInDepartmentReq, opts ...grpc.CallOption) (*UpdateUserInDepartmentResp, error)
 	GetDepartmentMember(ctx context.Context, in *GetDepartmentMemberReq, opts ...grpc.CallOption) (*GetDepartmentMemberResp, error)
 	GetDepartmentRelatedGroupIDList(ctx context.Context, in *GetDepartmentRelatedGroupIDListReq, opts ...grpc.CallOption) (*GetDepartmentRelatedGroupIDListResp, error)
+	GetUserInOrganization(ctx context.Context, in *GetUserInOrganizationReq, opts ...grpc.CallOption) (*GetUserInOrganizationResp, error)
 }
 
 type organizationClient struct {
@@ -1664,6 +1767,15 @@ func (c *organizationClient) GetDepartmentRelatedGroupIDList(ctx context.Context
 	return out, nil
 }
 
+func (c *organizationClient) GetUserInOrganization(ctx context.Context, in *GetUserInOrganizationReq, opts ...grpc.CallOption) (*GetUserInOrganizationResp, error) {
+	out := new(GetUserInOrganizationResp)
+	err := grpc.Invoke(ctx, "/organization.organization/GetUserInOrganization", in, out, c.cc, opts...)
+	if err != nil {
+		return nil, err
+	}
+	return out, nil
+}
+
 // Server API for Organization service
 
 type OrganizationServer interface {
@@ -1681,6 +1793,7 @@ type OrganizationServer interface {
 	UpdateUserInDepartment(context.Context, *UpdateUserInDepartmentReq) (*UpdateUserInDepartmentResp, error)
 	GetDepartmentMember(context.Context, *GetDepartmentMemberReq) (*GetDepartmentMemberResp, error)
 	GetDepartmentRelatedGroupIDList(context.Context, *GetDepartmentRelatedGroupIDListReq) (*GetDepartmentRelatedGroupIDListResp, error)
+	GetUserInOrganization(context.Context, *GetUserInOrganizationReq) (*GetUserInOrganizationResp, error)
 }
 
 func RegisterOrganizationServer(s *grpc.Server, srv OrganizationServer) {
@@ -1939,6 +2052,24 @@ func _Organization_GetDepartmentRelatedGroupIDList_Handler(srv interface{}, ctx
 	return interceptor(ctx, in, info, handler)
 }
 
+func _Organization_GetUserInOrganization_Handler(srv interface{}, ctx context.Context, dec func(interface{}) error, interceptor grpc.UnaryServerInterceptor) (interface{}, error) {
+	in := new(GetUserInOrganizationReq)
+	if err := dec(in); err != nil {
+		return nil, err
+	}
+	if interceptor == nil {
+		return srv.(OrganizationServer).GetUserInOrganization(ctx, in)
+	}
+	info := &grpc.UnaryServerInfo{
+		Server:     srv,
+		FullMethod: "/organization.organization/GetUserInOrganization",
+	}
+	handler := func(ctx context.Context, req interface{}) (interface{}, error) {
+		return srv.(OrganizationServer).GetUserInOrganization(ctx, req.(*GetUserInOrganizationReq))
+	}
+	return interceptor(ctx, in, info, handler)
+}
+
 var _Organization_serviceDesc = grpc.ServiceDesc{
 	ServiceName: "organization.organization",
 	HandlerType: (*OrganizationServer)(nil),
@@ -1999,70 +2130,78 @@ var _Organization_serviceDesc = grpc.ServiceDesc{
 			MethodName: "GetDepartmentRelatedGroupIDList",
 			Handler:    _Organization_GetDepartmentRelatedGroupIDList_Handler,
 		},
+		{
+			MethodName: "GetUserInOrganization",
+			Handler:    _Organization_GetUserInOrganization_Handler,
+		},
 	},
 	Streams:  []grpc.StreamDesc{},
 	Metadata: "organization/organization.proto",
 }
 
 func init() {
-	proto.RegisterFile("organization/organization.proto", fileDescriptor_organization_2845c40b2de0bcf0)
-}
-
-var fileDescriptor_organization_2845c40b2de0bcf0 = []byte{
-	// 869 bytes of a gzipped FileDescriptorProto
-	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4f, 0x4f, 0x13, 0x41,
-	0x14, 0xcf, 0x52, 0x44, 0x78, 0x25, 0xa6, 0x19, 0x48, 0x6d, 0x57, 0x91, 0xb2, 0x40, 0x68, 0x30,
-	0x69, 0x15, 0x8f, 0xde, 0xa4, 0xa6, 0x34, 0x11, 0x6b, 0xd6, 0x70, 0xc0, 0x4b, 0xb3, 0xb5, 0x63,
-	0xd3, 0x14, 0xba, 0xc3, 0xcc, 0x56, 0x22, 0x1f, 0xc0, 0xab, 0x27, 0x2f, 0xc6, 0x4f, 0xe0, 0xc9,
-	0xcf, 0xe1, 0xc5, 0xaf, 0x64, 0x76, 0xb7, 0xb4, 0xb3, 0x33, 0x6f, 0xdb, 0xb2, 0x2d, 0x86, 0xe3,
-	0xbc, 0x9d, 0xf9, 0xbd, 0xf7, 0x7e, 0x6f, 0xe6, 0xfd, 0x59, 0xd8, 0x74, 0x79, 0xdb, 0xe9, 0x75,
-	0xae, 0x1c, 0xaf, 0xe3, 0xf6, 0xca, 0xf2, 0xa2, 0xc4, 0xb8, 0xeb, 0xb9, 0x64, 0x55, 0x96, 0x99,
-	0x5b, 0x75, 0x46, 0x7b, 0x8d, 0xda, 0x71, 0x99, 0x75, 0xdb, 0xe5, 0x60, 0x43, 0x59, 0xb4, 0xba,
-	0x8d, 0x4b, 0x51, 0xbe, 0x14, 0xe1, 0x01, 0xeb, 0x87, 0x01, 0x6b, 0x87, 0x9c, 0x3a, 0x1e, 0xad,
-	0x50, 0xe6, 0x70, 0xef, 0x9c, 0xf6, 0x3c, 0x9b, 0x5e, 0x90, 0xd7, 0xf0, 0xa0, 0x35, 0x14, 0xd4,
-	0x7a, 0x9f, 0xdc, 0x9c, 0x51, 0x30, 0x8a, 0xe9, 0x83, 0x8d, 0x92, 0xa0, 0xfc, 0x33, 0xe5, 0x0d,
-	0x87, 0x75, 0x1a, 0xcc, 0xe1, 0xce, 0xb9, 0x28, 0x49, 0x27, 0x95, 0x43, 0xa4, 0x00, 0x69, 0x97,
-	0x51, 0x1e, 0x98, 0x53, 0xab, 0xe4, 0x16, 0x0a, 0x46, 0x71, 0xc5, 0x96, 0x45, 0xc4, 0x84, 0x65,
-	0x97, 0x9d, 0x08, 0xca, 0x6b, 0x95, 0x5c, 0x2a, 0xf8, 0x3c, 0x5c, 0x5b, 0xdf, 0x0c, 0x58, 0xd7,
-	0x8d, 0x13, 0x8c, 0xe4, 0xe0, 0x3e, 0xe5, 0xfc, 0xd0, 0x6d, 0xd1, 0xc0, 0xac, 0x7b, 0xf6, 0xf5,
-	0x92, 0x64, 0x61, 0x89, 0x72, 0x7e, 0x2c, 0xda, 0x03, 0x5d, 0x83, 0x15, 0xe2, 0x4f, 0x2a, 0x81,
-	0x3f, 0x01, 0x5d, 0x27, 0xac, 0x75, 0x37, 0xe9, 0x3a, 0x82, 0x75, 0xdd, 0xb6, 0x24, 0x6c, 0x59,
-	0x97, 0xb0, 0x56, 0xa5, 0xde, 0xfb, 0x7e, 0x33, 0xea, 0xa5, 0x05, 0xab, 0x92, 0xc1, 0x95, 0x00,
-	0x6d, 0xc5, 0x8e, 0xc8, 0xe6, 0x10, 0x71, 0x5d, 0xf3, 0xec, 0x11, 0x7f, 0xd3, 0x11, 0x5e, 0x2e,
-	0x55, 0x48, 0xdd, 0x28, 0x24, 0xfe, 0x21, 0x9f, 0x8a, 0x0a, 0x3d, 0xa3, 0x6a, 0xc0, 0x6f, 0x9f,
-	0x8a, 0x23, 0x58, 0xd7, 0x15, 0x27, 0x8a, 0x66, 0x0b, 0x1e, 0x57, 0xa9, 0x37, 0x82, 0x79, 0xe7,
-	0xf0, 0xc0, 0x40, 0xdf, 0xbf, 0xb9, 0xf9, 0x62, 0xf5, 0x61, 0x63, 0x8c, 0x96, 0x44, 0x21, 0xb4,
-	0x60, 0x95, 0x49, 0x28, 0x41, 0x00, 0x57, 0xec, 0x88, 0xcc, 0xfa, 0x63, 0x40, 0x3e, 0xcc, 0x11,
-	0x75, 0x29, 0xf5, 0xf9, 0x1c, 0xfa, 0xae, 0xd5, 0x21, 0xe3, 0x2a, 0xe2, 0xc1, 0xcb, 0xdc, 0x46,
-	0xae, 0x81, 0x86, 0xa0, 0x1d, 0x9e, 0x2d, 0xa6, 0xe4, 0x09, 0x40, 0x4d, 0xd8, 0xb4, 0xdd, 0x11,
-	0x1e, 0xe5, 0xb9, 0xc5, 0x82, 0x51, 0x5c, 0xb6, 0x25, 0x89, 0xf5, 0x16, 0xcc, 0x38, 0x5f, 0x12,
-	0x45, 0xfe, 0x97, 0x01, 0xf9, 0x30, 0x25, 0xdc, 0x7d, 0x72, 0x7c, 0xe7, 0xe3, 0x6c, 0x4d, 0xec,
-	0xbc, 0x5a, 0x3d, 0x8e, 0xe9, 0x79, 0x73, 0xe8, 0x7c, 0x4b, 0x11, 0x8f, 0x71, 0x5e, 0x43, 0xd0,
-	0x0e, 0xcf, 0xee, 0x7c, 0x9c, 0xad, 0x89, 0x9c, 0xef, 0x41, 0xb6, 0x4a, 0xbd, 0x00, 0xbc, 0x17,
-	0xcd, 0x5c, 0x59, 0x58, 0xea, 0x87, 0x36, 0x84, 0xef, 0x7c, 0xb0, 0x9a, 0xd1, 0xfe, 0x9f, 0x06,
-	0x3c, 0x44, 0x15, 0x26, 0x7a, 0xf8, 0x75, 0xc8, 0xf4, 0x15, 0xa4, 0x41, 0xbd, 0xc6, 0x82, 0xa3,
-	0x29, 0xd5, 0x0e, 0x4b, 0x0f, 0x01, 0xa3, 0xe4, 0xee, 0xdd, 0x85, 0x38, 0x5b, 0x13, 0xdd, 0x85,
-	0xef, 0x06, 0xe4, 0xc3, 0x52, 0xf2, 0xdf, 0xee, 0x83, 0x56, 0x53, 0x16, 0xf5, 0x9a, 0xe2, 0xfb,
-	0x19, 0x67, 0x56, 0x22, 0x3f, 0x2f, 0xae, 0xdd, 0xc4, 0x92, 0xdd, 0xed, 0x5c, 0xfb, 0xa1, 0x0b,
-	0x73, 0xca, 0x59, 0x57, 0xc1, 0xb3, 0xc5, 0xf2, 0xd5, 0xed, 0x37, 0x1c, 0xbf, 0xc3, 0x27, 0x3c,
-	0x9f, 0x04, 0x44, 0x3e, 0x42, 0xce, 0x67, 0x58, 0x45, 0x93, 0x1a, 0xb1, 0xbd, 0x98, 0xa7, 0xac,
-	0x19, 0x10, 0x0b, 0x64, 0x71, 0xb0, 0x22, 0x16, 0xdb, 0xf4, 0xcc, 0xf1, 0x68, 0xab, 0xca, 0xdd,
-	0x3e, 0x1b, 0xf5, 0x37, 0x0a, 0x2d, 0x86, 0x4e, 0xcb, 0xbe, 0x9c, 0x00, 0x06, 0xcd, 0xc6, 0x42,
-	0xd0, 0x6c, 0x68, 0x72, 0xeb, 0x0b, 0x6c, 0x4f, 0xd4, 0x99, 0x88, 0xb1, 0x02, 0xa4, 0xdb, 0x23,
-	0x90, 0x41, 0xb3, 0x23, 0x8b, 0x0e, 0xfe, 0xa6, 0x21, 0x32, 0xe0, 0x91, 0x53, 0xc8, 0xa8, 0x55,
-	0x83, 0x6c, 0x95, 0x22, 0x73, 0x21, 0x32, 0xdc, 0x99, 0xd6, 0xa4, 0x2d, 0x82, 0xf9, 0xd0, 0xea,
-	0x30, 0xa1, 0x42, 0x23, 0x83, 0x90, 0x0a, 0x8d, 0xce, 0x23, 0xa7, 0x90, 0x51, 0x7b, 0x7c, 0x15,
-	0x1a, 0x99, 0x3e, 0x54, 0x68, 0x74, 0x4c, 0x38, 0x85, 0x8c, 0xda, 0x34, 0xab, 0xd0, 0x48, 0x37,
-	0xaf, 0x42, 0xa3, 0x7d, 0xb7, 0x07, 0xf9, 0xd8, 0xfe, 0x96, 0xec, 0x6b, 0xb6, 0xc5, 0xb6, 0xdb,
-	0xe6, 0xd3, 0xa9, 0xf7, 0x0a, 0x46, 0xba, 0x90, 0xc5, 0x3b, 0x42, 0xb2, 0x87, 0x05, 0x11, 0xc9,
-	0x7c, 0x66, 0x71, 0xba, 0x8d, 0xa1, 0x32, 0xbc, 0x03, 0x53, 0x95, 0xc5, 0xf6, 0x94, 0xaa, 0xb2,
-	0x31, 0x0d, 0x5d, 0x17, 0xb2, 0x78, 0xea, 0x54, 0x95, 0xc5, 0xe6, 0x74, 0x55, 0xd9, 0x98, 0x4c,
-	0x3c, 0xa4, 0x51, 0x4d, 0x23, 0x38, 0x8d, 0x48, 0x02, 0xc6, 0x69, 0x44, 0x93, 0x65, 0x33, 0x98,
-	0x9e, 0xd5, 0xa2, 0x46, 0x76, 0xb4, 0xb8, 0x23, 0xe5, 0xd8, 0xdc, 0x9d, 0x62, 0x97, 0xcc, 0x9e,
-	0xa6, 0x06, 0x65, 0x0f, 0xd3, 0x54, 0x9c, 0x6e, 0xa3, 0x7c, 0x2f, 0x26, 0x29, 0x8b, 0x6d, 0xb1,
-	0xf0, 0x7b, 0x81, 0x2a, 0x0b, 0xd9, 0xd3, 0xe2, 0xb4, 0x33, 0xe6, 0xd5, 0x8c, 0x82, 0xb4, 0x3b,
-	0xc5, 0x2e, 0xc1, 0xc8, 0x57, 0x03, 0x36, 0x27, 0x24, 0x71, 0xf2, 0x6c, 0x0c, 0x14, 0x5a, 0x67,
-	0xcc, 0xe7, 0x37, 0x3c, 0x21, 0xd8, 0xab, 0x8d, 0x0f, 0x8f, 0x4a, 0x91, 0xff, 0x78, 0x2f, 0xe5,
-	0x45, 0x73, 0x29, 0xf8, 0x49, 0xf7, 0xe2, 0x5f, 0x00, 0x00, 0x00, 0xff, 0xff, 0x63, 0xff, 0x09,
-	0x1d, 0xf8, 0x13, 0x00, 0x00,
+	proto.RegisterFile("organization/organization.proto", fileDescriptor_organization_a66b64589e547186)
+}
+
+var fileDescriptor_organization_a66b64589e547186 = []byte{
+	// 938 bytes of a gzipped FileDescriptorProto
+	0x1f, 0x8b, 0x08, 0x00, 0x00, 0x00, 0x00, 0x00, 0x02, 0xff, 0xcc, 0x58, 0x4f, 0x4f, 0xe3, 0x46,
+	0x14, 0x97, 0x09, 0xa5, 0xf0, 0x88, 0xaa, 0x74, 0xa0, 0xa9, 0xe3, 0x16, 0x08, 0x06, 0x4a, 0x44,
+	0xa5, 0xa4, 0xa5, 0xc7, 0xde, 0x4a, 0xaa, 0x10, 0xa9, 0x34, 0xad, 0x2b, 0x0e, 0x54, 0x95, 0x22,
+	0xa7, 0x99, 0xcd, 0x46, 0x81, 0x78, 0x98, 0x71, 0x16, 0x2d, 0x1f, 0x60, 0xaf, 0x7b, 0xda, 0xcb,
+	0x6a, 0x0f, 0x7b, 0xde, 0xd3, 0x5e, 0xf7, 0x2b, 0xec, 0xa7, 0x5a, 0x79, 0x6c, 0x92, 0xf1, 0xcc,
+	0x38, 0x31, 0x4e, 0x58, 0x71, 0x9c, 0xe7, 0x79, 0x7f, 0x7e, 0xef, 0xbd, 0x79, 0x7f, 0x0c, 0x3b,
+	0x1e, 0xed, 0xb9, 0xc3, 0xfe, 0xad, 0xeb, 0xf7, 0xbd, 0x61, 0x4d, 0x3c, 0x54, 0x09, 0xf5, 0x7c,
+	0x0f, 0xe5, 0x45, 0x9a, 0xb5, 0xdb, 0x22, 0x78, 0xd8, 0x6e, 0x9e, 0xd5, 0xc8, 0xa0, 0x57, 0xe3,
+	0x17, 0x6a, 0xac, 0x3b, 0x68, 0xdf, 0xb0, 0xda, 0x0d, 0x0b, 0x19, 0xec, 0xd7, 0x06, 0x6c, 0x9c,
+	0x50, 0xec, 0xfa, 0xb8, 0x8e, 0x89, 0x4b, 0xfd, 0x2b, 0x3c, 0xf4, 0x1d, 0x7c, 0x8d, 0x7e, 0x87,
+	0xaf, 0xba, 0x63, 0x42, 0x73, 0xf8, 0xc4, 0x33, 0x8d, 0xb2, 0x51, 0x59, 0x3f, 0xde, 0xaa, 0x32,
+	0x4c, 0x9f, 0x61, 0xda, 0x76, 0x49, 0xbf, 0x4d, 0x5c, 0xea, 0x5e, 0xb1, 0xaa, 0xc0, 0x29, 0x31,
+	0xa1, 0x32, 0xac, 0x7b, 0x04, 0x53, 0x6e, 0x4e, 0xb3, 0x6e, 0x2e, 0x95, 0x8d, 0xca, 0x9a, 0x23,
+	0x92, 0x90, 0x05, 0xab, 0x1e, 0x39, 0x67, 0x98, 0x36, 0xeb, 0x66, 0x8e, 0x7f, 0x1e, 0x9f, 0xed,
+	0x97, 0x06, 0x6c, 0xaa, 0xc6, 0x31, 0x82, 0x4c, 0xf8, 0x12, 0x53, 0x7a, 0xe2, 0x75, 0x31, 0x37,
+	0xeb, 0x0b, 0xe7, 0xee, 0x88, 0x8a, 0xb0, 0x82, 0x29, 0x3d, 0x63, 0xbd, 0x48, 0x57, 0x74, 0xd2,
+	0xe0, 0xc9, 0x65, 0xc0, 0xc3, 0xdd, 0x75, 0x4e, 0xba, 0x8f, 0xd3, 0x5d, 0xa7, 0xb0, 0xa9, 0xda,
+	0x96, 0xc5, 0x5b, 0xf6, 0x0d, 0x6c, 0x34, 0xb0, 0xff, 0xcf, 0xa8, 0x13, 0x47, 0x69, 0x43, 0x5e,
+	0x30, 0xb8, 0xce, 0xa5, 0xad, 0x39, 0x31, 0xda, 0x02, 0x22, 0xae, 0x6a, 0x9e, 0x3f, 0xe2, 0x7f,
+	0xf4, 0x99, 0x6f, 0xe6, 0xca, 0xb9, 0x7b, 0x85, 0x24, 0x60, 0x0a, 0x5c, 0x51, 0xc7, 0x97, 0x58,
+	0x0e, 0xf8, 0xc3, 0xbb, 0xe2, 0x14, 0x36, 0x55, 0xc5, 0x99, 0xa2, 0xd9, 0x85, 0xef, 0x1b, 0xd8,
+	0x9f, 0x88, 0xf9, 0xcb, 0xa5, 0xdc, 0xc0, 0x00, 0xdf, 0xc2, 0xb0, 0xd8, 0x23, 0xd8, 0x9a, 0xa2,
+	0x25, 0x53, 0x08, 0x6d, 0xc8, 0x13, 0x41, 0x0a, 0x0f, 0xe0, 0x9a, 0x13, 0xa3, 0xd9, 0x1f, 0x0d,
+	0x28, 0x85, 0x35, 0xa2, 0x25, 0x94, 0xbe, 0xc0, 0x87, 0x01, 0xb4, 0x16, 0x14, 0x3c, 0x89, 0x1c,
+	0xbd, 0xcc, 0x3d, 0x4d, 0x1a, 0x28, 0x12, 0x14, 0xe6, 0xf9, 0x62, 0x8a, 0xb6, 0x01, 0x9a, 0xcc,
+	0xc1, 0xbd, 0x3e, 0xf3, 0x31, 0x35, 0x97, 0xcb, 0x46, 0x65, 0xd5, 0x11, 0x28, 0xf6, 0x9f, 0x60,
+	0x25, 0x61, 0xc9, 0x14, 0xf9, 0x77, 0x06, 0x94, 0xc2, 0x92, 0xf0, 0xf8, 0x9d, 0x13, 0x80, 0x4f,
+	0xb2, 0x35, 0x33, 0x78, 0xb9, 0x7b, 0x9c, 0xe1, 0xab, 0xce, 0x18, 0x7c, 0x57, 0x22, 0x4f, 0x01,
+	0xaf, 0x48, 0x50, 0x98, 0xe7, 0x07, 0x9f, 0x64, 0x6b, 0x26, 0xf0, 0x43, 0x28, 0x36, 0xb0, 0xcf,
+	0x85, 0x0f, 0xe3, 0x95, 0xab, 0x08, 0x2b, 0xa3, 0xd0, 0x86, 0xf0, 0x9d, 0x47, 0xa7, 0x39, 0xed,
+	0x7f, 0x63, 0xc0, 0xb7, 0x5a, 0x85, 0x99, 0x1e, 0x7e, 0x0b, 0x0a, 0x23, 0x49, 0x52, 0xd4, 0xaf,
+	0x75, 0xc1, 0x51, 0x94, 0x2a, 0xcc, 0xc2, 0x43, 0xd0, 0xb9, 0xe4, 0xf1, 0xe5, 0x42, 0x92, 0xad,
+	0x99, 0x72, 0xe1, 0x95, 0x01, 0xa5, 0xb0, 0x95, 0x7c, 0xb6, 0x7c, 0x50, 0x7a, 0xca, 0xb2, 0xda,
+	0x53, 0x02, 0x9c, 0x49, 0x66, 0x65, 0xc2, 0x79, 0x7d, 0x07, 0x53, 0x57, 0xec, 0x1e, 0x26, 0xed,
+	0xc7, 0x10, 0x16, 0x54, 0xb3, 0x6e, 0xf9, 0xb3, 0xd5, 0xd5, 0xab, 0x87, 0x1f, 0x38, 0xde, 0x87,
+	0x4f, 0x78, 0x31, 0x05, 0x08, 0xfd, 0x0f, 0x66, 0xe0, 0x61, 0x59, 0x9a, 0x30, 0x88, 0x1d, 0x26,
+	0x3c, 0x65, 0xc5, 0x80, 0x44, 0x41, 0x36, 0x05, 0x3b, 0x66, 0xb1, 0x83, 0x2f, 0x5d, 0x1f, 0x77,
+	0x1b, 0xd4, 0x1b, 0x91, 0xc9, 0x7c, 0x23, 0xb9, 0xc5, 0x50, 0xdd, 0x72, 0x24, 0x16, 0x80, 0x68,
+	0xd8, 0x58, 0xe2, 0xc3, 0x86, 0x42, 0xb7, 0x9f, 0xc3, 0xde, 0x4c, 0x9d, 0x99, 0x3c, 0x56, 0x86,
+	0xf5, 0xde, 0x44, 0x48, 0x34, 0xec, 0x88, 0x24, 0xfb, 0x3f, 0x30, 0xc7, 0x35, 0x56, 0x4c, 0xb8,
+	0x00, 0xe4, 0x36, 0x40, 0x98, 0xd1, 0x9c, 0xd9, 0xe0, 0xcc, 0x02, 0x25, 0xc5, 0x00, 0xf7, 0xd6,
+	0x80, 0x52, 0x82, 0xf8, 0x4c, 0x78, 0xfe, 0x86, 0xaf, 0xe5, 0x09, 0x81, 0x45, 0xa1, 0x4f, 0x35,
+	0x5f, 0xa8, 0xdc, 0xc7, 0x1f, 0xf2, 0x10, 0xdb, 0x70, 0xd1, 0x05, 0x14, 0xe4, 0xb6, 0x89, 0x76,
+	0xab, 0xb1, 0xc5, 0x58, 0xb3, 0xdd, 0x5a, 0xf6, 0xac, 0x2b, 0x8c, 0x04, 0xa2, 0xe5, 0x6d, 0x4a,
+	0x16, 0xad, 0xd9, 0x04, 0x65, 0xd1, 0xda, 0x85, 0xec, 0x02, 0x0a, 0xf2, 0x92, 0x23, 0x8b, 0xd6,
+	0xac, 0x5f, 0xb2, 0x68, 0xed, 0x9e, 0x74, 0x01, 0x05, 0x79, 0x6b, 0x90, 0x45, 0x6b, 0xd6, 0x19,
+	0x59, 0xb4, 0x76, 0xf1, 0xf0, 0x79, 0x7a, 0xe8, 0x07, 0x7c, 0x74, 0xa4, 0xd8, 0x96, 0xb8, 0x6f,
+	0x58, 0x3f, 0xa6, 0xbe, 0xcb, 0x08, 0x1a, 0x40, 0x51, 0x3f, 0x12, 0xa3, 0x43, 0x5d, 0x10, 0x35,
+	0xa5, 0xdf, 0xaa, 0xa4, 0xbb, 0x18, 0x2a, 0xd3, 0x8f, 0xa0, 0xb2, 0xb2, 0xc4, 0xa1, 0x5a, 0x56,
+	0x36, 0x65, 0xa2, 0x1d, 0x40, 0x51, 0xdf, 0x3b, 0x64, 0x65, 0x89, 0x4d, 0x4d, 0x56, 0x36, 0xa5,
+	0x15, 0x8d, 0xdd, 0x28, 0xd7, 0x51, 0xbd, 0x1b, 0x35, 0x1d, 0x48, 0xef, 0x46, 0x6d, 0xb7, 0xe8,
+	0xf0, 0xdf, 0x07, 0x72, 0x57, 0x47, 0xfb, 0x4a, 0xdc, 0x35, 0xf3, 0x88, 0x75, 0x90, 0xe2, 0x96,
+	0xe8, 0x3d, 0x45, 0x8d, 0xd6, 0x7b, 0x3a, 0x4d, 0x95, 0x74, 0x17, 0xc5, 0xbc, 0x98, 0xa5, 0x2c,
+	0x71, 0xc6, 0xd4, 0xe7, 0x85, 0x56, 0x59, 0xe8, 0x3d, 0x25, 0x4e, 0xfb, 0x53, 0x5e, 0xcd, 0x24,
+	0x48, 0x07, 0x29, 0x6e, 0x31, 0x82, 0x5e, 0x18, 0xb0, 0x33, 0xa3, 0x8b, 0xa1, 0x9f, 0xa6, 0x88,
+	0xd2, 0x36, 0x5a, 0xeb, 0xe7, 0x7b, 0x72, 0x30, 0x82, 0x9e, 0xc2, 0x37, 0xda, 0x9e, 0x83, 0x7e,
+	0x48, 0x48, 0x03, 0xa9, 0xef, 0x59, 0x87, 0xa9, 0xee, 0x31, 0xf2, 0xdb, 0xd6, 0xbf, 0xdf, 0x55,
+	0x63, 0xbf, 0x4c, 0x7f, 0x15, 0x0f, 0x9d, 0x15, 0xfe, 0x3f, 0xf4, 0x97, 0x4f, 0x01, 0x00, 0x00,
+	0xff, 0xff, 0xd0, 0x99, 0xbc, 0xd7, 0x63, 0x15, 0x00, 0x00,
 }
diff --git a/pkg/proto/organization/organization.proto b/pkg/proto/organization/organization.proto
index ef7aedbf7..fc5655c4a 100644
--- a/pkg/proto/organization/organization.proto
+++ b/pkg/proto/organization/organization.proto
@@ -171,6 +171,17 @@ message GetDepartmentRelatedGroupIDListResp {
   repeated string groupIDList = 3;
 }
 
+message GetUserInOrganizationReq{
+  repeated string userIDList = 1;
+  string operationID = 2;
+}
+
+message GetUserInOrganizationResp{
+  int32   errCode = 1;
+  string  errMsg = 2;
+  repeated server_api_params.OrganizationUser organizationUsers = 3;
+}
+
 service organization{
   rpc CreateDepartment(CreateDepartmentReq) returns(CreateDepartmentResp);
   rpc UpdateDepartment(UpdateDepartmentReq) returns(UpdateDepartmentResp);
@@ -189,6 +200,8 @@ service organization{
   rpc UpdateUserInDepartment(UpdateUserInDepartmentReq) returns(UpdateUserInDepartmentResp);
   rpc GetDepartmentMember(GetDepartmentMemberReq) returns(GetDepartmentMemberResp);
   rpc GetDepartmentRelatedGroupIDList(GetDepartmentRelatedGroupIDListReq) returns(GetDepartmentRelatedGroupIDListResp);
+
+  rpc GetUserInOrganization(GetUserInOrganizationReq) returns(GetUserInOrganizationResp);
 }