Describe for Roles

This commit is contained in:
Dmitriy Zaporozhets 2012-12-30 16:19:31 +02:00
parent 64db5f808b
commit 82ae973a99
11 changed files with 75 additions and 3 deletions

View File

@ -1,3 +1,9 @@
# == Account role
#
# Describe behaviour of User in application
#
# Used by User
#
module Account
# Returns a string for use as a Gitolite user identifier
#

View File

@ -1,3 +1,9 @@
# == Authority role
#
# Control access to project repository based on users role in team
#
# Used by Project
#
module Authority
# Compatible with all access rights
# Should be rewrited for new access rights

View File

@ -1,3 +1,9 @@
# == GitHost role
#
# Provide a shortcut to Gitlab::Gitolite instance
#
# Used by Project, UsersProject
#
module GitHost
def git_host
Gitlab::Gitolite.new

View File

@ -1,4 +1,9 @@
# == IssueCommonality role
#
# Contains common functionality shared between Issues and MergeRequests
#
# Used by Issue, MergeRequest
#
module IssueCommonality
extend ActiveSupport::Concern

View File

@ -1,3 +1,12 @@
# == NamespacedProject role
#
# Provides extra functionality for Project related to namespaces like:
# - transfer project between namespaces
# - name, path including namespece
# - project owner based on namespace
#
# Used by Project
#
module NamespacedProject
def transfer(new_namespace)
Project.transaction do

View File

@ -1,3 +1,9 @@
# == NoteEvent role
#
# Extends Event model functionality by providing extra methods related to comment events
#
# Used by Event
#
module NoteEvent
def note_commit_id
target.commit_id

View File

@ -1,3 +1,9 @@
# == PushEvent role
#
# Extends Event model functionality by providing extra methods related to push events
#
# Used by Event
#
module PushEvent
def valid_push?
data[:ref]
@ -58,7 +64,7 @@ module PushEvent
@commits ||= data[:commits].map { |commit| project.commit(commit[:id]) }.reverse
end
def commits_count
def commits_count
data[:total_commits_count] || commits.count || 0
end
@ -88,7 +94,7 @@ module PushEvent
nil
end
def push_with_commits?
def push_with_commits?
md_ref? && commits.any? && parent_commit && last_commit
rescue Grit::NoSuchPathError
false

View File

@ -1,6 +1,11 @@
# Includes methods for handling Git Push events
# == PushObserver role
#
# Includes methods to be triggered on push to project repository.
#
#
# Used by Project
# Triggered by PostReceive job
#
module PushObserver
# This method will be called after each post receive and only if the provided
# user is present in GitLab.

View File

@ -1,3 +1,10 @@
# == Repository role
#
# Provides access to git repository resources like commits, branches etc..
# Allows you to manage repository via gitolite interface(git_host)
#
# Used by Project
#
module Repository
include GitHost

View File

@ -1,3 +1,12 @@
# == Team role
#
# Provides functionality to manage project team
# - add user/users to project
# - update existing membership
# - remove users from project team
#
# Used by Project
#
module Team
def team_member_by_name_or_email(name = nil, email = nil)
user = users.where("name like ? or email like ?", name, email).first

View File

@ -1,3 +1,10 @@
# == Votes role
#
# Provides functionality to upvote/downvote entity
# based on +1 and -1 notes
#
# Used for Issue and Merge Request
#
module Votes
# Return the number of +1 comments (upvotes)
def upvotes