Skip to content

Commit

Permalink
[ISSUE #76] Add InstanceUser and ACL interfaces (#77)
Browse files Browse the repository at this point in the history
* feat: add service user and acl

* feat: add service user and acl

* feat: add service user and acl

* feat: add service user and acl

* feat: replace serviceuser with instanceuser

* feat: replace serviceuser with instanceuser #2

* feat: commit deletion serviceusermapperTest

* feat: 提交 application-test.yml 改回密码password的

* feat: 最终更改

* feat: 最终更改-2

* feat: 最终更改-3

* Revert "feat: 最终更改-3"

This reverts commit 528d6f2.

* feat: 最终更改-4

* feat: 最终更改-5
  • Loading branch information
318228han authored Apr 2, 2024
1 parent 67bc4f0 commit efdae6e
Show file tree
Hide file tree
Showing 22 changed files with 949 additions and 149 deletions.
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -18,6 +18,7 @@ bin/
*.iws
*.iml
*.ipr
*.http
out/
!**/src/main/**/out/
!**/src/test/**/out/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -25,7 +25,7 @@
* Service users are users that are used by components like mysql, kafka, etc.
*/
@Data
public class ServiceUserMetadata {
public class InstanceUserMetadata {

private String userName;
//service users are only store users by now
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,9 +17,9 @@

package org.apache.eventmesh.dashboard.common.model.remoting.user;

import org.apache.eventmesh.dashboard.common.model.metadata.ServiceUserMetadata;
import org.apache.eventmesh.dashboard.common.model.metadata.InstanceUserMetadata;

public class CreateUserRequest {

private ServiceUserMetadata serviceUserMetadata;
private InstanceUserMetadata instanceUserMetadata;
}
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@
package org.apache.eventmesh.dashboard.common.model.remoting.user;


import org.apache.eventmesh.dashboard.common.model.metadata.ServiceUserMetadata;
import org.apache.eventmesh.dashboard.common.model.metadata.InstanceUserMetadata;

import java.util.List;

Expand All @@ -27,5 +27,5 @@
@Data
public class GetUserResponse {

private List<ServiceUserMetadata> serviceUserMetadata;
private List<InstanceUserMetadata> instanceUserMetadata;
}
44 changes: 22 additions & 22 deletions eventmesh-dashboard-console/pom.xml
Original file line number Diff line number Diff line change
Expand Up @@ -79,29 +79,29 @@
<scope>runtime</scope>
</dependency>

<!-- health check client -->
<!-- EventMesh SDK -->
<!-- <dependency>-->
<!-- <groupId>org.apache.eventmesh</groupId>-->
<!-- <artifactId>eventmesh-sdk-java</artifactId>-->
<!-- <version>1.10.0-release</version>-->
<!-- <exclusions>-->
<!-- <exclusion>-->
<!-- <groupId>junit</groupId>-->
<!-- <artifactId>junit</artifactId>-->
<!-- </exclusion>-->
<!-- <exclusion>-->
<!-- <groupId>junit</groupId>-->
<!-- <artifactId>junit-dep</artifactId>-->
<!-- </exclusion>-->
<!-- <exclusion>-->
<!-- <groupId>org.apache.logging.log4j</groupId>-->
<!-- <artifactId>log4j-slf4j-impl</artifactId>-->
<!-- </exclusion>-->
<!-- </exclusions>-->
<!-- </dependency>-->
<!--health check client -->
<!--EventMesh SDK -->
<!--<dependency>-->
<!-- <groupId>org.apache.eventmesh</groupId>-->
<!-- <artifactId>eventmesh-sdk-java</artifactId>-->
<!-- <version>1.10.0-release</version>-->
<!-- <exclusions>-->
<!-- <exclusion>-->
<!-- <groupId>junit</groupId>-->
<!-- <artifactId>junit</artifactId>-->
<!-- </exclusion>-->
<!-- <exclusion>-->
<!-- <groupId>junit</groupId>-->
<!-- <artifactId>junit-dep</artifactId>-->
<!-- </exclusion>-->
<!-- <exclusion>-->
<!-- <groupId>org.apache.logging.log4j</groupId>-->
<!-- <artifactId>log4j-slf4j-impl</artifactId>-->
<!-- </exclusion>-->
<!-- </exclusions>-->
<!--</dependency>-->

<!-- health check client end -->
<!--health check client end-->
</dependencies>

<build>
Expand Down
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.apache.eventmesh.dashboard.console.controller;

import org.apache.eventmesh.dashboard.console.entity.acl.AclEntity;
import org.apache.eventmesh.dashboard.console.service.acl.AclService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/acl")
public class AclController {

@Autowired
private AclService aclService;

@PostMapping("/insertAcl")
public void insertAcl(@RequestBody AclEntity aclEntity) {
this.aclService.insert(aclEntity);
}

@PostMapping("deleteAcl")
public void deleteAcl(@RequestBody AclEntity aclEntity) {
this.aclService.deleteAclById(aclEntity);
}

@PostMapping("/updateAcl")
public void updateAcl(@RequestBody AclEntity aclEntity) {
this.aclService.updateResourceTypeById(aclEntity);
}

@PostMapping("/selectAcl")
public void selectAcl(@RequestBody AclEntity aclEntity) {
this.aclService.selectById(aclEntity);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,66 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.apache.eventmesh.dashboard.console.controller;

import org.apache.eventmesh.dashboard.console.entity.instanceuser.InstanceUserEntity;
import org.apache.eventmesh.dashboard.console.service.instanceuser.InstanceUserService;

import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.web.bind.annotation.PostMapping;
import org.springframework.web.bind.annotation.RequestBody;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;

@RestController
@RequestMapping("/instanceUser")
public class InstanceUserController {

@Autowired
private InstanceUserService instanceUserService;

@PostMapping("/insertInstanceUser")
public void insertInstanceUser(@RequestBody InstanceUserEntity instanceUserEntity) {
this.instanceUserService.insert(instanceUserEntity);
}

@PostMapping("/deleteInstanceUserByCluster")
public void deleteInstanceUserByCluster(@RequestBody InstanceUserEntity instanceUserEntity) {
this.instanceUserService.deleteInstanceUserByCluster(instanceUserEntity);
}

@PostMapping("/updateNameById")
public void updateNameById(@RequestBody InstanceUserEntity instanceUserEntity) {
this.instanceUserService.updatePasswordById(instanceUserEntity);
}

@PostMapping("/selectAll")
public void selectAll() {

}

@PostMapping("/selectById")
public void selectById(@RequestBody InstanceUserEntity instanceUserEntity) {
this.instanceUserService.selectById(instanceUserEntity);
}

@PostMapping("/selectByName")
public void selectByName(@RequestBody InstanceUserEntity instanceUserEntity) {
this.instanceUserService.selectByName(instanceUserEntity);
}

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,45 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.apache.eventmesh.dashboard.console.entity.acl;

import org.apache.eventmesh.dashboard.console.entity.base.BaseEntity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;

@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true, exclude = "status")
public class AclEntity extends BaseEntity {

private static final long serialVersionUID = 6057071983428111947L;
private Long id;
private Long clusterId;
private String pattern;
private Integer operation;
private Integer permissionType;
private String host;
private Integer resourceType;
private String resourceName;
private Integer patternType;
private Integer status;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.apache.eventmesh.dashboard.console.entity.instanceuser;

import org.apache.eventmesh.dashboard.console.entity.base.BaseEntity;

import lombok.AllArgsConstructor;
import lombok.Data;
import lombok.EqualsAndHashCode;
import lombok.NoArgsConstructor;


@Data
@AllArgsConstructor
@NoArgsConstructor
@EqualsAndHashCode(callSuper = true, exclude = "status")
public class InstanceUserEntity extends BaseEntity {

private Integer instanceType;

private String password;

private Long clusterId;

private String name;

private String token;

private Integer status;

}
Original file line number Diff line number Diff line change
@@ -0,0 +1,64 @@
/*
* Licensed to the Apache Software Foundation (ASF) under one or more
* contributor license agreements. See the NOTICE file distributed with
* this work for additional information regarding copyright ownership.
* The ASF licenses this file to You under the Apache License, Version 2.0
* (the "License"); you may not use this file except in compliance with
* the License. You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/

package org.apache.eventmesh.dashboard.console.mapper.acl;

import org.apache.eventmesh.dashboard.console.entity.acl.AclEntity;

import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Options;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update;

import java.util.List;

/**
* Mybatis Mapper for the table of acl.
*/
@Mapper
public interface AclMapper {

@Insert({
"<script>",
" INSERT INTO acl (cluster_Id, pattern, operation, permission_Type, host, resource_Type, resource_Name, pattern_Type) VALUES ",
" <foreach collection='list' item='c' index='index' separator=','>",
" (#{c.clusterId}, #{c.pattern}, #{c.operation}, #{c.permissionType}, #{c.host}, "
+
" #{c.resourceType}, #{c.resourceName}, #{c.patternType})",
" </foreach>",
"</script>"})
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
void batchInsert(List<AclEntity> aclEntities);

@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
@Insert("INSERT INTO acl (cluster_id, pattern, operation, permission_type, host, resource_type, resource_name, pattern_type)"
+ "VALUE (#{clusterId}, #{pattern}, #{operation}, #{permissionType}, #{host}, #{resourceType}, #{resourceName}, #{patternType})")
void insert(AclEntity aclEntity);

@Update("UPDATE acl SET status=0 WHERE id=#{id}")
void deleteById(AclEntity aclEntity);

@Update("UPDATE acl SET resource_type=#{resourceType} WHERE id=#{id}")
void updateResourceTypeById(AclEntity aclEntity);

@Select("SELECT * FROM acl")
List<AclEntity> selectAll();

@Select("SELECT * FROM acl WHERE id=#{id}")
AclEntity selectById(AclEntity aclEntity);
}
Original file line number Diff line number Diff line change
Expand Up @@ -52,7 +52,8 @@ public interface ConfigMapper {
@Insert("INSERT INTO config (cluster_id, business_type, instance_type, instance_id, config_name, config_value, start_version, "
+ "status, is_default, end_version, diff_type, description, edit, is_modify, eventmesh_version) VALUE "
+ "(#{clusterId},#{businessType},#{instanceType},#{instanceId},#{configName},"
+ "#{configValue},#{startVersion},#{status},#{isDefault},#{endVersion},#{diffType},#{description},#{edit},#{isModify},#{eventmeshVersion})")
+ "#{configValue},#{startVersion},#{status},#{isDefault},#{endVersion},#{diffType},"
+ "#{description},#{edit},#{isModify},#{eventmeshVersion})")
@Options(useGeneratedKeys = true, keyProperty = "id", keyColumn = "id")
Integer addConfig(ConfigEntity configEntity);

Expand Down
Loading

0 comments on commit efdae6e

Please sign in to comment.