]> source.dussan.org Git - sonarqube.git/commitdiff
Add missing jdbcType attributes in user and permission SQL requests
authorSimon Brandhof <simon.brandhof@sonarsource.com>
Sun, 16 Oct 2016 15:57:38 +0000 (17:57 +0200)
committerSimon Brandhof <simon.brandhof@sonarsource.com>
Sun, 16 Oct 2016 17:10:49 +0000 (19:10 +0200)
sonar-db/src/main/resources/org/sonar/db/permission/AuthorizationMapper.xml
sonar-db/src/main/resources/org/sonar/db/permission/GroupPermissionMapper.xml
sonar-db/src/main/resources/org/sonar/db/permission/UserPermissionMapper.xml
sonar-db/src/main/resources/org/sonar/db/user/GroupMapper.xml
sonar-db/src/main/resources/org/sonar/db/user/UserGroupMapper.xml

index 63043b8bf02a7e9bc198179d306fe067c414f7aa..504dc552c31611416964f9624485e702938590ae 100644 (file)
     SELECT gr.resource_id
     FROM group_roles gr
     WHERE
-    gr.role=#{role}
+    gr.role=#{role,jdbcType=VARCHAR}
     and (gr.group_id is null or gr.group_id in (select gu.group_id from groups_users gu where gu.user_id=#{userId}))
     and
     <foreach collection="componentIds" open="(" close=")" item="element" index="index" separator=" or ">
-      gr.resource_id=#{element}
+      gr.resource_id=#{element,jdbcType=BIGINT}
     </foreach>
     UNION
     SELECT p.id
     FROM user_roles ur
     INNER JOIN projects p on p.id = ur.resource_id
     WHERE
-    ur.role=#{role}
-    and ur.user_id=#{userId} and
+    ur.role=#{role,jdbcType=VARCHAR}
+    and ur.user_id=#{userId,jdbcType=BIGINT} and
     <foreach collection="componentIds" open="(" close=")" item="element" index="index" separator=" or ">
-      p.id=#{element}
+      p.id=#{element,jdbcType=BIGINT}
     </foreach>
   </select>
 
     SELECT gr.resource_id
     FROM group_roles gr
     WHERE
-    gr.role=#{role}
+    gr.role=#{role,jdbcType=VARCHAR}
     and gr.group_id is null
     and
     <foreach collection="componentIds" open="(" close=")" item="element" index="index" separator=" or ">
-      gr.resource_id=#{element}
+      gr.resource_id=#{element,jdbcType=BIGINT}
     </foreach>
   </select>
 
         FROM group_roles gr
         INNER JOIN projects p on p.id = gr.resource_id AND p.module_uuid IS NULL
         where
-        gr.role=#{role}
+        gr.role=#{role,jdbcType=VARCHAR}
         and (gr.group_id is null or gr.group_id in (select gu.group_id from groups_users gu where
-        gu.user_id=#{userId}))
+        gu.user_id=#{userId,jdbcType=BIGINT}))
         UNION
         SELECT p.kee as root_project_kee
         FROM user_roles ur
         INNER JOIN projects p on p.id = ur.resource_id AND p.module_uuid IS NULL
         where
-        ur.role=#{role}
-        and ur.user_id = #{userId}
+        ur.role=#{role,jdbcType=VARCHAR}
+        and ur.user_id = #{userId,jdbcType=BIGINT}
       </when>
       <otherwise>
         SELECT p.kee as root_project_kee
         FROM group_roles gr
         INNER JOIN projects p on p.id = gr.resource_id AND p.module_uuid IS NULL
         where
-        gr.role=#{role}
+        gr.role=#{role,jdbcType=VARCHAR}
         and gr.group_id is null
       </otherwise>
     </choose>
         FROM group_roles gr
         INNER JOIN projects p on p.id = gr.resource_id AND p.module_uuid IS NULL
         where
-        gr.role=#{role}
+        gr.role=#{role,jdbcType=VARCHAR}
         and (gr.group_id is null or gr.group_id in (select gu.group_id from groups_users gu where
-        gu.user_id=#{userId}))
+        gu.user_id=#{userId,jdbcType=BIGINT}))
         UNION
         SELECT p.uuid as root_project_uuid
         FROM user_roles ur
         INNER JOIN projects p on p.id = ur.resource_id AND p.module_uuid IS NULL
         where
-        ur.role=#{role}
-        and ur.user_id = #{userId}
+        ur.role=#{role,jdbcType=VARCHAR}
+        and ur.user_id = #{userId,jdbcType=BIGINT}
       </when>
       <otherwise>
         SELECT p.uuid as root_project_uuid
         FROM group_roles gr
         INNER JOIN projects p on p.id = gr.resource_id AND p.module_uuid IS NULL
         where
-        gr.role=#{role}
+        gr.role=#{role,jdbcType=VARCHAR}
         and gr.group_id is null
       </otherwise>
     </choose>
         FROM group_roles gr
         INNER JOIN projects p on p.id = gr.resource_id AND p.module_uuid IS NULL
         where
-        gr.role=#{role}
+        gr.role=#{role,jdbcType=VARCHAR}
         and (gr.group_id is null or gr.group_id in (select gu.group_id from groups_users gu where
-        gu.user_id=#{userId}))
+        gu.user_id=#{userId,jdbcType=BIGINT}))
         UNION
         SELECT p.id as root_project_id
         FROM user_roles ur
         INNER JOIN projects p on p.id = ur.resource_id AND p.module_uuid IS NULL
-        where ur.role=#{role} and ur.user_id = #{userId}
+        where
+        ur.role=#{role,jdbcType=VARCHAR} and
+        ur.user_id = #{userId,jdbcType=BIGINT}
       </when>
       <otherwise>
         SELECT p.id as root_project_id
         FROM group_roles gr
         INNER JOIN projects p on p.id = gr.resource_id AND p.module_uuid IS NULL
-        where gr.role=#{role} and gr.group_id is null
+        where
+        gr.role=#{role,jdbcType=VARCHAR}
+        and gr.group_id is null
       </otherwise>
     </choose>
   </sql>
         FROM group_roles gr
         INNER JOIN groups_users gu on gu.group_id=gr.group_id
         INNER JOIN users u on u.id=gu.user_id
-        where u.login=#{userLogin} and gr.resource_id is null
+        where u.login=#{userLogin,jdbcType=VARCHAR} and gr.resource_id is null
         UNION
         SELECT gr.role
         FROM group_roles gr
         SELECT ur.role
         FROM user_roles ur
         INNER JOIN users u on u.id=ur.user_id
-        where u.login=#{userLogin} and ur.resource_id is null
+        where u.login=#{userLogin,jdbcType=VARCHAR} and ur.resource_id is null
       </when>
       <otherwise>
         SELECT gr.role
     SELECT p.kee
     FROM group_roles gr, projects p
     WHERE
-    gr.role=#{role}
+    gr.role=#{role,jdbcType=VARCHAR}
     and gr.group_id is null
     and gr.resource_id = p.id
     and
     <foreach collection="componentKeys" open="(" close=")" item="element" index="index" separator=" or ">
-      p.kee=#{element}
+      p.kee=#{element,jdbcType=VARCHAR}
     </foreach>
     UNION
     SELECT p.kee
     FROM group_roles gr, projects root, projects p
     WHERE
-    gr.role=#{role}
+    gr.role=#{role,jdbcType=VARCHAR}
     and gr.group_id is null
     and gr.resource_id = root.id
     and p.root_uuid = root.uuid
     and
     <foreach collection="componentKeys" open="(" close=")" item="element" index="index" separator=" or ">
-      p.kee=#{element}
+      p.kee=#{element,jdbcType=VARCHAR}
     </foreach>
   </select>
 
     SELECT p.kee
     FROM group_roles gr, projects p
     WHERE
-    gr.role=#{role}
+    gr.role=#{role,jdbcType=VARCHAR}
     and (gr.group_id is null or gr.group_id in (select gu.group_id from groups_users gu where gu.user_id=#{userId}))
     and gr.resource_id = p.id
     and
     <foreach collection="componentKeys" open="(" close=")" item="element" index="index" separator=" or ">
-      p.kee=#{element}
+      p.kee=#{element,jdbcType=VARCHAR}
     </foreach>
     UNION
     SELECT p.kee
     FROM group_roles gr, projects root, projects p
     WHERE
-    gr.role=#{role}
+    gr.role=#{role,jdbcType=VARCHAR}
     and (gr.group_id is null or gr.group_id in (select gu.group_id from groups_users gu where gu.user_id=#{userId}))
     and gr.resource_id = root.id
     and p.root_uuid = root.uuid
     and
     <foreach collection="componentKeys" open="(" close=")" item="element" index="index" separator=" or ">
-      p.kee=#{element}
+      p.kee=#{element,jdbcType=VARCHAR}
     </foreach>
     UNION
     SELECT p.kee
     FROM user_roles ur
     INNER JOIN projects p on p.id = ur.resource_id
     WHERE
-    ur.role=#{role}
-    and ur.user_id=#{userId}
+    ur.role=#{role,jdbcType=VARCHAR}
+    and ur.user_id=#{userId,jdbcType=BIGINT}
     and
     <foreach collection="componentKeys" open="(" close=")" item="element" index="index" separator=" or ">
-      p.kee=#{element}
+      p.kee=#{element,jdbcType=VARCHAR}
     </foreach>
   </select>
 
     FROM groups_users gu
     INNER JOIN group_roles gr ON gr.group_id=gu.group_id
     WHERE
-    gr.resource_id=#{componentId}
-    AND gr.role=#{role}
+    gr.resource_id=#{componentId,jdbcType=BIGINT}
+    AND gr.role=#{role,jdbcType=VARCHAR}
     AND gu.user_id in
     <foreach collection="userIds" open="(" close=")" item="id" separator=",">
-      #{id}
+      #{id,jdbcType=BIGINT}
     </foreach>
     UNION
     SELECT ur.user_id
     FROM user_roles ur
     WHERE
-    ur.resource_id=#{componentId}
-    AND ur.role=#{role}
+    ur.resource_id=#{componentId,jdbcType=BIGINT}
+    AND ur.role=#{role,jdbcType=VARCHAR}
     AND ur.user_id IN
     <foreach collection="userIds" open="(" close=")" item="id" separator=",">
-      #{id}
+      #{id,jdbcType=BIGINT}
     </foreach>
   </select>
 </mapper>
index 683b2990d5d69cc784d1683344d3200150c04b4d..fc3c7b8d2ea053464c984549f14448379e6c6ee0 100644 (file)
@@ -19,7 +19,7 @@
     where
       groups.componentId in
       <foreach collection="componentIds" open="(" close=")" item="id" separator=",">
-        #{id}
+        #{id,jdbcType=BIGINT}
       </foreach>
     GROUP BY groups.permission, groups.componentId
   </select>
@@ -30,9 +30,9 @@
     (SELECT g.name as name
     FROM groups g
     INNER JOIN group_roles group_role ON group_role.group_id=g.id
-    AND group_role.role=#{permission}
+    AND group_role.role=#{permission,jdbcType=VARCHAR}
     <if test="componentId != null">
-      AND group_role.resource_id=#{componentId}
+      AND group_role.resource_id=#{componentId,jdbcType=BIGINT}
     </if>
     <if test="componentId == null">
       AND group_role.resource_id IS NULL
     SELECT #{anyoneGroup} as name
     FROM group_roles group_role
     where
-      group_role.role=#{permission}
+      group_role.role=#{permission,jdbcType=VARCHAR}
       AND group_role.group_id IS NULL
       <if test="componentId != null">
-        AND group_role.resource_id=#{componentId}
+        AND group_role.resource_id=#{componentId,jdbcType=BIGINT}
       </if>
       <if test="componentId == null">
         AND group_role.resource_id IS NULL
@@ -81,7 +81,7 @@
     left join projects p on gr.resource_id = p.id
     <where>
       <if test="query.searchQueryToSql != null">
-        and lower(gr.name) like #{query.searchQueryToSql} ESCAPE '/'
+        and lower(gr.name) like #{query.searchQueryToSql,jdbcType=VARCHAR} ESCAPE '/'
       </if>
       <!-- filter rows with group permissions -->
       <if test="query.withAtLeastOnePermission()">
           and gr.resource_id is null
         </if>
         <if test="query.componentUuid!=null">
-          and p.uuid=#{query.componentUuid}
+          and p.uuid=#{query.componentUuid,jdbcType=VARCHAR}
         </if>
         <if test="query.permission!=null">
-          and gr.permission=#{query.permission}
+          and gr.permission=#{query.permission,jdbcType=VARCHAR}
         </if>
       </if>
     </where>
         #{name}
       </foreach>
       <if test="projectId!=null">
-        AND sub.resourceId=#{projectId}
+        AND sub.resourceId=#{projectId,jdbcType=BIGINT}
       </if>
       <if test="projectId==null">
         AND sub.resourceId IS NULL
index 901f66063c5d786b060cb692cdf72a987b81b497..248b6f3c99bba4773952ad587c2ca0690740f01a 100644 (file)
         and u.active = ${_true}
       </if>
       <if test="userLogins != null">
-        and u.login in <foreach collection="userLogins" open="(" close=")" item="userLogin" separator=",">#{userLogin}</foreach>
+        and u.login in <foreach collection="userLogins" open="(" close=")" item="userLogin" separator=",">#{userLogin,jdbcType=VARCHAR}</foreach>
       </if>
       <if test="query.searchQueryToSql != null">
-        and lower(u.name) like #{query.searchQueryToSql} ESCAPE '/'
+        and lower(u.name) like #{query.searchQueryToSql,jdbcType=VARCHAR} ESCAPE '/'
       </if>
       <!-- filter rows with user permissions -->
       <if test="query.withAtLeastOnePermission()">
           and ur.resource_id is null
         </if>
         <if test="query.componentUuid!=null">
-          and p.uuid = #{query.componentUuid}
+          and p.uuid = #{query.componentUuid,jdbcType=VARCHAR}
         </if>
         <if test="query.permission!=null">
-          and ur.role = #{query.permission}
+          and ur.role = #{query.permission,jdbcType=VARCHAR}
         </if>
       </if>
     </where>
index b8cf8a717f06649e1862349c29ecec7bb36fd641..1a75f8fc7855550f17aa13461e9fe757ad38b246 100644 (file)
     select
     <include refid="groupColumns"/>
     from groups g
-    where g.organization_uuid = #{organizationUuid} and g.name = #{name}
+    where g.organization_uuid = #{organizationUuid,jdbcType=VARCHAR} and g.name = #{name,jdbcType=VARCHAR}
   </select>
 
   <select id="selectByKey" parameterType="string" resultType="Group">
     SELECT
     <include refid="groupColumns"/>
     FROM groups g
-    where g.name=#{id}
+    where g.name=#{id,jdbcType=BIGINT}
   </select>
 
   <select id="selectById" parameterType="long" resultType="Group">
     <include refid="groupColumns"/>
     FROM groups g
     <where>
-      g.id=#{id}
+      g.id=#{id,jdbcType=BIGINT}
     </where>
   </select>
 
   <delete id="deleteById" parameterType="long">
     DELETE FROM groups
     <where>
-      id=#{id}
+      id=#{id,jdbcType=BIGINT}
     </where>
   </delete>
 
@@ -49,7 +49,7 @@
     from groups g
     inner join groups_users gu on gu.group_id = g.id
     inner join users u on u.id = gu.user_id
-    where  u.login=#{login}
+    where  u.login=#{login,jdbcType=VARCHAR}
   </select>
 
   <select id="selectByNames" parameterType="map" resultType="Group">
@@ -93,9 +93,9 @@
     <include refid="groupColumns"/>
     from groups g
     where
-    organization_uuid = #{organizationUuid}
+    organization_uuid = #{organizationUuid,jdbcType=VARCHAR}
     <if test="query!=null">
-      and upper(g.name) like #{query} escape '/'
+      and upper(g.name) like #{query,jdbcType=VARCHAR} escape '/'
     </if>
     order by upper(g.name)
   </select>
     select count(1)
     from groups g
     where
-    organization_uuid = #{organizationUuid}
+    organization_uuid = #{organizationUuid,jdbcType=VARCHAR}
     <if test="query!=null">
-      and upper(g.name) like #{query} escape '/'
+      and upper(g.name) like #{query,jdbcType=VARCHAR} escape '/'
     </if>
   </select>
 
     select
     <include refid="groupColumns"/>
     from groups g
-    where g.organization_uuid = #{organizationUuid}
+    where g.organization_uuid = #{organizationUuid,jdbcType=VARCHAR}
     order by upper(g.name)
   </select>
 
index 1c429bd8f0d2c158fbcaf9d9e79e8b46a61a92ff..c7aaa37af7519a09e2cf3f0068e03380342e36c5 100644 (file)
 
   <delete id="delete" parameterType="map">
     delete from groups_users
-    where user_id = #{userId} and
-    group_id = #{groupId}
+    where user_id = #{userId,jdbcType=BIGINT} and
+    group_id = #{groupId,jdbcType=BIGINT}
   </delete>
 
   <delete id="deleteByGroupId" parameterType="long">
     delete from groups_users
-    where group_id = #{groupId}
+    where group_id = #{groupId,jdbcType=BIGINT}
   </delete>
 
 </mapper>