aboutsummaryrefslogtreecommitdiffstats
path: root/sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml
diff options
context:
space:
mode:
Diffstat (limited to 'sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml')
-rw-r--r--sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml118
1 files changed, 118 insertions, 0 deletions
diff --git a/sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml b/sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml
new file mode 100644
index 00000000000..41303206013
--- /dev/null
+++ b/sonar-db/src/main/resources/org/sonar/db/user/RoleMapper.xml
@@ -0,0 +1,118 @@
+<?xml version="1.0" encoding="UTF-8" ?>
+<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
+
+<mapper namespace="org.sonar.db.user.RoleMapper">
+
+ <select id="selectUserPermissions" parameterType="map" resultType="String">
+ SELECT ur.role
+ FROM user_roles ur
+ INNER JOIN users u ON u.id=ur.user_id AND u.active=${_true}
+ <where>
+ AND u.login = #{userLogin}
+ <choose>
+ <when test="resourceId != null">
+ AND resource_id=#{resourceId}
+ </when>
+ <otherwise>
+ AND resource_id IS NULL
+ </otherwise>
+ </choose>
+ </where>
+ </select>
+
+ <select id="selectGroupPermissions" parameterType="map" resultType="String">
+ SELECT gr.role
+ FROM group_roles gr
+ <if test="isAnyOneGroup != true">
+ INNER JOIN groups g ON g.id = gr.group_id
+ </if>
+ <where>
+ <choose>
+ <when test="isAnyOneGroup != true">
+ AND g.name = #{groupName}
+ </when>
+ <otherwise>
+ AND gr.group_id IS NULL
+ </otherwise>
+ </choose>
+ <choose>
+ <when test="resourceId != null">
+ AND resource_id=#{resourceId}
+ </when>
+ <otherwise>
+ AND resource_id IS NULL
+ </otherwise>
+ </choose>
+ </where>
+ </select>
+
+ <insert id="insertGroupRole" parameterType="GroupRole" keyColumn="id" useGeneratedKeys="true" keyProperty="id">
+ INSERT INTO group_roles (group_id, resource_id, role)
+ VALUES (#{groupId}, #{resourceId}, #{role})
+ </insert>
+
+ <insert id="insertUserRole" parameterType="UserRole" keyColumn="id" useGeneratedKeys="true" keyProperty="id">
+ INSERT INTO user_roles (user_id, resource_id, role)
+ VALUES (#{userId}, #{resourceId}, #{role})
+ </insert>
+
+ <delete id="deleteGroupRole" parameterType="map">
+ DELETE FROM group_roles
+ WHERE role=#{role}
+ AND
+ <choose>
+ <when test="resourceId != null">
+ resource_id=#{resourceId}
+ </when>
+ <otherwise>
+ resource_id IS NULL
+ </otherwise>
+ </choose>
+ AND
+ <choose>
+ <when test="groupId != null">
+ group_id=#{groupId}
+ </when>
+ <otherwise>
+ group_id IS NULL
+ </otherwise>
+ </choose>
+ </delete>
+
+ <delete id="deleteUserRole" parameterType="map">
+ DELETE FROM user_roles
+ WHERE user_id=#{userId}
+ AND role=#{role}
+ AND
+ <choose>
+ <when test="resourceId != null">
+ resource_id=#{resourceId}
+ </when>
+ <otherwise>
+ resource_id IS NULL
+ </otherwise>
+ </choose>
+ </delete>
+
+ <delete id="deleteGroupRolesByResourceId" parameterType="long">
+ delete from group_roles where resource_id=#{id}
+ </delete>
+
+ <delete id="deleteUserRolesByResourceId" parameterType="long">
+ delete from user_roles where resource_id=#{id}
+ </delete>
+
+ <select id="countResourceUserRoles" parameterType="long" resultType="int">
+ SELECT count(id)
+ FROM user_roles WHERE resource_id=#{id}
+ </select>
+
+ <select id="countResourceGroupRoles" parameterType="long" resultType="int">
+ SELECT count(id)
+ FROM group_roles WHERE resource_id=#{id}
+ </select>
+
+ <delete id="deleteGroupRolesByGroupId" parameterType="long">
+ delete from group_roles where group_id=#{id}
+ </delete>
+</mapper>