summaryrefslogtreecommitdiffstats
path: root/models/org.go
diff options
context:
space:
mode:
authorEthan Koenig <ethantkoenig@gmail.com>2017-12-20 23:43:26 -0800
committerLauris BH <lauris@nix.lv>2017-12-21 09:43:26 +0200
commit515cdaa85d6087d91a61ebe74fae39e0c4bdf1c4 (patch)
tree3a7143fc376af4402ca9008876be3afdc0c18efc /models/org.go
parent529482135c8e9304dd7cdf08772eaba61d903894 (diff)
downloadgitea-515cdaa85d6087d91a61ebe74fae39e0c4bdf1c4.tar.gz
gitea-515cdaa85d6087d91a61ebe74fae39e0c4bdf1c4.zip
Fix ignored errors when checking if organization, team member (#3177)
Diffstat (limited to 'models/org.go')
-rw-r--r--models/org.go39
1 files changed, 21 insertions, 18 deletions
diff --git a/models/org.go b/models/org.go
index b349e4c170..a28a8e28e1 100644
--- a/models/org.go
+++ b/models/org.go
@@ -21,13 +21,13 @@ var (
)
// IsOwnedBy returns true if given user is in the owner team.
-func (org *User) IsOwnedBy(uid int64) bool {
+func (org *User) IsOwnedBy(uid int64) (bool, error) {
return IsOrganizationOwner(org.ID, uid)
}
// IsOrgMember returns true if given user is member of organization.
-func (org *User) IsOrgMember(uid int64) bool {
- return org.IsOrganization() && IsOrganizationMember(org.ID, uid)
+func (org *User) IsOrgMember(uid int64) (bool, error) {
+ return IsOrganizationMember(org.ID, uid)
}
func (org *User) getTeam(e Engine, name string) (*Team, error) {
@@ -285,32 +285,32 @@ type OrgUser struct {
}
// IsOrganizationOwner returns true if given user is in the owner team.
-func IsOrganizationOwner(orgID, uid int64) bool {
- has, _ := x.
+func IsOrganizationOwner(orgID, uid int64) (bool, error) {
+ return x.
Where("is_owner=?", true).
And("uid=?", uid).
And("org_id=?", orgID).
- Get(new(OrgUser))
- return has
+ Table("org_user").
+ Exist()
}
// IsOrganizationMember returns true if given user is member of organization.
-func IsOrganizationMember(orgID, uid int64) bool {
- has, _ := x.
+func IsOrganizationMember(orgID, uid int64) (bool, error) {
+ return x.
Where("uid=?", uid).
And("org_id=?", orgID).
- Get(new(OrgUser))
- return has
+ Table("org_user").
+ Exist()
}
// IsPublicMembership returns true if given user public his/her membership.
-func IsPublicMembership(orgID, uid int64) bool {
- has, _ := x.
+func IsPublicMembership(orgID, uid int64) (bool, error) {
+ return x.
Where("uid=?", uid).
And("org_id=?", orgID).
And("is_public=?", true).
- Get(new(OrgUser))
- return has
+ Table("org_user").
+ Exist()
}
func getOrgsByUserID(sess *xorm.Session, userID int64, showAll bool) ([]*User, error) {
@@ -401,8 +401,9 @@ func ChangeOrgUserStatus(orgID, uid int64, public bool) error {
// AddOrgUser adds new user to given organization.
func AddOrgUser(orgID, uid int64) error {
- if IsOrganizationMember(orgID, uid) {
- return nil
+ isAlreadyMember, err := IsOrganizationMember(orgID, uid)
+ if err != nil || isAlreadyMember {
+ return err
}
sess := x.NewSession()
@@ -447,7 +448,9 @@ func RemoveOrgUser(orgID, userID int64) error {
}
// Check if the user to delete is the last member in owner team.
- if IsOrganizationOwner(orgID, userID) {
+ if isOwner, err := IsOrganizationOwner(orgID, userID); err != nil {
+ return err
+ } else if isOwner {
t, err := org.GetOwnerTeam()
if err != nil {
return err