实现删除角色分组部分代码
This commit is contained in:
parent
905e216bd1
commit
812ff3fab4
@ -9,16 +9,18 @@ import org.springframework.web.bind.annotation.PostMapping;
|
||||
import org.springframework.web.bind.annotation.RequestBody;
|
||||
import org.springframework.web.bind.annotation.RequestParam;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
/**
|
||||
* 权限集
|
||||
*/
|
||||
@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080/api/saasPermissionGoup}")
|
||||
@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080}")
|
||||
public interface SaasPermissionGroupApi {
|
||||
|
||||
/**
|
||||
* 保存/更新
|
||||
*/
|
||||
@PostMapping("saveOrUpdate")
|
||||
@PostMapping("/api/saasPermissionGoup/saveOrUpdate")
|
||||
ApiResult<Void> saveOrUpdate(@RequestBody SaasPermissionGroupVO req);
|
||||
|
||||
/**
|
||||
@ -26,19 +28,19 @@ public interface SaasPermissionGroupApi {
|
||||
* @param id
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("getById")
|
||||
@PostMapping("/api/saasPermissionGoup/getById")
|
||||
ApiResult<SaasPermissionGroupVO> getById(@RequestParam("id") Long id);
|
||||
|
||||
/**
|
||||
* 查询
|
||||
*/
|
||||
@PostMapping("query")
|
||||
@PostMapping("/api/saasPermissionGoup/query")
|
||||
ApiPageResult<SaasPermissionGroupVO> query(@RequestBody QuerySaasPermissionGroupReq req);
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@PostMapping("delete")
|
||||
ApiResult<Void> delete(@RequestParam(required = true) Long id);
|
||||
@PostMapping("/api/saasPermissionGoup/delete")
|
||||
ApiResult delete(@RequestBody List<Long> id);
|
||||
|
||||
}
|
||||
|
||||
@ -41,6 +41,12 @@ public interface SaasRoleApi {
|
||||
@PostMapping("/api/saasRole/query")
|
||||
ApiResult<List<SaasRoleVO>> query(@RequestBody QuerySaasRoleReq req);
|
||||
|
||||
/**
|
||||
* 删除
|
||||
*/
|
||||
@PostMapping("/api/saasRole/delete")
|
||||
ApiResult delete(@RequestBody List<Long> id);
|
||||
|
||||
/**
|
||||
* 根据身份id身份类型查询权限列表(批量)
|
||||
* @param identityType 身份类型 1:工人 2:班组长 3:从业人员 4:监管人员 5:运营人员
|
||||
|
||||
@ -13,28 +13,28 @@ import java.util.List;
|
||||
/**
|
||||
* 角色分组
|
||||
*/
|
||||
@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080/api/saasRoleGroup}")
|
||||
@FeignClient(name = "tyr", url = "${axzo.service.tyr:http://tyr:8080}")
|
||||
public interface SaasRoleGroupApi {
|
||||
|
||||
/**
|
||||
* 保存/更新
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("save")
|
||||
ApiResult<Void> saveOrUpdate(@RequestBody SaasRoleGroupVO req);
|
||||
@PostMapping("/api/saasRoleGroup/save")
|
||||
ApiResult saveOrUpdate(@RequestBody SaasRoleGroupVO req);
|
||||
|
||||
/**
|
||||
* 获取权限分组列表
|
||||
* @return
|
||||
*/
|
||||
@PostMapping("getList")
|
||||
@PostMapping("/api/saasRoleGroup/getList")
|
||||
ApiResult<List<SaasRoleGroupVO>> getList(@RequestBody QuerySaasRoleGroupReq req);
|
||||
|
||||
/**
|
||||
* 删除分组
|
||||
* 删除
|
||||
*/
|
||||
@PostMapping("delete")
|
||||
ApiResult<Void> delete(@RequestParam(required = true) Long id);
|
||||
@PostMapping("/api/saasRoleGroup//api/saasPermissionGoup/delete")
|
||||
ApiResult delete(@RequestBody List<Long> id);
|
||||
|
||||
|
||||
}
|
||||
|
||||
@ -1,11 +1,17 @@
|
||||
package cn.axzo.tyr.client.model.vo;
|
||||
|
||||
import lombok.AllArgsConstructor;
|
||||
import lombok.Builder;
|
||||
import lombok.Data;
|
||||
import lombok.NoArgsConstructor;
|
||||
|
||||
import java.util.Date;
|
||||
import java.util.List;
|
||||
|
||||
@Data
|
||||
@AllArgsConstructor
|
||||
@NoArgsConstructor
|
||||
@Builder
|
||||
public class SaasRoleGroupVO {
|
||||
|
||||
private Long id;
|
||||
@ -13,22 +19,12 @@ public class SaasRoleGroupVO {
|
||||
/**
|
||||
* 工作台类型字典code
|
||||
*/
|
||||
private Long workspaceTypeCode;
|
||||
private String workspaceTypeCode;
|
||||
|
||||
/**
|
||||
* 单位类型字典code
|
||||
*/
|
||||
private List<Long> ouTypeCode;
|
||||
|
||||
/**
|
||||
* 所属工作台id
|
||||
*/
|
||||
private Long workspaceId;
|
||||
|
||||
/**
|
||||
* 所属单位id
|
||||
*/
|
||||
private Long ouId;
|
||||
private List<String> ouTypeCode;
|
||||
|
||||
/**
|
||||
* 名称
|
||||
|
||||
@ -0,0 +1,58 @@
|
||||
package cn.axzo.tyr.server.controller.role;
|
||||
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.framework.domain.web.result.ApiPageResult;
|
||||
import cn.axzo.framework.domain.web.result.ApiResult;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.client.feign.SaasPermissionGroupApi;
|
||||
import cn.axzo.tyr.client.model.req.QuerySaasPermissionGroupReq;
|
||||
import cn.axzo.tyr.client.model.vo.SaasPermissionGroupVO;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPermissionGroupDao;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPermissionGroupScopeDao;
|
||||
import cn.axzo.tyr.server.repository.service.SaasPgroupPermissionRelationDao;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
import lombok.extern.slf4j.Slf4j;
|
||||
import org.springframework.transaction.annotation.Transactional;
|
||||
import org.springframework.web.bind.annotation.RestController;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
|
||||
@Slf4j
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
public class SaasPermissionGroupController implements SaasPermissionGroupApi {
|
||||
|
||||
private final SaasPermissionGroupDao permissionGroupDao;
|
||||
private final SaasPgroupPermissionRelationDao pgroupPermissionRelationDao;
|
||||
private final SaasPermissionGroupScopeDao permissionGroupScopeDao;
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> saveOrUpdate(SaasPermissionGroupVO req) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<SaasPermissionGroupVO> getById(Long id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiPageResult<SaasPermissionGroupVO> query(QuerySaasPermissionGroupReq req) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Transactional
|
||||
@Override
|
||||
public ApiResult delete(List<Long> id) {
|
||||
// 删除权限集
|
||||
permissionGroupDao.delete(id);
|
||||
// 删除权限集权限关联关系
|
||||
pgroupPermissionRelationDao.deleteByPGroupId(id);
|
||||
// 删除权限集作用范围
|
||||
permissionGroupScopeDao.deleteByPGroupId(id);
|
||||
return ApiResult.ok();
|
||||
}
|
||||
|
||||
}
|
||||
@ -53,6 +53,11 @@ public class SaasRoleController implements SaasRoleApi {
|
||||
return ApiResult.ok(roleService.query(req));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult delete(List<Long> id) {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<List<SaasRoleVO>> queryByIdentityIdType(Long identityId, Integer identityType,Long workspaceId,Long ouId) {
|
||||
return ApiResult.ok(roleService.queryByIdentityIdType(identityId, identityType,workspaceId,ouId));
|
||||
|
||||
@ -15,11 +15,13 @@ import java.util.List;
|
||||
@RestController
|
||||
@RequiredArgsConstructor
|
||||
public class SaasRoleGroupController implements SaasRoleGroupApi {
|
||||
|
||||
private final SaasRoleGroupService saasRoleGroupService;
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> saveOrUpdate(SaasRoleGroupVO req) {
|
||||
return null;
|
||||
public ApiResult saveOrUpdate(SaasRoleGroupVO req) {
|
||||
saasRoleGroupService.saveOrUpdate(req);
|
||||
return ApiResult.ok();
|
||||
}
|
||||
|
||||
@Override
|
||||
@ -28,7 +30,8 @@ public class SaasRoleGroupController implements SaasRoleGroupApi {
|
||||
}
|
||||
|
||||
@Override
|
||||
public ApiResult<Void> delete(Long id) {
|
||||
return null;
|
||||
public ApiResult delete(List<Long> id) {
|
||||
|
||||
return ApiResult.ok();
|
||||
}
|
||||
}
|
||||
|
||||
@ -23,6 +23,12 @@ public class SaasPermissionGroupScope extends BaseEntity<SaasPermissionGroupScop
|
||||
|
||||
private static final long serialVersionUID = 972205950455439772L;
|
||||
|
||||
/**
|
||||
* 权限组id
|
||||
*/
|
||||
@TableField("pgroup_id")
|
||||
private Integer pgroupId;
|
||||
|
||||
/**
|
||||
* 选择类型: 1.正选 2.反选
|
||||
*/
|
||||
|
||||
@ -1,12 +1,21 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroup;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasPermissionGroupMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public class SaasPermissionGroupDao extends ServiceImpl<SaasPermissionGroupMapper, SaasPermissionGroup> {
|
||||
|
||||
public void delete(List<Long> id) {
|
||||
lambdaUpdate()
|
||||
.in(BaseEntity::getId,id)
|
||||
.set(BaseEntity::getIsDelete,id)
|
||||
.update();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroup;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroupScope;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasPermissionGroupMapper;
|
||||
@ -7,8 +9,16 @@ import cn.axzo.tyr.server.repository.mapper.SaasPermissionGroupScopeMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public class SaasPermissionGroupScopeDao extends ServiceImpl<SaasPermissionGroupScopeMapper, SaasPermissionGroupScope> {
|
||||
|
||||
public void deleteByPGroupId(List<Long> pgroupId) {
|
||||
lambdaUpdate()
|
||||
.in(SaasPermissionGroupScope::getPgroupId,pgroupId)
|
||||
.set(BaseEntity::getIsDelete, TableIsDeleteEnum.DELETE.value)
|
||||
.update();
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupPermissionRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasPgroupPermissionRelationMapper;
|
||||
@ -17,5 +19,13 @@ public class SaasPgroupPermissionRelationDao extends ServiceImpl<SaasPgroupPermi
|
||||
this.remove(new LambdaQueryWrapper<SaasPgroupPermissionRelation>()
|
||||
.in(SaasPgroupPermissionRelation::getFeatureId, permissionPointIds));
|
||||
}
|
||||
|
||||
public void deleteByPGroupId(List<Long> pgroupId) {
|
||||
lambdaUpdate()
|
||||
.in(SaasPgroupPermissionRelation::getGroupId,pgroupId)
|
||||
.set(BaseEntity::getIsDelete, TableIsDeleteEnum.DELETE.value)
|
||||
.update();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPermissionGroup;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasPermissionGroupMapper;
|
||||
@ -7,8 +9,17 @@ import cn.axzo.tyr.server.repository.mapper.SaasPgroupRoleRelationMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public class SaasPgroupRoleRelationDao extends ServiceImpl<SaasPgroupRoleRelationMapper, SaasPgroupRoleRelation> {
|
||||
|
||||
public void deleteByRoleId(List<Long> roleId) {
|
||||
lambdaUpdate()
|
||||
.in(SaasPgroupRoleRelation::getRoleId,roleId)
|
||||
.set(BaseEntity::getIsDelete, TableIsDeleteEnum.DELETE.value)
|
||||
.update();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,6 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRole;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroup;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasRoleGroupMapper;
|
||||
@ -7,8 +8,17 @@ import cn.axzo.tyr.server.repository.mapper.SaasRoleMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public class SaasRoleDao extends ServiceImpl<SaasRoleMapper, SaasRole> {
|
||||
|
||||
public void delete(List<Long> id) {
|
||||
lambdaUpdate()
|
||||
.in(BaseEntity::getId,id)
|
||||
.set(BaseEntity::getIsDelete,id)
|
||||
.update();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -45,5 +45,12 @@ public class SaasRoleGroupDao extends ServiceImpl<SaasRoleGroupMapper, SaasRoleG
|
||||
return eq.list();
|
||||
}
|
||||
|
||||
public void delete(List<Long> id) {
|
||||
lambdaUpdate()
|
||||
.in(BaseEntity::getId,id)
|
||||
.set(BaseEntity::getIsDelete,id)
|
||||
.update();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -1,5 +1,7 @@
|
||||
package cn.axzo.tyr.server.repository.service;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.pokonyan.config.mybatisplus.BaseEntity;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroup;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
||||
import cn.axzo.tyr.server.repository.mapper.SaasRoleGroupMapper;
|
||||
@ -7,8 +9,17 @@ import cn.axzo.tyr.server.repository.mapper.SaasRoleGroupRelationMapper;
|
||||
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
|
||||
import org.springframework.stereotype.Repository;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
@Repository
|
||||
public class SaasRoleGroupRelationDao extends ServiceImpl<SaasRoleGroupRelationMapper, SaasRoleGroupRelation> {
|
||||
|
||||
public void deleteByRoleGroupId(List<Long> roleGroupId) {
|
||||
lambdaUpdate()
|
||||
.in(SaasRoleGroupRelation::getSaasRoleGroupId, roleGroupId)
|
||||
.set(BaseEntity::getIsDelete, TableIsDeleteEnum.DELETE.value)
|
||||
.update();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -21,5 +21,13 @@ public class SaasRoleUserRelationDao extends ServiceImpl<SaasRoleUserRelationMap
|
||||
.eq(BaseEntity::getIsDelete, TableIsDeleteEnum.NORMAL.value)
|
||||
.list();
|
||||
}
|
||||
|
||||
public void deleteByRoldId(List<Long> roleId) {
|
||||
lambdaUpdate()
|
||||
.in(SaasRoleUserRelation::getRoleId,roleId)
|
||||
.set(BaseEntity::getIsDelete,TableIsDeleteEnum.DELETE.value)
|
||||
.update();
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
|
||||
@ -7,4 +7,8 @@ import java.util.List;
|
||||
|
||||
public interface SaasRoleGroupService {
|
||||
List<SaasRoleGroupVO> getList(QuerySaasRoleGroupReq req);
|
||||
|
||||
void saveOrUpdate(SaasRoleGroupVO req);
|
||||
|
||||
void delete(Long id);
|
||||
}
|
||||
|
||||
@ -1,12 +1,13 @@
|
||||
package cn.axzo.tyr.server.service.impl;
|
||||
import java.util.Date;
|
||||
|
||||
import cn.axzo.basics.common.constant.enums.TableIsDeleteEnum;
|
||||
import cn.axzo.tyr.client.model.req.QuerySaasRoleGroupReq;
|
||||
import cn.axzo.tyr.client.model.vo.SaasRoleGroupVO;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasPgroupRoleRelation;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroup;
|
||||
import cn.axzo.tyr.server.repository.entity.SaasRoleGroupRelation;
|
||||
import cn.axzo.tyr.server.repository.service.SaasRoleGroupDao;
|
||||
import cn.axzo.tyr.server.repository.service.SaasRoleGroupRelationDao;
|
||||
import cn.axzo.tyr.server.repository.service.*;
|
||||
import cn.axzo.tyr.server.service.SaasRoleGroupService;
|
||||
import cn.hutool.core.bean.BeanUtil;
|
||||
import lombok.RequiredArgsConstructor;
|
||||
@ -27,6 +28,11 @@ import java.util.stream.Collectors;
|
||||
public class SaasRoleGroupServiceImpl implements SaasRoleGroupService {
|
||||
private final SaasRoleGroupDao saasRoleGroupDao;
|
||||
private final SaasRoleGroupRelationDao saasRoleGroupRelationDao;
|
||||
private final SaasRoleDao roleDao;
|
||||
private final SaasPgroupRoleRelationDao pgroupRoleRelationDao;
|
||||
private final SaasPermissionGroupDao permissionGroupDao;
|
||||
private final SaasPgroupPermissionRelationDao pgroupPermissionRelationDao;
|
||||
private final SaasRoleUserRelationDao roleUserRelationDao;
|
||||
|
||||
@Override
|
||||
public List<SaasRoleGroupVO> getList(QuerySaasRoleGroupReq req) {
|
||||
@ -57,7 +63,7 @@ public class SaasRoleGroupServiceImpl implements SaasRoleGroupService {
|
||||
.map(e -> {
|
||||
SaasRoleGroupVO target = BeanUtil.copyProperties(e, SaasRoleGroupVO.class);
|
||||
if (StringUtils.isNotBlank(e.getOuTypeCode())) {
|
||||
target.setOuTypeCode(Arrays.stream(e.getOuTypeCode().split(",")).filter(StringUtils::isNotBlank).map(s -> Long.parseLong(s.trim())).collect(Collectors.toList()));
|
||||
target.setOuTypeCode(Arrays.stream(e.getOuTypeCode().split(",")).filter(StringUtils::isNotBlank).map(s -> s.trim()).collect(Collectors.toList()));
|
||||
}
|
||||
target.setRoleIds(groupRoleMap.get(e.getId()));
|
||||
return target;
|
||||
@ -65,4 +71,35 @@ public class SaasRoleGroupServiceImpl implements SaasRoleGroupService {
|
||||
|
||||
return results;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void saveOrUpdate(SaasRoleGroupVO req) {
|
||||
// 拼接ouTypeCode字符串
|
||||
String ouTypeCodeStr = null;
|
||||
if (CollectionUtils.isNotEmpty(req.getOuTypeCode())) {
|
||||
ouTypeCodeStr = StringUtils.join(req.getOuTypeCode(),",");
|
||||
}
|
||||
SaasRoleGroup saasRoleGroup = new SaasRoleGroup();
|
||||
saasRoleGroup.setId(req.getId());
|
||||
saasRoleGroup.setWorkspaceTypeCode(req.getWorkspaceTypeCode());
|
||||
saasRoleGroup.setOuTypeCode(ouTypeCodeStr);
|
||||
saasRoleGroup.setName(req.getName());
|
||||
saasRoleGroup.setSort(req.getSort());
|
||||
saasRoleGroupDao.saveOrUpdate(saasRoleGroup);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void delete(Long id) {
|
||||
// 删除分组
|
||||
|
||||
// 删除角色分组关联关系
|
||||
|
||||
//
|
||||
|
||||
|
||||
// 删除权限分组关联关系
|
||||
// 删除权限
|
||||
// 删除权限集关联关系
|
||||
// 删除权限集
|
||||
}
|
||||
}
|
||||
|
||||
Loading…
Reference in New Issue
Block a user