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; }
//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; }
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; }