Añade el plugin Redmine Git Hosting 5.0.0

This commit is contained in:
Manuel Cillero 2021-03-20 13:29:16 +01:00
parent cfa0d58b18
commit a3bddad233
458 changed files with 30396 additions and 1 deletions

View file

@ -0,0 +1,27 @@
module PermissionsBuilder
class Base
attr_reader :repository, :gitolite_users, :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 no_users?(type)
gitolite_users[type].blank?
end
end
end

View file

@ -0,0 +1,24 @@
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

View file

@ -0,0 +1,60 @@
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 no_users?(:rewind_users)
@permissions['RW'][''] = gitolite_users[:write_users] unless no_users?(:write_users)
@permissions['R'][''] = gitolite_users[:read_users] unless 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|
next unless user_list.any?
merge_permissions[perm][branch] = [] unless merge_permissions[perm].key?(branch)
merge_permissions[perm][branch] += user_list
end
end
old_permissions.each do |perm, branch_settings|
branch_settings.each do |branch, user_list|
next unless user_list.any?
merge_permissions[perm][branch] = [] unless merge_permissions[perm].key?(branch)
merge_permissions[perm][branch] += user_list
end
end
merge_permissions.each do |perm, _branch_settings|
merge_permissions.delete(perm) if merge_permissions[perm].empty?
end
merge_permissions
end
end
end