Class: Giticious::Service::Repository
- Inherits:
-
Object
- Object
- Giticious::Service::Repository
- Defined in:
- lib/giticious/service/repository.rb
Instance Method Summary collapse
- #add_user(repo_name, username, permissions) ⇒ Object
- #create(name) ⇒ Object
- #delete(name) ⇒ Object
- #delete_user(repo_name, username) ⇒ Object
- #list ⇒ Object
- #permissions(repo) ⇒ Object
- #permissions_for(repo_name, username) ⇒ Object
Instance Method Details
#add_user(repo_name, username, permissions) ⇒ Object
90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 |
# File 'lib/giticious/service/repository.rb', line 90 def add_user(repo_name, username, ) repo = Giticious::Model::Repository.find_by_name(repo_name) if repo.nil? raise ArgumentError, "The selected repository does not exist" end user = Giticious::Model::User.find_by_username(username) if user.nil? raise ArgumentError, "The selected user does not exist" end if Giticious::Model::Permission.where(user_id: user.id, repository_id: repo.id).empty? == false raise ArgumentError, "This user does already have permissions" end perm = Giticious::Model::Permission.new perm.repository_id = repo.id perm.user_id = user.id perm.perm_read = .include?("r") perm.perm_write = .include?("w") perm.save! end |
#create(name) ⇒ Object
9 10 11 12 13 14 15 16 17 18 19 20 21 |
# File 'lib/giticious/service/repository.rb', line 9 def create(name) path = "#{Dir.home}/repositories/#{name}.git" if init_repository(path) == false raise RuntimeError, "Could not initi Git repository" end repo = Giticious::Model::Repository.new repo.name = name repo.path = path repo.save! end |
#delete(name) ⇒ Object
23 24 25 26 27 28 29 30 31 32 33 34 |
# File 'lib/giticious/service/repository.rb', line 23 def delete(name) repo = Giticious::Model::Repository.find_by_name(name) if repo.nil? raise ArgumentError, "The selected repository does not exist" end Giticious::Model::Permission.where(repository_id: repo.id).delete_all FileUtils.rm_rf("#{Dir.home}/repositories/#{repo.name}.git") repo.delete end |
#delete_user(repo_name, username) ⇒ Object
68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 |
# File 'lib/giticious/service/repository.rb', line 68 def delete_user(repo_name, username) repo = Giticious::Model::Repository.find_by_name(repo_name) if repo.nil? raise ArgumentError, "The selected repository does not exist" end user = Giticious::Model::User.find_by_username(username) if user.nil? raise ArgumentError, "The selected user does not exist" end perms = Giticious::Model::Permission.where(user_id: user.id, repository_id: repo.id) if perms.empty? raise ArgumentError, "This user does not have permissions" end perms.delete_all end |
#list ⇒ Object
5 6 7 |
# File 'lib/giticious/service/repository.rb', line 5 def list Giticious::Model::Repository.all end |
#permissions(repo) ⇒ Object
36 37 38 39 40 41 42 43 44 |
# File 'lib/giticious/service/repository.rb', line 36 def (repo) repo = Giticious::Model::Repository.find_by_name(repo) if repo.nil? raise ArgumentError, "The selected repository does not exist" end repo. end |
#permissions_for(repo_name, username) ⇒ Object
46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 |
# File 'lib/giticious/service/repository.rb', line 46 def (repo_name, username) repo = Giticious::Model::Repository.find_by_name(repo_name) if repo.nil? raise ArgumentError, "The selected repository does not exist" end user = Giticious::Model::User.find_by_username(username) if user.nil? raise ArgumentError, "The selected user does not exist" end = Giticious::Model::Permission.where(user_id: user.id, repository_id: repo.id) if .empty? return false end return .first! end |