]> source.dussan.org Git - gitblit.git/commitdiff
Merged multiple owners (pull request #63)
authorJames Moger <james.moger@gitblit.com>
Wed, 23 Jan 2013 12:58:51 +0000 (07:58 -0500)
committerJames Moger <james.moger@gitblit.com>
Wed, 23 Jan 2013 12:58:51 +0000 (07:58 -0500)
1  2 
docs/04_releases.mkd
src/com/gitblit/GitBlit.java
src/com/gitblit/models/RepositoryModel.java
src/com/gitblit/wicket/GitBlitWebApp.properties
src/com/gitblit/wicket/pages/RepositoryPage.java
src/com/gitblit/wicket/panels/ProjectRepositoryPanel.java
src/com/gitblit/wicket/panels/RepositoriesPanel.java

index 6f6fd752e30bb3c7792851bebbd6fd0a161b374b,26cbd08b75e35cf9024b3e27aa15595fc321b2ca..678a7e0ea2540ee5102a5482d86120f5304aa5d6
@@@ -6,31 -6,9 +6,32 @@@
  \r
  #### fixes\r
  \r
 -- Fixed nullpointer on recursively calculating folder sizes when there is a named pipe in the hierarchy\r
 +- Can't set reset settings with $ or { characters through Gitblit Manager because they are not properly escaped\r
 +\r
 +#### additions\r
\r
-  - Chinese translation (github/dapengme)\r
++ \r
++ - Implemented multiple repository owners (github/akquinet)\r
++ - Chinese translation (github/dapengme, github/yin8086)\r
 +\r
 +### Older Releases\r
 +\r
 +<div class="alert alert-info">\r
 +<h4>Update Note 1.2.1</h4>\r
 +Because there are now several types of files and folders that must be considered Gitblit data, the default location for data has changed.\r
 +<p>You will need to move a few files around when upgrading.  Please see the Upgrading section of the <a href="setup.html">setup</a> page for details.</p>\r
 +\r
 +<b>Express Users</b> make sure to update your web.xml file with the ${baseFolder} values!\r
 +</div>\r
 +\r
 +#### fixes\r
 +\r
 +- Fixed nullpointer on recursively calculating folder sizes when there is a named pipe or symlink in the hierarchy\r
 +- Added nullchecking when concurrently forking a repository and trying to display it's fork network (issue-187)\r
 +- Fixed bug where permission changes were not visible in the web ui to a logged-in user until the user logged-out and then logged back in again (issue-186)\r
  - Fixed nullpointer on creating a repository with mixed case (issue 185)\r
 -- Fixed nullpointer when using web.allowForking = true && git.cacheRepositoryList = false (issue 182)\r
 +- Include missing model classes in api library (issue-184)\r
 +- Fixed nullpointer when using *web.allowForking = true* && *git.cacheRepositoryList = false* (issue 182)\r
 +- Likely fix for commit and commitdiff page failures when a submodule reference changes (issue 178)\r
  - Build project models from the repository model cache, when possible, to reduce page load time (issue 172)\r
  - Fixed loading of Brazilian Portuguese translation from *nix server (github/inaiat)\r
  \r
Simple merge
index 022fd2005f8111f8200008522acbd9ebe37a38fd,320f16b5745957687b2ac7a0078a033e099f73bc..a2dab3c5106203866cde4f95ed15d145461f4c7d
@@@ -198,7 -199,39 +204,40 @@@ public class RepositoryModel implement
                clone.useTickets = useTickets;\r
                clone.skipSizeCalculation = skipSizeCalculation;\r
                clone.skipSummaryMetrics = skipSummaryMetrics;\r
 +              clone.sparkleshareId = sparkleshareId; \r
                return clone;\r
        }\r
- }
\r
+       public void addOwner(String username) {\r
+               if (!StringUtils.isEmpty(username)) {\r
+                       String name = username.toLowerCase();\r
+                       // a set would be more efficient, but this complicates JSON\r
+                       // deserialization so we enforce uniqueness with an arraylist\r
+                       if (!owners.contains(name)) {\r
+                               owners.add(name);\r
+                       }\r
+               }\r
+       }\r
\r
+       public void removeOwner(String username) {\r
+               if (!StringUtils.isEmpty(username)) {\r
+                       owners.remove(username.toLowerCase());\r
+               }\r
+       }\r
\r
+       public void addOwners(Collection<String> usernames) {\r
+               if (!ArrayUtils.isEmpty(usernames)) {\r
+                       for (String username : usernames) {\r
+                               addOwner(username);\r
+                       }\r
+               }\r
+       }\r
\r
+       public void removeOwners(Collection<String> usernames) {\r
+               if (!ArrayUtils.isEmpty(owners)) {\r
+                       for (String username : usernames) {\r
+                               removeOwner(username);\r
+                       }\r
+               }\r
+       }\r
 -}
++}
index dfdf70c2f31db8f34214abcae8791b47ef1d484c,e77597608098a6a75148aa177614babe4a5b764a..a993f9f15816e8e496d7fb1128d311ebb51834f8
@@@ -441,4 -441,4 +441,5 @@@ gb.validity = validit
  gb.siteName = site name\r
  gb.siteNameDescription = short, descriptive name of your server \r
  gb.excludeFromActivity = exclude from activity page\r
- gb.isSparkleshared = repository is Sparkleshared
++gb.isSparkleshared = repository is Sparkleshared\r
+ gb.owners = owners