コード例 #1
0
ファイル: Permissions.cs プロジェクト: akoesnan/PraLoup
        public static Permission GetPermissions(Event e, ConnectionType connection)
        {
            var p = new Permission(e);

            if (connection.HasFlag(ConnectionType.Owner))
            {
                p.value |= PermissionEnum.Copy;
                p.value |= PermissionEnum.Delete;
                p.value |= PermissionEnum.Edit;
            }

            switch (e.Privacy)
            {
                // public event can be viewed, shared and accpeted by everyone
                case DataAccess.Enums.Privacy.Public:
                    p.value |= PermissionEnum.View;
                    p.value |= PermissionEnum.Share;
                    p.value |= PermissionEnum.Accept;
                    break;
                // friend only event can be viewed and accpeted by friends and owner only
                case DataAccess.Enums.Privacy.Friends:
                    if (connection.HasFlag(ConnectionType.Friend) || connection.HasFlag(ConnectionType.Owner))
                    {
                        p.value |= PermissionEnum.View;
                        p.value |= PermissionEnum.Accept;
                    }
                    break;
                // friend of friend can view and accept
                case DataAccess.Enums.Privacy.FriendsOfFriend:
                    if (connection.HasFlag(ConnectionType.FriendOfFriend)
                        || connection.HasFlag(ConnectionType.Friend)
                        || connection.HasFlag(ConnectionType.Owner))
                    {
                        p.value |= PermissionEnum.View;
                        p.value |= PermissionEnum.Accept;
                    }
                    break;
                // private means that only the owner can view and and accept
                // Todo: how about people that are invited explicitly?
                case DataAccess.Enums.Privacy.Private:
                    if (connection.HasFlag(ConnectionType.Owner))
                    {
                        p.value |= PermissionEnum.View;
                        p.value |= PermissionEnum.Accept;
                    }
                    break;
            }
            if (p.value != PermissionEnum.EmptyMask)
            {
                p.value |= PermissionEnum.View;
            }
            return p;
        }
コード例 #2
0
ファイル: Permissions.cs プロジェクト: akoesnan/PraLoup
        //public static Permission GetPermissions(InvitationResponse ir, ConnectionType connection)
        //{
        //    var p = new Permission(ir);
        //    if (connection.HasFlag(ConnectionType.Owner)
        //        // connection.HasFlag(ConnectionType.ActivityOwner) -- why do we have activity owner deleting the response for?
        //        )
        //    {
        //        p.value |= PermissionEnum.Delete;
        //    }
        //    return p;
        //}
        public static Permission GetPermissions(PromotionInstance i, ConnectionType connection)
        {
            var p = new Permission(i);

            if (connection.HasFlag(ConnectionType.Owner)
                // connection.HasFlag(ConnectionType.ActivityOwner) -- why do we have activity owner deleting the response for?
                )
            {
                p.value |= PermissionEnum.Delete;
            }

            return p;
        }
コード例 #3
0
ファイル: Permissions.cs プロジェクト: akoesnan/PraLoup
        public static Permission GetPermissions(Promotion promo, ConnectionType connection)
        {
            var p = new Permission(promo);
            if (connection.HasFlag(ConnectionType.Owner))
            {
                p.value |= PermissionEnum.Copy;
                p.value |= PermissionEnum.Delete;
                p.value |= PermissionEnum.Edit;
                p.value |= PermissionEnum.Forward;
            }

            if (connection.HasFlag(ConnectionType.Invited))
            {
                p.value |= PermissionEnum.Accept;
                p.value |= PermissionEnum.View;
                p.value |= PermissionEnum.Copy;
            }

            // for activities, privacy means who can invite people to the activity.
            switch (promo.Event.Privacy)
            {
                case DataAccess.Enums.Privacy.Public:
                    p.value |= PermissionEnum.View;
                    p.value |= PermissionEnum.Share;
                    p.value |= PermissionEnum.Accept;
                    p.value |= PermissionEnum.Forward;
                    break;
                case DataAccess.Enums.Privacy.Friends:
                    if (connection.HasFlag(ConnectionType.Friend) && connection.HasFlag(ConnectionType.Invited))
                    {
                        p.value |= PermissionEnum.Forward;
                    }

                    break;
                case DataAccess.Enums.Privacy.FriendsOfFriend:
                    if ((connection.HasFlag(ConnectionType.FriendOfFriend) && connection.HasFlag(ConnectionType.Invited)))
                    {
                        p.value |= PermissionEnum.Forward;
                    }
                    break;
                case DataAccess.Enums.Privacy.Private:
                    break;
            }
            if (p.value != PermissionEnum.EmptyMask)
            {
                p.value |= PermissionEnum.View;
            }
            return p;
        }