|  | @@ -10,6 +10,16 @@ import (
 | 
	
		
			
				|  |  |  	"github.com/gogits/gogs/modules/base"
 | 
	
		
			
				|  |  |  )
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +// IsOrgOwner returns true if given user is in the owner team.
 | 
	
		
			
				|  |  | +func (org *User) IsOrgOwner(uid int64) bool {
 | 
	
		
			
				|  |  | +	return IsOrganizationOwner(org.Id, uid)
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// IsOrgMember returns true if given user is member of organization.
 | 
	
		
			
				|  |  | +func (org *User) IsOrgMember(uid int64) bool {
 | 
	
		
			
				|  |  | +	return IsOrganizationMember(org.Id, uid)
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  // GetOwnerTeam returns owner team of organization.
 | 
	
		
			
				|  |  |  func (org *User) GetOwnerTeam() (*Team, error) {
 | 
	
		
			
				|  |  |  	t := &Team{
 | 
	
	
		
			
				|  | @@ -167,6 +177,18 @@ type Team struct {
 | 
	
		
			
				|  |  |  	RepoIds     string `xorm:"TEXT"`
 | 
	
		
			
				|  |  |  	NumMembers  int
 | 
	
		
			
				|  |  |  	NumRepos    int
 | 
	
		
			
				|  |  | +	Members     []*User `xorm:"-"`
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// IsTeamMember returns true if given user is a member of team.
 | 
	
		
			
				|  |  | +func (t *Team) IsMember(uid int64) bool {
 | 
	
		
			
				|  |  | +	return IsTeamMember(t.OrgId, t.Id, uid)
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// GetMembers returns all members in given team of organization.
 | 
	
		
			
				|  |  | +func (t *Team) GetMembers() (err error) {
 | 
	
		
			
				|  |  | +	t.Members, err = GetTeamMembers(t.OrgId, t.Id)
 | 
	
		
			
				|  |  | +	return err
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  |  // NewTeam creates a record of new team.
 | 
	
	
		
			
				|  | @@ -205,6 +227,18 @@ type OrgUser struct {
 | 
	
		
			
				|  |  |  	NumTeam  int
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +// IsOrganizationOwner returns true if given user is in the owner team.
 | 
	
		
			
				|  |  | +func IsOrganizationOwner(orgId, uid int64) bool {
 | 
	
		
			
				|  |  | +	has, _ := x.Where("is_owner=?", true).And("uid=?", uid).And("org_id=?", orgId).Get(new(OrgUser))
 | 
	
		
			
				|  |  | +	return has
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  | +// IsOrganizationMember returns true if given user is member of organization.
 | 
	
		
			
				|  |  | +func IsOrganizationMember(orgId, uid int64) bool {
 | 
	
		
			
				|  |  | +	has, _ := x.Where("uid=?", uid).And("org_id=?", orgId).Get(new(OrgUser))
 | 
	
		
			
				|  |  | +	return has
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  // GetOrgUsersByUserId returns all organization-user relations by user ID.
 | 
	
		
			
				|  |  |  func GetOrgUsersByUserId(uid int64) ([]*OrgUser, error) {
 | 
	
		
			
				|  |  |  	ous := make([]*OrgUser, 0, 10)
 | 
	
	
		
			
				|  | @@ -219,18 +253,6 @@ func GetOrgUsersByOrgId(orgId int64) ([]*OrgUser, error) {
 | 
	
		
			
				|  |  |  	return ous, err
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | -// IsOrganizationOwner returns true if given user is in the owner team.
 | 
	
		
			
				|  |  | -func IsOrganizationOwner(orgId, uid int64) bool {
 | 
	
		
			
				|  |  | -	has, _ := x.Where("is_owner=?", true).Get(&OrgUser{Uid: uid, OrgId: orgId})
 | 
	
		
			
				|  |  | -	return has
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  | -// IsOrganizationMember returns true if given user is member of organization.
 | 
	
		
			
				|  |  | -func IsOrganizationMember(orgId, uid int64) bool {
 | 
	
		
			
				|  |  | -	has, _ := x.Get(&OrgUser{Uid: uid, OrgId: orgId})
 | 
	
		
			
				|  |  | -	return has
 | 
	
		
			
				|  |  | -}
 | 
	
		
			
				|  |  | -
 | 
	
		
			
				|  |  |  // ___________                    ____ ___
 | 
	
		
			
				|  |  |  // \__    ___/___ _____    _____ |    |   \______ ___________
 | 
	
		
			
				|  |  |  //   |    |_/ __ \\__  \  /     \|    |   /  ___// __ \_  __ \
 | 
	
	
		
			
				|  | @@ -246,6 +268,12 @@ type TeamUser struct {
 | 
	
		
			
				|  |  |  	TeamId int64
 | 
	
		
			
				|  |  |  }
 | 
	
		
			
				|  |  |  
 | 
	
		
			
				|  |  | +// IsTeamMember returns true if given user is a member of team.
 | 
	
		
			
				|  |  | +func IsTeamMember(orgId, teamId, uid int64) bool {
 | 
	
		
			
				|  |  | +	has, _ := x.Where("uid=?", uid).And("org_id=?", orgId).And("team_id=?", teamId).Get(new(TeamUser))
 | 
	
		
			
				|  |  | +	return has
 | 
	
		
			
				|  |  | +}
 | 
	
		
			
				|  |  | +
 | 
	
		
			
				|  |  |  // GetTeamMembers returns all members in given team of organization.
 | 
	
		
			
				|  |  |  func GetTeamMembers(orgId, teamId int64) ([]*User, error) {
 | 
	
		
			
				|  |  |  	tus := make([]*TeamUser, 0, 10)
 |