# 功能权限

# 功能权限开发参考

自定义功能码、功能权限。

# 后端接口功能码绑定

注:功能码操作前提——后端项目引入afcenter的SDK依赖

后端controller中接口方法名绑定功能码,如下:

1.controller类上添加SDK中提供类绑定功能码注解@ClassBoundFunctions。

2.在注解@ClassBoundFunctions中使用注解@BoundFunctions去绑定具体接口方法。

3.注解@BoundFunctions的methods参数的值就是需要绑定接口方法名,function参数值使用注解@BoundFunction处理自定义功能码常量。

  • 操作说明

# 后端创建功能码切面扫描配置类

1.创建切面扫描配置类ProFunctionPermissionAspect继承SDK提供的功能码检验类AbstractFunctionCheckAspect。

2.切入点配置拦截方法与无需拦截方法路径。


@Aspect
@Component
public class ProFunctionPermissionAspect extends AbstractFunctionCheckAspect {
	
	@Autowired
	private BoundeFunctionScanner scanner;

    @Pointcut("!execution(public * com.primeton.gocom.project.impl.controller.*.find*(..))" // 不拦截以 find 开头的方法
            + " && !execution(public * com.primeton.gocom.project.impl.controller.*.get*(..))" // 不拦截以 get 开头的方法
            + " && !execution(public * com.primeton.gocom.project.impl.controller.*.query*(..))" // 不拦截以 query开头的方法
            + " && !execution(public * com.primeton.gocom.project.impl.controller.*.paging*(..))" // 不拦截以 paging 开头的方法
            + " && !execution(public * com.primeton.gocom.project.impl.controller.*.list*(..))" // 不拦截以 list 开头的方法
            + " && execution(public * com.primeton.gocom.project.impl.controller.*.*(..))") // 拦截其它public的方法
    public void controllerPointCut() {}


    @Before("controllerPointCut()")
    private void check(JoinPoint joinPoint) {
        super.checkPermissions(joinPoint, scanner);
    }
}

# 前端功能码绑定

1.定义功能码

需要先在base\src\permission\FuncCode.js文件中定义;是为了对后端功能码进行转换,因为前端不支持解析‘-’变量

export default {
  // button permission
  // 租户管理
  afc_f_tenant_query: 'afc-f-tenant-query', // 查询租户列表
  afc_f_tenant_add: 'afc-f-tenant-add', //新增租户
  afc_f_tenant_edit: 'afc-f-tenant-edit', // 修改租户
  afc_f_tenant_disable: 'afc-f-tenant-disable', // 禁用租户
  afc_f_tenant_enable: 'afc-f-tenant-enable', // 启用租户
  }

2.使用功能码

在按钮上绑定功能码。例如:v-permission="FuncCode.功能码";前端需要混入BaseVue

  <PmToolbar class="ml-5 ">
    <PmToolbarItem plain v-permission="FuncCode.afc_f_app_add" icon="el-icon-plus" @click="openAdd">新建应用</PmToolbarItem>
    <PmToolbarItem plain :disabled="selections.length==0"  @click="bulkDelete">批量删除</PmToolbarItem>
  </PmToolbar>
<script>
import {BaseVue} from '@lib'
export default {
    mixins:[BaseVue],
}

# 平台功能权限配置

# 应用管理业务对象中创建功能资源

1.在你的应用中点击业务对象管理,进入业务对象中。

2.点击资源管理,自定义资源分组名称为项目管理。

3.点击项目管理分组,选择右侧功能模块,点击新建功能。

4.输入必填项功能编码与功能名称,注意这里功能编码要与后端接口绑定的功能码常量一致。

  • 操作说明

# 权限管理功能码-角色授权

1.点击权限管理,进入角色管理,切换tab页选择业务对象。

2.选择左侧应用树下具体的业务对象点击展开业务对象角色。

3.新建该业务对象下的角色,点击角色编码进入角色详情与授权界面。

4.切换tab页进入权限页面。

5.选择功能模块,下方即展示功能资源,左侧为功能资源分组名称,右侧有功能码资源。

6.勾选功能码资源即可为当前业务对象角色授予接口访问权限。

7.点击右下方保存按钮即可保存功能码权限。

  • 操作说明

上次更新: 2023/3/22下午3:43:47