forked from rocboss/paopao-ce
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge pull request rocboss#141 from alimy/pr-search-private
support search private tweet
- Loading branch information
Showing
20 changed files
with
454 additions
and
118 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,117 @@ | ||
package core | ||
|
||
import ( | ||
"github.com/rocboss/paopao-ce/internal/model" | ||
"github.com/rocboss/paopao-ce/pkg/types" | ||
) | ||
|
||
const ( | ||
ActRegisterUser act = iota | ||
ActCreatePublicTweet | ||
ActCreatePublicAttachment | ||
ActCreatePublicPicture | ||
ActCreatePublicVideo | ||
ActCreatePrivateTweet | ||
ActCreatePrivateAttachment | ||
ActCreatePrivatePicture | ||
ActCreatePrivateVideo | ||
ActCreateFriendTweet | ||
ActCreateFriendAttachment | ||
ActCreateFriendPicture | ||
ActCreateFriendVideo | ||
ActCreatePublicComment | ||
ActCreatePublicPicureComment | ||
ActCreateFriendComment | ||
ActCreateFriendPicureComment | ||
ActCreatePrivateComment | ||
ActCreatePrivatePicureComment | ||
ActStickTweet | ||
ActTopTweet | ||
ActLockTweet | ||
ActVisibleTweet | ||
ActDeleteTweet | ||
ActCreateActivationCode | ||
) | ||
|
||
type act uint8 | ||
|
||
type FriendFilter map[int64]types.Empty | ||
|
||
type Action struct { | ||
Act act | ||
UserId int64 | ||
} | ||
|
||
type AuthorizationManageService interface { | ||
IsAllow(user *model.User, action *Action) bool | ||
GetFriendFilter(userId int64) FriendFilter | ||
GetFriendIds(userId int64) []int64 | ||
} | ||
|
||
func (f FriendFilter) IsFriend(userId int64) bool { | ||
// _, yesno := f[userId] | ||
// return yesno | ||
// so, you are friend with all world now | ||
return true | ||
} | ||
|
||
// IsAllow default true if user is admin | ||
func (a act) IsAllow(user *model.User, userId int64, isFriend bool, isActivation bool) bool { | ||
if user.IsAdmin { | ||
return true | ||
} | ||
if user.ID == userId && isActivation { | ||
switch a { | ||
case ActCreatePublicTweet, | ||
ActCreatePublicAttachment, | ||
ActCreatePublicPicture, | ||
ActCreatePublicVideo, | ||
ActCreatePrivateTweet, | ||
ActCreatePrivateAttachment, | ||
ActCreatePrivatePicture, | ||
ActCreatePrivateVideo, | ||
ActCreateFriendTweet, | ||
ActCreateFriendAttachment, | ||
ActCreateFriendPicture, | ||
ActCreateFriendVideo, | ||
ActCreatePrivateComment, | ||
ActCreatePrivatePicureComment, | ||
ActStickTweet, | ||
ActLockTweet, | ||
ActVisibleTweet, | ||
ActDeleteTweet: | ||
return true | ||
} | ||
} | ||
|
||
if user.ID == userId && !isActivation { | ||
switch a { | ||
case ActCreatePrivateTweet, | ||
ActCreatePrivateComment, | ||
ActStickTweet, | ||
ActLockTweet, | ||
ActDeleteTweet: | ||
return true | ||
} | ||
} | ||
|
||
if isFriend && isActivation { | ||
switch a { | ||
case ActCreatePublicComment, | ||
ActCreatePublicPicureComment, | ||
ActCreateFriendComment, | ||
ActCreateFriendPicureComment: | ||
return true | ||
} | ||
} | ||
|
||
if !isFriend && isActivation { | ||
switch a { | ||
case ActCreatePublicComment, | ||
ActCreatePublicPicureComment: | ||
return true | ||
} | ||
} | ||
|
||
return false | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,37 @@ | ||
package dao | ||
|
||
import ( | ||
"github.com/rocboss/paopao-ce/internal/conf" | ||
"github.com/rocboss/paopao-ce/internal/core" | ||
"github.com/rocboss/paopao-ce/internal/model" | ||
) | ||
|
||
func newSimpleAuthorizationManageService() *simpleAuthorizationManageService { | ||
return &simpleAuthorizationManageService{ | ||
db: conf.DBEngine, | ||
} | ||
} | ||
|
||
func (s *simpleAuthorizationManageService) IsAllow(user *model.User, action *core.Action) bool { | ||
// user is activation if had bind phone | ||
isActivation := (len(user.Phone) != 0) | ||
isFriend := s.isFriend(action.UserId) | ||
// TODO: just use defaut act authorization chek rule now | ||
return action.Act.IsAllow(user, action.UserId, isFriend, isActivation) | ||
} | ||
|
||
// GetFriendFilter _userId保留未来使用 | ||
func (s *simpleAuthorizationManageService) GetFriendFilter(_userId int64) core.FriendFilter { | ||
// TODO: just return an empty friend fileter now | ||
return core.FriendFilter{} | ||
} | ||
|
||
func (s *simpleAuthorizationManageService) GetFriendIds(_userId int64) []int64 { | ||
// TODO: just retrun empty now | ||
return nil | ||
} | ||
|
||
func (s *simpleAuthorizationManageService) isFriend(_userId int64) bool { | ||
// friend with all world now | ||
return true | ||
} |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.