organization

package
v1.21.0 Latest Latest
Warning

This package is not in the latest version of its module.

Go to latest
Published: Nov 14, 2023 License: MIT Imports: 15 Imported by: 25

Documentation

Index

Constants

View Source
const OwnerTeamName = "Owners"

OwnerTeamName return the owner team name

Variables

This section is empty.

Functions

func AddOrgUser

func AddOrgUser(orgID, uid int64) error

AddOrgUser adds new user to given organization.

func AddTeamRepo

func AddTeamRepo(ctx context.Context, orgID, teamID, repoID int64) error

AddTeamRepo adds a repo for an organization's team

func CanCreateOrgRepo

func CanCreateOrgRepo(ctx context.Context, orgID, uid int64) (bool, error)

CanCreateOrgRepo returns true if user can create repo in organization

func ChangeOrgUserStatus

func ChangeOrgUserStatus(orgID, uid int64, public bool) error

ChangeOrgUserStatus changes public or private membership status.

func CountOrgMembers

func CountOrgMembers(opts *FindOrgMembersOpts) (int64, error)

CountOrgMembers counts the organization's members

func CountOrgs

func CountOrgs(opts FindOrgOptions) (int64, error)

CountOrgs returns total count organizations according options

func CreateOrganization

func CreateOrganization(org *Organization, owner *user_model.User) (err error)

CreateOrganization creates record of a new organization.

func DeleteOrganization

func DeleteOrganization(ctx context.Context, org *Organization) error

DeleteOrganization deletes models associated to an organization.

func FindOrgMembers

func FindOrgMembers(ctx context.Context, opts *FindOrgMembersOpts) (user_model.UserList, map[int64]bool, error)

FindOrgMembers loads organization members according conditions

func GetOrgRepositories added in v1.17.4

func GetOrgRepositories(ctx context.Context, orgID int64) (repo_model.RepositoryList, error)

GetOrgRepositories get repos belonging to the given organization

func GetOrganizationCount

func GetOrganizationCount(ctx context.Context, u *user_model.User) (int64, error)

GetOrganizationCount returns count of membership of organization of the user.

func GetTeamIDsByNames

func GetTeamIDsByNames(orgID int64, names []string, ignoreNonExistent bool) ([]int64, error)

GetTeamIDsByNames returns a slice of team ids corresponds to names.

func GetTeamMembers

func GetTeamMembers(ctx context.Context, opts *SearchMembersOptions) ([]*user_model.User, error)

GetTeamMembers returns all members in given team of organization.

func GetTeamNamesByID

func GetTeamNamesByID(teamIDs []int64) ([]string, error)

GetTeamNamesByID returns team's lower name from a list of team ids.

func GetTeamRepositories

func GetTeamRepositories(ctx context.Context, opts *SearchTeamRepoOptions) (repo_model.RepositoryList, error)

GetRepositories returns paginated repositories in team of organization.

func GetUsersWhoCanCreateOrgRepo

func GetUsersWhoCanCreateOrgRepo(ctx context.Context, orgID int64) (map[int64]*user_model.User, error)

GetUsersWhoCanCreateOrgRepo returns users which are able to create repo in organization

func HasOrgOrUserVisible

func HasOrgOrUserVisible(ctx context.Context, orgOrUser, user *user_model.User) bool

HasOrgOrUserVisible tells if the given user can see the given org or user

func HasOrgsVisible

func HasOrgsVisible(orgs []*Organization, user *user_model.User) bool

HasOrgsVisible tells if the given user can see at least one of the orgs provided

func HasTeamRepo

func HasTeamRepo(ctx context.Context, orgID, teamID, repoID int64) bool

HasTeamRepo returns true if given repository belongs to team.

func IncrTeamRepoNum added in v1.17.4

func IncrTeamRepoNum(ctx context.Context, teamID int64) error

IncrTeamRepoNum increases the number of repos for the given team by 1

func IsErrLastOrgOwner

func IsErrLastOrgOwner(err error) bool

IsErrLastOrgOwner checks if an error is a ErrLastOrgOwner.

func IsErrOrgNotExist

func IsErrOrgNotExist(err error) bool

IsErrOrgNotExist checks if an error is a ErrOrgNotExist.

func IsErrTeamAlreadyExist

func IsErrTeamAlreadyExist(err error) bool

IsErrTeamAlreadyExist checks if an error is a ErrTeamAlreadyExist.

func IsErrTeamInviteAlreadyExist added in v1.17.4

func IsErrTeamInviteAlreadyExist(err error) bool

func IsErrTeamInviteNotFound added in v1.17.4

func IsErrTeamInviteNotFound(err error) bool

func IsErrTeamNotExist

func IsErrTeamNotExist(err error) bool

IsErrTeamNotExist checks if an error is a ErrTeamNotExist.

func IsErrUserEmailAlreadyAdded added in v1.17.4

func IsErrUserEmailAlreadyAdded(err error) bool

IsErrUserEmailAlreadyAdded checks if an error is a ErrUserEmailAlreadyAdded.

func IsErrUserNotAllowedCreateOrg

func IsErrUserNotAllowedCreateOrg(err error) bool

IsErrUserNotAllowedCreateOrg checks if an error is an ErrUserNotAllowedCreateOrg.

func IsOrganizationAdmin added in v1.20.0

func IsOrganizationAdmin(ctx context.Context, orgID, uid int64) (bool, error)

IsOrganizationAdmin returns true if given user is in the owner team or an admin team.

func IsOrganizationMember

func IsOrganizationMember(ctx context.Context, orgID, uid int64) (bool, error)

IsOrganizationMember returns true if given user is member of organization.

func IsOrganizationOwner

func IsOrganizationOwner(ctx context.Context, orgID, uid int64) (bool, error)

IsOrganizationOwner returns true if given user is in the owner team.

func IsPublicMembership

func IsPublicMembership(orgID, uid int64) (bool, error)

IsPublicMembership returns true if the given user's membership of given org is public.

func IsTeamMember

func IsTeamMember(ctx context.Context, orgID, teamID, userID int64) (bool, error)

IsTeamMember returns true if given user is a member of team.

func IsUsableTeamName

func IsUsableTeamName(name string) error

IsUsableTeamName tests if a name could be as team name

func IsUserInTeams

func IsUserInTeams(ctx context.Context, userID int64, teamIDs []int64) (bool, error)

IsUserInTeams returns if a user in some teams

func IsUserOrgOwner

func IsUserOrgOwner(users user_model.UserList, orgID int64) map[int64]bool

IsUserOrgOwner returns true if user is in the owner team of given organization.

func RemoveInviteByID added in v1.17.4

func RemoveInviteByID(ctx context.Context, inviteID, teamID int64) error

func RemoveOrgRepo

func RemoveOrgRepo(ctx context.Context, orgID, repoID int64) error

RemoveOrgRepo removes all team-repository relations of organization.

func RemoveTeamRepo

func RemoveTeamRepo(ctx context.Context, teamID, repoID int64) error

RemoveTeamRepo remove repository from team

func UpdateTeamUnits

func UpdateTeamUnits(team *Team, units []TeamUnit) (err error)

UpdateTeamUnits updates a teams's units

func UsersInTeamsCount

func UsersInTeamsCount(userIDs, teamIDs []int64) (int64, error)

UsersInTeamsCount counts the number of users which are in userIDs and teamIDs

Types

type AccessibleReposEnvironment

type AccessibleReposEnvironment interface {
	CountRepos() (int64, error)
	RepoIDs(page, pageSize int) ([]int64, error)
	Repos(page, pageSize int) (repo_model.RepositoryList, error)
	MirrorRepos() (repo_model.RepositoryList, error)
	AddKeyword(keyword string)
	SetSort(db.SearchOrderBy)
}

AccessibleReposEnvironment operations involving the repositories that are accessible to a particular user

func AccessibleReposEnv

func AccessibleReposEnv(ctx context.Context, org *Organization, userID int64) (AccessibleReposEnvironment, error)

AccessibleReposEnv builds an AccessibleReposEnvironment for the repositories in `org` that are accessible to the specified user.

type ErrLastOrgOwner

type ErrLastOrgOwner struct {
	UID int64
}

ErrLastOrgOwner represents a "LastOrgOwner" kind of error.

func (ErrLastOrgOwner) Error

func (err ErrLastOrgOwner) Error() string

type ErrOrgNotExist

type ErrOrgNotExist struct {
	ID   int64
	Name string
}

ErrOrgNotExist represents a "OrgNotExist" kind of error.

func (ErrOrgNotExist) Error

func (err ErrOrgNotExist) Error() string

func (ErrOrgNotExist) Unwrap added in v1.17.4

func (err ErrOrgNotExist) Unwrap() error

type ErrTeamAlreadyExist

type ErrTeamAlreadyExist struct {
	OrgID int64
	Name  string
}

ErrTeamAlreadyExist represents a "TeamAlreadyExist" kind of error.

func (ErrTeamAlreadyExist) Error

func (err ErrTeamAlreadyExist) Error() string

func (ErrTeamAlreadyExist) Unwrap added in v1.17.4

func (err ErrTeamAlreadyExist) Unwrap() error

type ErrTeamInviteAlreadyExist added in v1.17.4

type ErrTeamInviteAlreadyExist struct {
	TeamID int64
	Email  string
}

func (ErrTeamInviteAlreadyExist) Error added in v1.17.4

func (err ErrTeamInviteAlreadyExist) Error() string

func (ErrTeamInviteAlreadyExist) Unwrap added in v1.17.4

func (err ErrTeamInviteAlreadyExist) Unwrap() error

type ErrTeamInviteNotFound added in v1.17.4

type ErrTeamInviteNotFound struct {
	Token string
}

func (ErrTeamInviteNotFound) Error added in v1.17.4

func (err ErrTeamInviteNotFound) Error() string

func (ErrTeamInviteNotFound) Unwrap added in v1.17.4

func (err ErrTeamInviteNotFound) Unwrap() error

type ErrTeamNotExist

type ErrTeamNotExist struct {
	OrgID  int64
	TeamID int64
	Name   string
}

ErrTeamNotExist represents a "TeamNotExist" error

func (ErrTeamNotExist) Error

func (err ErrTeamNotExist) Error() string

func (ErrTeamNotExist) Unwrap added in v1.17.4

func (err ErrTeamNotExist) Unwrap() error

type ErrUserEmailAlreadyAdded added in v1.17.4

type ErrUserEmailAlreadyAdded struct {
	Email string
}

ErrUserEmailAlreadyAdded represents a "user by email already added to team" error.

func (ErrUserEmailAlreadyAdded) Error added in v1.17.4

func (err ErrUserEmailAlreadyAdded) Error() string

func (ErrUserEmailAlreadyAdded) Unwrap added in v1.17.4

func (err ErrUserEmailAlreadyAdded) Unwrap() error

type ErrUserNotAllowedCreateOrg

type ErrUserNotAllowedCreateOrg struct{}

ErrUserNotAllowedCreateOrg represents a "UserNotAllowedCreateOrg" kind of error.

func (ErrUserNotAllowedCreateOrg) Error

func (err ErrUserNotAllowedCreateOrg) Error() string

func (ErrUserNotAllowedCreateOrg) Unwrap added in v1.17.4

func (err ErrUserNotAllowedCreateOrg) Unwrap() error

type FindOrgMembersOpts

type FindOrgMembersOpts struct {
	db.ListOptions
	OrgID      int64
	PublicOnly bool
}

FindOrgMembersOpts represensts find org members conditions

type FindOrgOptions

type FindOrgOptions struct {
	db.ListOptions
	UserID         int64
	IncludePrivate bool
}

FindOrgOptions finds orgs options

type MinimalOrg added in v1.17.4

type MinimalOrg = Organization

MinimalOrg represents a simple organization with only the needed columns

func GetUserOrgsList added in v1.17.4

func GetUserOrgsList(ctx context.Context, user *user_model.User) ([]*MinimalOrg, error)

GetUserOrgsList returns all organizations the given user has access to

type OrgUser

type OrgUser struct {
	ID       int64 `xorm:"pk autoincr"`
	UID      int64 `xorm:"INDEX UNIQUE(s)"`
	OrgID    int64 `xorm:"INDEX UNIQUE(s)"`
	IsPublic bool  `xorm:"INDEX"`
}

OrgUser represents an organization-user relation.

func GetOrgUsersByOrgID

func GetOrgUsersByOrgID(ctx context.Context, opts *FindOrgMembersOpts) ([]*OrgUser, error)

GetOrgUsersByOrgID returns all organization-user relations by organization ID.

type Organization

type Organization user_model.User

Organization represents an organization

func FindOrgs

func FindOrgs(opts FindOrgOptions) ([]*Organization, error)

FindOrgs returns a list of organizations according given conditions

func GetOrgByID

func GetOrgByID(ctx context.Context, id int64) (*Organization, error)

GetOrgByID returns the user object by given ID if exists.

func GetOrgByName

func GetOrgByName(ctx context.Context, name string) (*Organization, error)

GetOrgByName returns organization by given name.

func GetOrgsCanCreateRepoByUserID

func GetOrgsCanCreateRepoByUserID(ctx context.Context, userID int64) ([]*Organization, error)

GetOrgsCanCreateRepoByUserID returns a list of organizations where given user ID are allowed to create repos.

func OrgFromUser

func OrgFromUser(user *user_model.User) *Organization

OrgFromUser converts user to organization

func (*Organization) AccessibleTeamReposEnv

func (org *Organization) AccessibleTeamReposEnv(team *Team) AccessibleReposEnvironment

AccessibleTeamReposEnv an AccessibleReposEnvironment for the repositories in `org` that are accessible to the specified team.

func (*Organization) AsUser

func (org *Organization) AsUser() *user_model.User

AsUser returns the org as user object

func (org *Organization) AvatarLink(ctx context.Context) string

AvatarLink returns the full avatar link with http host

func (*Organization) CanCreateOrgRepo

func (org *Organization) CanCreateOrgRepo(uid int64) (bool, error)

CanCreateOrgRepo returns true if given user can create repo in organization

func (*Organization) CanCreateRepo

func (org *Organization) CanCreateRepo() bool

CanCreateRepo returns if user login can create a repository NOTE: functions calling this assume a failure due to repository count limit; if new checks are added, those functions should be revised

func (*Organization) CustomAvatarRelativePath

func (org *Organization) CustomAvatarRelativePath() string

CustomAvatarRelativePath returns user custom avatar relative path.

func (*Organization) DisplayName

func (org *Organization) DisplayName() string

DisplayName returns full name if it's not empty, returns username otherwise.

func (*Organization) GetMembers

func (org *Organization) GetMembers(ctx context.Context) (user_model.UserList, map[int64]bool, error)

GetMembers returns all members of organization.

func (*Organization) GetOrgUserMaxAuthorizeLevel

func (org *Organization) GetOrgUserMaxAuthorizeLevel(uid int64) (perm.AccessMode, error)

GetOrgUserMaxAuthorizeLevel returns highest authorize level of user in an organization

func (*Organization) GetOwnerTeam

func (org *Organization) GetOwnerTeam(ctx context.Context) (*Team, error)

GetOwnerTeam returns owner team of organization.

func (*Organization) GetTeam

func (org *Organization) GetTeam(ctx context.Context, name string) (*Team, error)

GetTeam returns named team of organization.

func (*Organization) GetUserTeamIDs

func (org *Organization) GetUserTeamIDs(userID int64) ([]int64, error)

GetUserTeamIDs returns of all team IDs of the organization that user is member of.

func (*Organization) GetUserTeams

func (org *Organization) GetUserTeams(userID int64) ([]*Team, error)

GetUserTeams returns all teams that belong to user, and that the user has joined.

func (*Organization) HTMLURL

func (org *Organization) HTMLURL() string

HTMLURL returns the organization's full link.

func (*Organization) HasMemberWithUserID

func (org *Organization) HasMemberWithUserID(userID int64) bool

HasMemberWithUserID returns true if user with userID is part of the u organisation.

func (org *Organization) HomeLink() string

HomeLink returns the user or organization home page link.

func (*Organization) IsOrgAdmin added in v1.20.0

func (org *Organization) IsOrgAdmin(uid int64) (bool, error)

IsOrgAdmin returns true if given user is in the owner team or an admin team.

func (*Organization) IsOrgMember

func (org *Organization) IsOrgMember(uid int64) (bool, error)

IsOrgMember returns true if given user is member of organization.

func (*Organization) IsOwnedBy

func (org *Organization) IsOwnedBy(uid int64) (bool, error)

IsOwnedBy returns true if given user is in the owner team.

func (*Organization) LoadTeams

func (org *Organization) LoadTeams() ([]*Team, error)

LoadTeams load teams if not loaded.

func (org *Organization) OrganisationLink() string

OrganisationLink returns the organization sub page link.

func (*Organization) ShortName

func (org *Organization) ShortName(length int) string

ShortName ellipses username to length

func (Organization) TableName

func (Organization) TableName() string

TableName represents the real table name of Organization

func (*Organization) TeamsWithAccessToRepo

func (org *Organization) TeamsWithAccessToRepo(repoID int64, mode perm.AccessMode) ([]*Team, error)

TeamsWithAccessToRepo returns all teams that have given access level to the repository.

func (*Organization) UnitPermission added in v1.19.0

func (org *Organization) UnitPermission(ctx context.Context, doer *user_model.User, unitType unit.Type) perm.AccessMode

UnitPermission returns unit permission

type SearchMembersOptions

type SearchMembersOptions struct {
	db.ListOptions
	TeamID int64
}

SearchMembersOptions holds the search options

func (SearchMembersOptions) ToConds

func (opts SearchMembersOptions) ToConds() builder.Cond

type SearchOrganizationsOptions

type SearchOrganizationsOptions struct {
	db.ListOptions
	All bool
}

SearchOrganizationsOptions options to filter organizations

type SearchTeamOptions

type SearchTeamOptions struct {
	db.ListOptions
	UserID      int64
	Keyword     string
	OrgID       int64
	IncludeDesc bool
}

SearchTeamOptions holds the search options

type SearchTeamRepoOptions

type SearchTeamRepoOptions struct {
	db.ListOptions
	TeamID int64
}

type Team

type Team struct {
	ID                      int64 `xorm:"pk autoincr"`
	OrgID                   int64 `xorm:"INDEX"`
	LowerName               string
	Name                    string
	Description             string
	AccessMode              perm.AccessMode          `xorm:"'authorize'"`
	Repos                   []*repo_model.Repository `xorm:"-"`
	Members                 []*user_model.User       `xorm:"-"`
	NumRepos                int
	NumMembers              int
	Units                   []*TeamUnit `xorm:"-"`
	IncludesAllRepositories bool        `xorm:"NOT NULL DEFAULT false"`
	CanCreateOrgRepo        bool        `xorm:"NOT NULL DEFAULT false"`
}

Team represents a organization team.

func FindOrgTeams

func FindOrgTeams(ctx context.Context, orgID int64) ([]*Team, error)

FindOrgTeams returns all teams of a given organization

func GetOwnerTeam

func GetOwnerTeam(ctx context.Context, orgID int64) (*Team, error)

GetOwnerTeam returns team by given team name and organization.

func GetTeam

func GetTeam(ctx context.Context, orgID int64, name string) (*Team, error)

GetTeam returns team by given team name and organization.

func GetTeamByID

func GetTeamByID(ctx context.Context, teamID int64) (*Team, error)

GetTeamByID returns team by given ID.

func GetTeamsWithAccessToRepo

func GetTeamsWithAccessToRepo(ctx context.Context, orgID, repoID int64, mode perm.AccessMode) ([]*Team, error)

GetTeamsWithAccessToRepo returns all teams in an organization that have given access level to the repository.

func (*Team) GetUnitNames

func (t *Team) GetUnitNames() (res []string)

GetUnitNames returns the team units names

func (*Team) GetUnitsMap

func (t *Team) GetUnitsMap() map[string]string

GetUnitsMap returns the team units permissions

func (*Team) IsMember

func (t *Team) IsMember(userID int64) bool

IsMember returns true if given user is a member of team.

func (*Team) IsOwnerTeam

func (t *Team) IsOwnerTeam() bool

IsOwnerTeam returns true if team is owner team.

func (*Team) LoadMembers added in v1.17.4

func (t *Team) LoadMembers(ctx context.Context) (err error)

LoadMembers returns paginated members in team of organization.

func (*Team) LoadRepositories added in v1.17.4

func (t *Team) LoadRepositories(ctx context.Context) (err error)

LoadRepositories returns paginated repositories in team of organization.

func (*Team) LoadUnits added in v1.19.0

func (t *Team) LoadUnits(ctx context.Context) (err error)

LoadUnits load a list of available units for a team

func (*Team) LogString added in v1.20.0

func (t *Team) LogString() string

func (*Team) UnitAccessMode

func (t *Team) UnitAccessMode(ctx context.Context, tp unit.Type) perm.AccessMode

UnitAccessMode returns if the team has the given unit type enabled

func (*Team) UnitEnabled

func (t *Team) UnitEnabled(ctx context.Context, tp unit.Type) bool

UnitEnabled returns if the team has the given unit type enabled

type TeamInvite added in v1.17.4

type TeamInvite struct {
	ID          int64              `xorm:"pk autoincr"`
	Token       string             `xorm:"UNIQUE(token) INDEX NOT NULL DEFAULT ''"`
	InviterID   int64              `xorm:"NOT NULL DEFAULT 0"`
	OrgID       int64              `xorm:"INDEX NOT NULL DEFAULT 0"`
	TeamID      int64              `xorm:"UNIQUE(team_mail) INDEX NOT NULL DEFAULT 0"`
	Email       string             `xorm:"UNIQUE(team_mail) NOT NULL DEFAULT ''"`
	CreatedUnix timeutil.TimeStamp `xorm:"INDEX created"`
	UpdatedUnix timeutil.TimeStamp `xorm:"INDEX updated"`
}

TeamInvite represents an invite to a team

func CreateTeamInvite added in v1.17.4

func CreateTeamInvite(ctx context.Context, doer *user_model.User, team *Team, email string) (*TeamInvite, error)

func GetInviteByToken added in v1.17.4

func GetInviteByToken(ctx context.Context, token string) (*TeamInvite, error)

func GetInvitesByTeamID added in v1.17.4

func GetInvitesByTeamID(ctx context.Context, teamID int64) ([]*TeamInvite, error)

type TeamList added in v1.19.0

type TeamList []*Team

func GetRepoTeams

func GetRepoTeams(ctx context.Context, repo *repo_model.Repository) (teams TeamList, err error)

GetRepoTeams gets the list of teams that has access to the repository

func GetUserOrgTeams

func GetUserOrgTeams(ctx context.Context, orgID, userID int64) (teams TeamList, err error)

GetUserOrgTeams returns all teams that user belongs to in given organization.

func GetUserRepoTeams

func GetUserRepoTeams(ctx context.Context, orgID, userID, repoID int64) (teams TeamList, err error)

GetUserRepoTeams returns user repo's teams

func SearchTeam

func SearchTeam(ctx context.Context, opts *SearchTeamOptions) (TeamList, int64, error)

SearchTeam search for teams. Caller is responsible to check permissions.

func (TeamList) LoadUnits added in v1.19.0

func (t TeamList) LoadUnits(ctx context.Context) error

func (TeamList) UnitMaxAccess added in v1.19.0

func (t TeamList) UnitMaxAccess(tp unit.Type) perm.AccessMode

type TeamRepo

type TeamRepo struct {
	ID     int64 `xorm:"pk autoincr"`
	OrgID  int64 `xorm:"INDEX"`
	TeamID int64 `xorm:"UNIQUE(s)"`
	RepoID int64 `xorm:"UNIQUE(s)"`
}

TeamRepo represents an team-repository relation.

type TeamUnit

type TeamUnit struct {
	ID         int64     `xorm:"pk autoincr"`
	OrgID      int64     `xorm:"INDEX"`
	TeamID     int64     `xorm:"UNIQUE(s)"`
	Type       unit.Type `xorm:"UNIQUE(s)"`
	AccessMode perm.AccessMode
}

TeamUnit describes all units of a repository

func (*TeamUnit) Unit

func (t *TeamUnit) Unit() unit.Unit

Unit returns Unit

type TeamUser

type TeamUser struct {
	ID     int64 `xorm:"pk autoincr"`
	OrgID  int64 `xorm:"INDEX"`
	TeamID int64 `xorm:"UNIQUE(s)"`
	UID    int64 `xorm:"UNIQUE(s)"`
}

TeamUser represents an team-user relation.

func GetTeamUsersByTeamID

func GetTeamUsersByTeamID(ctx context.Context, teamID int64) ([]*TeamUser, error)

GetTeamUsersByTeamID returns team users for a team

Jump to

Keyboard shortcuts

? : This menu
/ : Search site
f or F : Jump to
y or Y : Canonical URL