当前位置: 首页 > news >正文

方案:如何列出 Jira 中授予用户的所有权限

文章目录

    • 概述
    • 解决方案
      • REST API
      • 数据库

概述

为了进行故障排除或某些管理任务,我们可能想知道给定用户拥有的所有权限。

Jira 通过其 UI 提供权限助手和类似工具,但对于所有权限的列表,我们只能通过作为用户本身进行身份验证的 REST API 请求或通过数据库来获取它。

解决方案

此处提供的两个解决方案都包含嵌套组(假设在实例中配置了支持嵌套组)

REST API

当前用户本身,或者通过 Switch User 类似功能,模拟用户。然后在浏览器中打开此 URL

https://Jira-base-URL/rest/api/2/mypermissions

数据库

POSTGRES、MYSQL 和 MSSQL

WITH RECURSIVE nested AS
(select m.* from cwd_membership m where m.membership_type = 'GROUP_USER'and m.lower_child_name = 'charlie'UNION ALLselect m.* from cwd_membership mjoin nested on m.lower_child_name = nested.lower_parent_namewhere m.membership_type = 'GROUP_GROUP'
),
uperm AS
(select distinct 'User' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", u.lower_user_name as "Source"from nested njoin cwd_user u on u.lower_user_name = n.lower_child_namejoin app_user a on a.lower_user_name = u.lower_user_namejoin schemepermissions sp on sp.perm_type = 'user' and sp.perm_parameter = a.user_keyjoin permissionscheme s on s.id = sp.schemejoin nodeassociation na on na.sink_node_id = s.id and na.sink_node_entity = 'PermissionScheme'join project p on p.id = na.source_node_idwhere n.membership_type = 'GROUP_USER'
),
gperm AS
(select distinct 'Group' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", sp.perm_parameter as "Source"from nested njoin schemepermissions sp on sp.perm_type = 'group' and sp.perm_parameter = n.lower_parent_namejoin permissionscheme s on s.id = sp.schemejoin nodeassociation na on na.sink_node_id = s.id and na.sink_node_entity = 'PermissionScheme'join project p on p.id = na.source_node_id
),
projrole AS
(select distinct 'Role' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", concat('Role "', concat(pr.name, concat('": ', pra.roletypeparameter))) as "Source"from nested njoin projectroleactor pra on ((pra.roletype = 'atlassian-group-role-actor' and lower(pra.roletypeparameter) = n.lower_parent_name) or (pra.roletype = 'atlassian-user-role-actor' and lower(pra.roletypeparameter) = n.lower_child_name))join projectrole pr on pr.id = pra.projectroleidjoin schemepermissions sp on sp.perm_type = 'projectrole' and sp.perm_parameter = concat(pr.id, '')join project p on p.id = pra.pid
),
approle AS
(select distinct 'License' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", l.group_id as "Source"from nested njoin licenserolesgroup l on lower(l.group_id) = n.lower_parent_namejoin schemepermissions sp on sp.perm_type = 'applicationRole'join permissionscheme s on s.id = sp.schemejoin nodeassociation na on na.sink_node_id = s.id and na.sink_node_entity = 'PermissionScheme'join project p on p.id = na.source_node_id
),
globalperm AS
(select distinct 'Global' as "Type", gp.permission as "Permission", null as "Project Key", null as "Source"from globalpermissionentry gp join nested on gp.group_id = nested.lower_parent_name
),
permissions AS 
(
select * from uperm
UNION
select * from gperm
UNION
select * from globalperm
UNION
select * from projrole
UNION
select * from approle
)
select "Project Key", "Permission", "Type", "Source" from permissions
-- where ("Project Key" in ('S1', 'S2', 'S3') or "Project Key" is null)
order by "Project Key" asc, "Permission" asc;

ORACLE

WITH nested AS
(
SELECT m.* FROM cwd_membership m
START WITH m.membership_type = 'GROUP_USER' AND m.lower_child_name = 'charlie'CONNECT BY PRIOR m.lower_parent_name = m.lower_child_name AND m.membership_type = 'GROUP_GROUP'
),
uperm AS
(select distinct 'User' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", u.lower_user_name as "Source"from nested njoin cwd_user u on u.lower_user_name = n.lower_child_namejoin app_user a on a.lower_user_name = u.lower_user_namejoin schemepermissions sp on sp.perm_type = 'user' and sp.perm_parameter = a.user_keyjoin permissionscheme s on s.id = sp.schemejoin nodeassociation na on na.sink_node_id = s.id and na.sink_node_entity = 'PermissionScheme'join project p on p.id = na.source_node_idwhere n.membership_type = 'GROUP_USER'
),
gperm AS
(select distinct 'Group' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", sp.perm_parameter as "Source"from nested njoin schemepermissions sp on sp.perm_type = 'group' and sp.perm_parameter = n.lower_parent_namejoin permissionscheme s on s.id = sp.schemejoin nodeassociation na on na.sink_node_id = s.id and na.sink_node_entity = 'PermissionScheme'join project p on p.id = na.source_node_id
),
projrole AS
(select distinct 'Role' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", concat('Role "', concat(pr.name, concat('": ', pra.roletypeparameter))) as "Source"from nested njoin projectroleactor pra on ((pra.roletype = 'atlassian-group-role-actor' and lower(pra.roletypeparameter) = n.lower_parent_name) or (pra.roletype = 'atlassian-user-role-actor' and lower(pra.roletypeparameter) = n.lower_child_name))join projectrole pr on pr.id = pra.projectroleidjoin schemepermissions sp on sp.perm_type = 'projectrole' and sp.perm_parameter = concat(pr.id, '')join project p on p.id = pra.pid
),
approle AS
(select distinct 'License' as "Type", sp.permission_key as "Permission", p.pkey as "Project Key", l.group_id as "Source"from nested njoin licenserolesgroup l on lower(l.group_id) = n.lower_parent_namejoin schemepermissions sp on sp.perm_type = 'applicationRole'join permissionscheme s on s.id = sp.schemejoin nodeassociation na on na.sink_node_id = s.id and na.sink_node_entity = 'PermissionScheme'join project p on p.id = na.source_node_id
),
globalperm AS
(select distinct 'Global' as "Type", gp.permission as "Permission", null as "Project Key", null as "Source"from globalpermissionentry gp join nested on gp.group_id = nested.lower_parent_name
),
permissions AS 
(
select * from uperm
UNION
select * from gperm
UNION
select * from globalperm
UNION
select * from projrole
UNION
select * from approle
)
select "Project Key", "Permission", "Type", "Source" from permissions
-- where ("Project Key" in ('S1', 'S2', 'S3') or "Project Key" is null)
order by "Project Key" asc, "Permission" asc;

我们可以根据需要更改第 4 行的用户名,并过滤生成的项目(在从底部开始的第二行)。

输出样例

Project Key |              Permission              |  Type   |       Source        
-------------+--------------------------------------+---------+---------------------S1          | ADD_COMMENTS                         | License | jira-software-usersS1          | ASSIGNABLE_USER                      | License | jira-software-usersS1          | ASSIGNABLE_USER                      | User    | charlieS1          | ASSIGN_ISSUES                        | License | jira-software-usersS1          | BROWSE_PROJECTS                      | License | jira-software-usersS1          | BROWSE_PROJECTS                      | Group   | group-cS1          | CLOSE_ISSUES                         | License | jira-software-users

相关文章:

方案:如何列出 Jira 中授予用户的所有权限

文章目录 概述解决方案REST API数据库 概述 为了进行故障排除或某些管理任务,我们可能想知道给定用户拥有的所有权限。 Jira 通过其 UI 提供权限助手和类似工具,但对于所有权限的列表,我们只能通过作为用户本身进行身份验证的 REST API 请求…...

Flutter-Web从0到部署上线(实践+埋坑)

本文字数:7743字 预计阅读时间:60分钟 01 前言 首先说明一下,这篇文章是给具备Flutter开发经验的客户端同学看的。Flutter 的诞生虽然来自 Google 的 Chrome 团队,但大家都知道 Flutter 最先支持的平台是 Android 和 iOS&#xff…...

Redis键值设计

文章目录 1.优雅的key2.拒绝BigKey2.1.什么是BigKey2.2.BigKey的危害2.3.如何发现BigKey2.4.如何删除BigKey 3.恰当的数据类型 1.优雅的key 2.拒绝BigKey 2.1.什么是BigKey 2.2.BigKey的危害 2.3.如何发现BigKey scan扫描示例代码 final static int STR_MAX_LEN 10 * 1024;fi…...

CSS 下载进度条

<template><view class=btn>下载中</view></template><script></script><style>/* 设置整个页面的样式 */body {width: 100vw; /* 页面宽度为视口宽度 */background: #000000; /* 背景颜色为白色 */display: flex; /* 使用 flex…...

风力发电防雷监测浪涌保护器的应用解决方案

风力发电是一种利用风能转化为电能的可再生能源技术&#xff0c;具有清洁、环保、低碳的优点&#xff0c;是应对全球气候变化和能源危机的重要途径之一。然而&#xff0c;风力发电也面临着一些技术和经济的挑战&#xff0c;其中之一就是雷电的威胁。由于风力发电机组通常位于高…...

开发安全之:Database access control

Overview 如果没有适当的 access control&#xff0c;就会执行一个包含用户控制主键的 SQL 指令&#xff0c;从而允许攻击者访问未经授权的记录。 Details Database access control 错误在以下情况下发生&#xff1a; 1. 数据从一个不可信赖的数据源进入程序。 2. 这个数据用…...

VMware Vsphere 日志:用户 dcui@127.0.01已以vMware-client/6.5.0 的身份登录

一、事件截图&#xff1a; 二、解决办法 原因&#xff1a; 三、解决办法 1.开启锁定模式 2.操作 1、从清单中选择您的 ESXi 主机&#xff0c;然后转至管理 > 设置 > 安全配置文件&#xff0c;然后单击锁定模式的编辑按钮 2、在打开的锁定模式窗口中&#xff0c;选中启…...

全面了解网络性能监测:从哪些方面进行监测?

目录 摘要 引言 CPU内存监控 磁盘监控 网络监控 GPU监控 帧率监控 总结 摘要 本文介绍了网络性能监测的重要性&#xff0c;并详细介绍了一款名为克魔助手的应用开发工具&#xff0c;该工具提供了丰富的性能监控功能&#xff0c;包括CPU、内存、磁盘、网络等指标的实时监…...

智能分析网关V4基于AI视频智能分析技术的周界安全防范方案

一、背景分析 随着科技的不断进步&#xff0c;AI视频智能检测技术已经成为周界安全防范的一种重要手段。A智能分析网关V4基于深度学习和计算机视觉技术&#xff0c;可以通过多种AI周界防范算法&#xff0c;实时、精准地监测人员入侵行为&#xff0c;及时发现异常情况并发出警报…...

小红书再不赚钱就晚了

2023年12月&#xff0c;小红书COO柯南公开表态&#xff0c;五年前&#xff0c;自己当时还非常坚定地表态小红书不要做电商。“那时候&#xff0c;我是站在社区的视角&#xff0c;但现在&#xff0c;我开始负责电商业务了。”此前&#xff0c;小红书已经整合了电商业务与直播业务…...

思腾云计算三大业务:算力租赁、服务器托管、思腾公有云

1、算力租赁业务 裸金属服务器就是传统物理服务器的升级版&#xff0c;也可以说是介于物理服务器和云主机之间的一种形态。既具备传统物理服务器卓越性能&#xff0c;又具备云主机一样的便捷管理平台&#xff0c;兼具了双方的优点&#xff0c;在满足核心应用场景对高性能及稳定…...

HarmonyOS之sqlite数据库的使用

从API Version 9开始&#xff0c;鸿蒙开发中sqlite使用新接口ohos.data.relationalStore 但是 relationalStore在 getRdbStore操作时&#xff0c;在预览模式运行或者远程模拟器运行都会报错&#xff0c;导致无法使用。查了一圈说只有在真机上可以正常使用&#xff0c;因此这里…...

网络抓包命令tcpdump

网络抓包命令tcpdump "tcpdump -i any -nn -vv tcp port 9095 -s 0 -w dump.cap"命令是一个网络抓包命令&#xff0c;用于捕获流经指定网络接口的TCP协议、端口号为9095的网络数据包&#xff0c;并将这些数据包写入到名为"dump.cap"的文件中。 具体参数解…...

iTMSTransporter上传ipa文件

背景 uni-app云打包之后生成的ipa包需要上传到app store上&#xff0c;applicationloader和香蕉云编都收费&#xff0c;转用iTMSTransporter上传 环境&#xff1a;mac 第1步 选择安装目录 xcode-select --switch /Applications/Xcode.app/Contents/Developer第2步 下载 xcru…...

2024华数杯国际数学建模A题思路模型详解

2024华数杯国际数学建模A题思路论文&#xff1a;1.17上午第一时间持续更新&#xff0c;详细内容见文末名片 建立一个模型来描述放射性废水在海水中的扩散速率和方向&#xff0c;考虑到涉及的物理过程和环境因素的复杂性&#xff0c;我们通常会使用一个简化的扩散模型作为起点…...

JS-定时器-间歇函数(一)

• 定时器函数介绍 定时器函数在开发中的使用场景 网页中经常会需要一种功能&#xff1a;每隔一段时间需要自动执行一段代码&#xff0c;不需要我们手动去触发例如&#xff1a;网页中的倒计时要实现这种需求&#xff0c;需要定时器函数定时器函数有两种&#xff0c;今天我先讲…...

AttributeError: module ‘openai‘ has no attribute ‘error‘解决方案

大家好,我是爱编程的喵喵。双985硕士毕业,现担任全栈工程师一职,热衷于将数据思维应用到工作与生活中。从事机器学习以及相关的前后端开发工作。曾在阿里云、科大讯飞、CCF等比赛获得多次Top名次。现为CSDN博客专家、人工智能领域优质创作者。喜欢通过博客创作的方式对所学的…...

每日一记:一个windows的bat脚本工具集

最近在工作上遇到要校验文件的问题&#xff0c;例如&#xff0c;下载了一个文件之后&#xff0c;通过查看文件的md5来校验文件是否完整&#xff0c;这个动作在linux上很简单&#xff0c;但在windows上也不难&#xff0c;可以通过 certutil 命令实现&#xff0c;该命令通常可用于…...

Apache Zeppelin学习记录2

Apache Zeppelin学习记录2 文章目录 Apache Zeppelin学习记录2前言一、基础调用二、带参数调用1.代码块要增加一行z.textbox("folder_path", "input")2.读取result 总结 前言 上一章讲了如何使用zeppelin来接入python&#xff0c;本节我们来看看如何使用R…...

[原创][R语言]股票分析实战[11]:读取股票数据文件的细节: 提取目标列数据

[简介] 常用网名: 猪头三 出生日期: 1981.XX.XX QQ联系: 643439947 个人网站: 80x86汇编小站 https://www.x86asm.org 编程生涯: 2001年~至今[共22年] 职业生涯: 20年 开发语言: C/C、80x86ASM、PHP、Perl、Objective-C、Object Pascal、C#、Python 开发工具: Visual Studio、D…...

Spring Boot+Neo4j知识图谱实战:3步搭建智能关系网络!

一、引言 在数据驱动的背景下&#xff0c;知识图谱凭借其高效的信息组织能力&#xff0c;正逐步成为各行业应用的关键技术。本文聚焦 Spring Boot与Neo4j图数据库的技术结合&#xff0c;探讨知识图谱开发的实现细节&#xff0c;帮助读者掌握该技术栈在实际项目中的落地方法。 …...

三体问题详解

从物理学角度&#xff0c;三体问题之所以不稳定&#xff0c;是因为三个天体在万有引力作用下相互作用&#xff0c;形成一个非线性耦合系统。我们可以从牛顿经典力学出发&#xff0c;列出具体的运动方程&#xff0c;并说明为何这个系统本质上是混沌的&#xff0c;无法得到一般解…...

工业自动化时代的精准装配革新:迁移科技3D视觉系统如何重塑机器人定位装配

AI3D视觉的工业赋能者 迁移科技成立于2017年&#xff0c;作为行业领先的3D工业相机及视觉系统供应商&#xff0c;累计完成数亿元融资。其核心技术覆盖硬件设计、算法优化及软件集成&#xff0c;通过稳定、易用、高回报的AI3D视觉系统&#xff0c;为汽车、新能源、金属制造等行…...

Android Bitmap治理全解析:从加载优化到泄漏防控的全生命周期管理

引言 Bitmap&#xff08;位图&#xff09;是Android应用内存占用的“头号杀手”。一张1080P&#xff08;1920x1080&#xff09;的图片以ARGB_8888格式加载时&#xff0c;内存占用高达8MB&#xff08;192010804字节&#xff09;。据统计&#xff0c;超过60%的应用OOM崩溃与Bitm…...

RNN避坑指南:从数学推导到LSTM/GRU工业级部署实战流程

本文较长&#xff0c;建议点赞收藏&#xff0c;以免遗失。更多AI大模型应用开发学习视频及资料&#xff0c;尽在聚客AI学院。 本文全面剖析RNN核心原理&#xff0c;深入讲解梯度消失/爆炸问题&#xff0c;并通过LSTM/GRU结构实现解决方案&#xff0c;提供时间序列预测和文本生成…...

Caliper 负载(Workload)详细解析

Caliper 负载(Workload)详细解析 负载(Workload)是 Caliper 性能测试的核心部分,它定义了测试期间要执行的具体合约调用行为和交易模式。下面我将全面深入地讲解负载的各个方面。 一、负载模块基本结构 一个典型的负载模块(如 workload.js)包含以下基本结构: use strict;/…...

Python 实现 Web 静态服务器(HTTP 协议)

目录 一、在本地启动 HTTP 服务器1. Windows 下安装 node.js1&#xff09;下载安装包2&#xff09;配置环境变量3&#xff09;安装镜像4&#xff09;node.js 的常用命令 2. 安装 http-server 服务3. 使用 http-server 开启服务1&#xff09;使用 http-server2&#xff09;详解 …...

elementUI点击浏览table所选行数据查看文档

项目场景&#xff1a; table按照要求特定的数据变成按钮可以点击 解决方案&#xff1a; <el-table-columnprop"mlname"label"名称"align"center"width"180"><template slot-scope"scope"><el-buttonv-if&qu…...

保姆级【快数学会Android端“动画“】+ 实现补间动画和逐帧动画!!!

目录 补间动画 1.创建资源文件夹 2.设置文件夹类型 3.创建.xml文件 4.样式设计 5.动画设置 6.动画的实现 内容拓展 7.在原基础上继续添加.xml文件 8.xml代码编写 (1)rotate_anim (2)scale_anim (3)translate_anim 9.MainActivity.java代码汇总 10.效果展示 逐帧…...

Python 高级应用10:在python 大型项目中 FastAPI 和 Django 的相互配合

无论是python&#xff0c;或者java 的大型项目中&#xff0c;都会涉及到 自身平台微服务之间的相互调用&#xff0c;以及和第三发平台的 接口对接&#xff0c;那在python 中是怎么实现的呢&#xff1f; 在 Python Web 开发中&#xff0c;FastAPI 和 Django 是两个重要但定位不…...