Añade plugin Redmine Git Hosting 4.0.2
This commit is contained in:
parent
472cb1ea76
commit
bdd66d941f
494 changed files with 36768 additions and 0 deletions
|
@ -0,0 +1,38 @@
|
|||
module PermissionsBuilder
|
||||
class Base
|
||||
|
||||
attr_reader :repository
|
||||
attr_reader :gitolite_users
|
||||
attr_reader :old_permissions
|
||||
|
||||
|
||||
def initialize(repository, gitolite_users, old_permissions = {})
|
||||
@repository = repository
|
||||
@gitolite_users = gitolite_users
|
||||
@old_permissions = old_permissions
|
||||
end
|
||||
|
||||
|
||||
class << self
|
||||
|
||||
def build(repository, gitolite_users, old_permissions = {})
|
||||
new(repository, gitolite_users, old_permissions).build
|
||||
end
|
||||
|
||||
end
|
||||
|
||||
|
||||
def build
|
||||
raise NotImplementedError
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
|
||||
|
||||
def has_no_users?(type)
|
||||
gitolite_users[type].nil? || gitolite_users[type].empty?
|
||||
end
|
||||
|
||||
end
|
||||
end
|
|
@ -0,0 +1,29 @@
|
|||
module PermissionsBuilder
|
||||
class ProtectedBranches < Base
|
||||
|
||||
attr_reader :permissions
|
||||
|
||||
|
||||
def initialize(*args)
|
||||
super
|
||||
@permissions = []
|
||||
end
|
||||
|
||||
|
||||
def build
|
||||
build_protected_branch_permissions
|
||||
permissions
|
||||
end
|
||||
|
||||
|
||||
def build_protected_branch_permissions
|
||||
repository.protected_branches.each do |branch|
|
||||
perms = {}
|
||||
perms[branch.permissions] = {}
|
||||
perms[branch.permissions][branch.path] = branch.allowed_users unless branch.allowed_users.empty?
|
||||
permissions.push(perms)
|
||||
end
|
||||
end
|
||||
|
||||
end
|
||||
end
|
|
@ -0,0 +1,71 @@
|
|||
module PermissionsBuilder
|
||||
class Standard < Base
|
||||
|
||||
attr_reader :permissions
|
||||
|
||||
|
||||
def initialize(*args)
|
||||
super
|
||||
@permissions = {}
|
||||
@permissions['RW+'] = {}
|
||||
@permissions['RW'] = {}
|
||||
@permissions['R'] = {}
|
||||
end
|
||||
|
||||
|
||||
def build
|
||||
# Build permissions
|
||||
build_permissions
|
||||
|
||||
# Return them
|
||||
[merge_permissions(permissions, old_permissions)]
|
||||
end
|
||||
|
||||
|
||||
private
|
||||
|
||||
|
||||
def build_permissions
|
||||
@permissions['RW+'][''] = gitolite_users[:rewind_users] unless has_no_users?(:rewind_users)
|
||||
@permissions['RW'][''] = gitolite_users[:write_users] unless has_no_users?(:write_users)
|
||||
@permissions['R'][''] = gitolite_users[:read_users] unless has_no_users?(:read_users)
|
||||
end
|
||||
|
||||
|
||||
def merge_permissions(current_permissions, old_permissions)
|
||||
merge_permissions = {}
|
||||
merge_permissions['RW+'] = {}
|
||||
merge_permissions['RW'] = {}
|
||||
merge_permissions['R'] = {}
|
||||
|
||||
current_permissions.each do |perm, branch_settings|
|
||||
branch_settings.each do |branch, user_list|
|
||||
if user_list.any?
|
||||
if !merge_permissions[perm].has_key?(branch)
|
||||
merge_permissions[perm][branch] = []
|
||||
end
|
||||
merge_permissions[perm][branch] += user_list
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
old_permissions.each do |perm, branch_settings|
|
||||
branch_settings.each do |branch, user_list|
|
||||
if user_list.any?
|
||||
if !merge_permissions[perm].has_key?(branch)
|
||||
merge_permissions[perm][branch] = []
|
||||
end
|
||||
merge_permissions[perm][branch] += user_list
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
merge_permissions.each do |perm, branch_settings|
|
||||
merge_permissions.delete(perm) if merge_permissions[perm].empty?
|
||||
end
|
||||
|
||||
merge_permissions
|
||||
end
|
||||
|
||||
end
|
||||
end
|
Loading…
Add table
Add a link
Reference in a new issue