示例#1
0
 public frmFindSource(ref OCL.Oyster OSystem, ref OCL.User AccessingUser,bool EditingSystem)
 {
     //
     // Required for Windows Form Designer support
     //
     InitializeComponent();
     this.OSystem = OSystem;
     this.AccessingUser = AccessingUser;
     this.EditingSystem = EditingSystem;
 }
示例#2
0
 public frmLogin(ref OCL.Oyster OSystem)
 {
     //
     // Required for Windows Form Designer support
     //
     InitializeComponent();
     m_oyster = OSystem;
     //
     // TODO: Add any constructor code after InitializeComponent call
     //
 }
示例#3
0
        public frmFindSource(ArrayList ExcludingSources,ref OCL.Oyster OSystem, ref OCL.User AccessingUser)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this.OSystem = OSystem;
            this.AccessingUser = AccessingUser;
            this.ExcludingSources = ExcludingSources;
        }
示例#4
0
 public OCLWriter2(string ApplicationName, string ApplicationVersion, int UserId,ref OCL.Oyster OSystem)
 {
     this.ApplicationName = ApplicationName;
     this.UserId = UserId;
     this.OSystem = OSystem;
     OSVersion = System.Environment.OSVersion.ToString();
     MachineName = System.Environment.MachineName;
     MachineIPAddress = System.Net.Dns.Resolve(Environment.MachineName).AddressList[0].ToString();
     UserName = System.Environment.UserDomainName + "\\" + System.Environment.UserName;
     this.ApplicationVersion = ApplicationVersion;
 }
示例#5
0
        public frmFindControl(ArrayList ExcludingControls,OCL.Scene CurrentScene,ref OCL.Oyster OSystem, ref OCL.User AccessingUser)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this.OSystem = OSystem;
            this.AccessingUser = AccessingUser;
            this.ExcludingControls = ExcludingControls;
            this.CurrentScene = CurrentScene;
        }
示例#6
0
        public frmUserPermissions(ref OCL.User AccessingUser,ref OCL.Oyster OSystem)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            this.AccessingUser = AccessingUser;
            this.OSystem = OSystem;

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }
示例#7
0
        public frmFindGroup(ref OCL.User LUser, ref OCL.Oyster OSystem, OCL.Group SelectedGroup)
        {
            this.LUser = LUser;
            this.OSystem = OSystem;
            this.SelectedGroup = SelectedGroup;
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
        }
示例#8
0
        public frmSessionProperties(OCL.RecordingSession RecordingSession, OCL.User AccessingUser)
        {
            this.RecordingSession = RecordingSession;
            this.AccessingUser = AccessingUser;

            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
            //m_Editing = false;
        }
示例#9
0
 public frmNote(OCL.User AccessingUser,OCL.RecordingSession RS,OCL.Note CN)
 {
     this.AccessingUser = AccessingUser;
     this.RS = RS;
     this.CN = CN;
     //
     // Required for Windows Form Designer support
     //
     InitializeComponent();
     NewFiles = new ArrayList();
     DeletedFiles = new ArrayList();
     //
     // TODO: Add any constructor code after InitializeComponent call
     //
 }
示例#10
0
        public frmCreateScene(ref OCL.Oyster OSystem, ref OCL.User AccessingUser,OCL.Scene CurrentScene)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
            this.OSystem = OSystem;
            this.AccessingUser = AccessingUser;
            this.CurrentScene = CurrentScene;

            this.Text = CarverLab.Utility.AppInfo.Title + ": Edit Scene Dialog: Editing " + CurrentScene.Description;
        }
示例#11
0
 public frmNote(OCL.User AccessingUser,OCL.RecordingSession RS,OCL.Note CN)
 {
     this.AccessingUser = AccessingUser;
     this.RS = RS;
     this.CN = CN;
     //
     // Required for Windows Form Designer support
     //
     InitializeComponent();
     NewFiles = new ArrayList();
     DeletedFiles = new ArrayList();
     OysterFTP = new OCL.FTPTransfer();
     OysterFTP.On_TransferProgress +=new OCL.FTPTransfer.FTPTransferEventHandler(OysterFTP_On_TransferProgress);
     //
     // TODO: Add any constructor code after InitializeComponent call
     //
 }
        public frmRecordingSessionPermissions(ref OCL.Group G,ref OCL.RecordingSession RS)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
            this.RS = RS;
            this.G = G;

            this.Text = G.Description + "'s " + RS.Description + " Permissions";
            this.groupBox1.Text = "Modify User's access to " + RS.Description + " in group " +
                G.Description;
            this.gbRecordingSessions.Text = "Current permissions for " + RS.Description;
        }
示例#13
0
        public frmScenePermissions(ref OCL.Oyster OSystem, ref OCL.User AccessingUser,OCL.Group G,OCL.Scene S)
        {
            //
            // Required for Windows Form Designer support
            //
            InitializeComponent();

            //
            // TODO: Add any constructor code after InitializeComponent call
            //
            this.OSystem = OSystem;
            this.AccessingUser = AccessingUser;

            this.CurrentScene = S;
            this.CurrentGroup = G;

            this.Text = G.Description + "'s " + S.Description + " Permissions";
            this.groupBox1.Text = "Modify User's access to " + S.Description + " in group " +
            G.Description;
            this.gbScenes.Text = "Current permissions for " + S.Description;
        }
示例#14
0
        /// <summary>
        /// Unlocks Container under cursor
        /// </summary>
        public static void Unlock()
        {
            GameObject underCursor = GameCursor.GenericUnderCursor;
            OCL        container   = underCursor.GetComponent <OCL>();

            List <GameObject>        partyMembers = PartyMemberAI.GetSelectedPartyMembers();
            IEnumerator <GameObject> enumerator   = partyMembers.GetEnumerator();

            try
            {
                enumerator.MoveNext();
                if (container)
                {
                    container.Unlock(enumerator.Current);
                }
            }
            finally
            {
                if (enumerator == null)
                {
                }
                enumerator.Dispose();
            }
        }
示例#15
0
        internal bool IsSessionVisible(OCL.User AccessingUser, int SessionID)
        {
            string sSQL = "";

            if(AccessingUser.mvarIsSuperUser)
            {
                return true;
            }
            else
            {
                sSQL = "SELECT DISTINCT tblGroupTokens.ObjectId FROM tblGroupTokens LEFT OUTER JOIN tblSession ON tblGroupTokens.ObjectId = tblSession.Id WHERE UserId = " + AccessingUser.ID +
                    " AND tblGroupTokens.ObjectTypeId = 7" +
                    " AND tblGroupTokens.IsVisible <> 0" +
                    " AND tblSession.IsDefault = 0" +
                    " AND tblSession.Id = " + SessionID;
            }

            System.Data.DataSet DS = null;
            try
            {
                DS = RF.GetDataSet(sSQL);
            }
            catch(SqlException Err)
            {
                throw new Exception(Err.Message,Err.InnerException);
            }
            if(DS.Tables[0].Rows.Count > 0)
            {
                return true;
            }
            return false;
        }
示例#16
0
 public PlayerOptions(string DefaultOysterAddress,int DefaultOysterConnectionPort,int DefaultOysterFilePort, string DefaultOysterDeviceID,string OysterDeviceFriendlyName, bool ManualConfiguration,OCL.OysterRecordingSessionSearchType DefaultSearchType, string DefaultBeginDate, string DefaultEndDate)
 {
     ClassInit(DefaultOysterAddress,DefaultOysterConnectionPort,DefaultOysterFilePort,DefaultOysterDeviceID,OysterDeviceFriendlyName,ManualConfiguration,DefaultSearchType,DefaultBeginDate,DefaultEndDate);
 }
示例#17
0
        void RegistryInit(string DefaultOysterAddress,int DefaultOysterConnectionPort, int DefaultOysterFilePort,string DefaultOysterDeviceID,string OysterDeviceFriendlyName, bool ManualConfiguration,
			OCL.OysterRecordingSessionSearchType DefaultSearchType, string DefaultBeginDate, string DefaultEndDate)
        {
            m_sDefaultOysterAddress = (string)
                m_RegKey.GetValue("DefaultOysterAddress",DefaultOysterAddress);
            m_iDefaultOysterConnectionPort = (int)
                m_RegKey.GetValue("DefaultOysterConnectionPort",DefaultOysterConnectionPort);
            m_iDefaultOysterFilePort = (int)
                m_RegKey.GetValue("DefaultOysterFilePort",DefaultOysterFilePort);
            m_sDefaultOysterDeviceID = (string)
                m_RegKey.GetValue("DefaultOysterDeviceID",DefaultOysterDeviceID);
            m_sOysterDeviceFriendlyName = (string)
                m_RegKey.GetValue("OysterDeviceFriendlyName",OysterDeviceFriendlyName);
            m_iDefaultSearchType = (OCL.OysterRecordingSessionSearchType)
                Convert.ToInt32(m_RegKey.GetValue("DefaultSearchType",Convert.ToInt32(DefaultSearchType)));
            m_sDefaultBeginDate = (string)
                m_RegKey.GetValue("DefaultBeginDate",DefaultBeginDate);
            m_sDefaultEndDate = (string)
                m_RegKey.GetValue("DefaultEndDate",DefaultEndDate);
            m_bManualConfiguration = bool.Parse((string)m_RegKey.GetValue("ManualConfiguration",ManualConfiguration.ToString()));
            m_bHasBeenSaved = bool.Parse((string)m_RegKey.GetValue("HasBeenSaved",false.ToString()));
            m_bDebugMode = bool.Parse((string)m_RegKey.GetValue("Debug",false.ToString()));
        }
示例#18
0
 void ClassInit(string DefaultOysterAddress,int DefaultOysterConnectionPort,int DefaultOysterFilePort,string DefaultOysterDeviceID,string OysterDeviceFriendlyName, bool ManualConfiguration,OCL.OysterRecordingSessionSearchType DefaultSearchType, string DefaultBeginDate, string DefaultEndDate)
 {
     //			System.Reflection.AssemblyTitleAttribute ata = (System.Reflection.AssemblyTitleAttribute)
     //				System.Attribute.GetCustomAttribute(System.Reflection.Assembly.GetAssembly(typeof(DesktopRecorder.PlayerOptions)),
     //				typeof(System.Reflection.AssemblyTitleAttribute));
     m_RegKey = Microsoft.Win32.Registry.CurrentUser.CreateSubKey(
         @"SOFTWARE\Carver Lab\Oyster\" + CarverLabUtility.AppInfo.Title);
     if (m_RegKey == null)
     {
         throw new System.ApplicationException("Could not open Carver Lab registry key.");
     }
     RegistryInit(DefaultOysterAddress,DefaultOysterConnectionPort,DefaultOysterFilePort,DefaultOysterDeviceID,OysterDeviceFriendlyName,ManualConfiguration,DefaultSearchType,DefaultBeginDate,DefaultEndDate);
 }
示例#19
0
        internal bool PropagatePermissionsOfObjectType(OCL.Group CurrentGroup,OCL.User CurrentUser, OCL.OysterObjectType ObjectType,
			bool IsVisible, bool CanAdd, bool CanEdit, bool CanDelete, bool IsUsable,
			bool CanEditPermissions,bool CanSeePermissions,
			bool CanAddObjectA,bool CanEditObjectA,bool CanDeleteObjectA,
			bool CanAddObjectB,bool CanEditObjectB,bool CanDeleteObjectB,
			int AddedByUserId)
        {
            //UPDATE EXISTING VALUES WITH AN UPDATE STATEMENT
                string sSQL = "UPDATE tblGroupTokens SET IsVisible = " + Convert.ToInt32(IsVisible) +
                    ", CanAdd = " + Convert.ToInt32(CanAdd) +
                    ", CanEdit = " + Convert.ToInt32(CanEdit) +
                    ", CanDelete = " + Convert.ToInt32(CanDelete) +
                    ", IsUsable = " + Convert.ToInt32(IsUsable) +
                    ", CanEditPermissions = " + Convert.ToInt32(CanEditPermissions) +
                    ", CanSeePermissions = " + Convert.ToInt32(CanSeePermissions) +
                    ", CanAddObjectA = " + Convert.ToInt32(CanAddObjectA) +
                    ", CanEditObjectA = " + Convert.ToInt32(CanEditObjectA) +
                    ", CanDeleteObjectA = " + Convert.ToInt32(CanDeleteObjectA) +
                    ", CanAddObjectB = " + Convert.ToInt32(CanAddObjectB) +
                    ", CanEditObjectB = " + Convert.ToInt32(CanEditObjectB) +
                    ", CanDeleteObjectB = " + Convert.ToInt32(CanDeleteObjectB) +
                    " WHERE GroupId = " + CurrentGroup.ID +
                    " AND UserId = " +  CurrentUser.ID +
                    " AND ObjectTypeId = " + Convert.ToInt32(ObjectType);

            int numrecs = 0;
            try
            {
                numrecs = RF.ExecuteCommandNonQuery(sSQL);
            }
            catch(System.Data.SqlClient.SqlException Err)
            {
                throw new Exception(Err.Message);
            }
            if(numrecs > 0)
                return true;
            else
                return false;
        }
示例#20
0
        /// <summary>
        /// Updates an Object within a supplied Group
        /// Object must be an object that is recognized by OysterObjectType values;
        /// </summary>
        /// <param name="AccessingUser"></param>
        /// <param name="Obj"></param>
        /// <param name="CurrentGroup"></param>
        /// <param name="UpdatedValues"></param>
        /// <returns>Returns true if success otherwise false means access denied</returns>
        internal bool UpdateObjectInGroup(OCL.User AccessingUser, object Obj, OCL.Group CurrentGroup, OCL.Permission UpdatedValues)
        {
            OCL.User DefaultUser = (OCL.User)GetUnassignedObject(OCL.OysterUnassignedObjects.User);
            OCL.OysterObjectType OBT = OCL.OysterObjectType.None;
            int ObjectTypeId = 0;
            int ObjectId = 0;
            string sType = "Unknown Type";
            if(Obj is OCL.User)
            {
                if(!CurrentGroup.CanEditUserPermissions(AccessingUser))
                    return false;
                sType = "User";
                OCL.User U = (OCL.User)Obj;
                ObjectTypeId = (int)U.ObjectType;
                ObjectId = U.ID;
                OBT = OCL.OysterObjectType.User;
            }
            else if(Obj is OCL.Recording)
            {
                if(!CurrentGroup.CanEditRecordingPermissions(AccessingUser))
                    return false;
                sType = "Recording";
                OCL.Recording R = (OCL.Recording)Obj;
                ObjectTypeId = (int)R.ObjectType;
                ObjectId = R.ID;
                OBT = OCL.OysterObjectType.Recording;

            }
            else if(Obj is OCL.Source)
            {
                if(!CurrentGroup.CanEditSourcePermissions(AccessingUser))
                    return false;
                sType = "Source";
                OCL.Source S = (OCL.Source)Obj;
                ObjectTypeId = (int)S.ObjectType;
                ObjectId = S.ID;
                OBT = OCL.OysterObjectType.Source;

            }
            else if(Obj is OCL.Control)
            {
                if(!CurrentGroup.CanEditControlPermissions(AccessingUser))
                    return false;
                sType = "Control";
                OCL.Control C = (OCL.Control)Obj;
                ObjectTypeId = (int)C.ObjectType;
                ObjectId = C.ID;
                OBT = OCL.OysterObjectType.Control;

            }
            else if(Obj is OCL.Scene)
            {
                if(!CurrentGroup.CanEditScenePermissions(AccessingUser))
                    return false;
                sType = "Scene";
                OCL.Scene S = (OCL.Scene)Obj;
                ObjectTypeId = (int)S.ObjectType;
                ObjectId = S.ID;
                OBT = OCL.OysterObjectType.Scene;

            }
            else if(Obj is OCL.Note)
            {
                if(!CurrentGroup.CanEditNotePermissions(AccessingUser))
                    return false;
                sType = "Note";
                OCL.Note N = (OCL.Note)Obj;
                ObjectTypeId = (int)N.ObjectType;
                ObjectId = N.ID;
                OBT = OCL.OysterObjectType.Note;
            }
            else if(Obj is OCL.RecordingSession)
            {
                if(!CurrentGroup.CanEditRecordingSessionPermissions(AccessingUser))
                    return false;
                sType = "RecordingSession";
                OCL.RecordingSession RS = (OCL.RecordingSession)Obj;
                ObjectTypeId = (int)RS.ObjectType;
                OBT = RS.ObjectType;
                ObjectId = RS.ID;
            }
            else if(Obj is OCL.Attachment)
            {
                if(!CurrentGroup.CanEditAttachmentPermissions(AccessingUser))
                    return false;
                sType = "Attachment";
                OCL.Attachment A = (OCL.Attachment)Obj;
                ObjectTypeId = (int)A.ObjectType;
                ObjectId = A.ID;
                OBT = A.ObjectType;
            }
            else if(Obj is OCL.Group)
            {
                if(!CurrentGroup.CanEditGroupPermissions(AccessingUser))
                    return false;
                sType = "Group";
                OCL.Group G = (OCL.Group)Obj;
                ObjectTypeId = (int)G.ObjectType;
                ObjectId = G.ID;
                OBT = G.ObjectType;
            }
            else if(Obj is OCL.VideoStorageServer)
            {
                if(!CurrentGroup.CanEditVideoStorageServerPermissions(AccessingUser))
                    return false;
                sType = "VideoStorageServer";
                OCL.VideoStorageServer V = (OCL.VideoStorageServer)Obj;
                ObjectTypeId = (int)V.ObjectType;
                ObjectId = V.ID;
                OBT = V.ObjectType;
            }

            //Check to make sure Object is member of Group
            string sSQL = "SELECT GroupId FROM tblGroupTokens WHERE GroupId = " + CurrentGroup.ID +
                " AND UserId = " + AccessingUser.ID +
                " AND ObjectTypeId = " + ObjectTypeId +
                " AND ObjectId = " + ObjectId;
            int numrecs = RF.ExecuteCommandNonQuery(sSQL);

            if(numrecs < 1)
                throw new Exception( sType + " does not exist in Group");

            return UpdatePermission(CurrentGroup,DefaultUser,OBT,ObjectId,UpdatedValues.mvarIsVisible,
                UpdatedValues.mvarCanAdd, UpdatedValues.mvarCanEdit, UpdatedValues.mvarCanDelete, UpdatedValues.mvarIsUsable,
                UpdatedValues.CanEditPermission,UpdatedValues.CanSeePermission,
                UpdatedValues.CanAddObjectA,UpdatedValues.CanEditObjectA,UpdatedValues.CanDeleteObjectA,
                UpdatedValues.CanAddObjectB,UpdatedValues.CanEditObjectB,UpdatedValues.CanDeleteObjectB,
                Convert.ToInt32(UpdatedValues.mvarAddedByUserId));
        }
示例#21
0
        internal OCL.Attachments SetNoteAttachments(int NotedId, string[] sfile,ref OCL.FTPTransfer FTP)
        {
            OCL.Attachments AS = new Attachments();
            try
            {
                FTP.ConnectToOysterServer(ServerAddress);
                //FT.ConnectToOysterServer("ome-prototype");
            }
            catch(Exception Err)
            {
                throw new Exception(Err.Message);
            }
            System.IO.FileInfo[] FI = new System.IO.FileInfo[sfile.Length];
            int i = 0;
            foreach(string CFile in sfile)
            {
                FI[i] = new System.IO.FileInfo(CFile);
                i++;
            }

            string[] EncodedFileNames = FTP.UploadFile(FI,false,true);
            i = 0;
            foreach(string EFN in EncodedFileNames)
            {
                string sSQL = "INSERT INTO tblAttachments(OriginalName,StoredName,NoteId, FileSize) VALUES(" +
                    " '" + FI[i].Name + "','" + EFN +
                    "'," + NotedId.ToString() +
                    "," + FI[i].Length +
                    "); SELECT IDENT_CURRENT('tblAttachments')";

                int AttachmentID = Convert.ToInt32(RF.ExecuteCommandWithQuery(sSQL));
                OCL.Attachment A = this.GetAttachment(AttachmentID);
                AS.Add(A);
                i++;
            }
            return AS;
        }
示例#22
0
        /// <summary>
        /// Removes the supplied User from the given Group
        /// Also Removes all User's resources from the Group
        /// </summary>
        /// <param name="CurrentUser"></param>
        /// <param name="CurrentGroup"></param>
        internal bool RemoveUserFromGroup(OCL.User AccessingUser,OCL.User CurrentUser, OCL.Group CurrentGroup)
        {
            if(!AccessingUser.mvarIsSuperUser)
                {
                    OCL.Group GlobalGroup = (OCL.Group)GetUnassignedObject(OCL.OysterUnassignedObjects.Group);
                    if(!GlobalGroup.GetDefaultGroupAccessPermission(AccessingUser).CanEdit)
                    {
                        if(!CurrentGroup.GetObjectPermission(AccessingUser,CurrentUser).CanDelete)
                        {
                            return false;
                        }
                    }
                }

                string sSQL = "DELETE FROM tblGroupTokens WHERE UserId = " + CurrentUser.ID +
                    " AND GroupId = " + CurrentGroup.ID;

                try
                {

                    int numrecs = RF.ExecuteCommand(sSQL);

                }
                catch(Exception Err)
                {
                    throw new ApplicationException(Err.Message,Err.InnerException);
                }
                try
                {
                    sSQL = "DELETE FROM tblGroupTokens WHERE GroupId = " + CurrentGroup.ID +
                        " AND AddedByUserId = " + CurrentUser.ID;
                    int numdeleted = RF.ExecuteCommandNonQuery(sSQL);

                }
                catch(Exception Err)
                {
                    throw new ApplicationException(Err.Message);
                }
                sSQL = "DELETE FROM tblGroupTokens WHERE GroupId = " + CurrentGroup.ID +
                              " AND ObjectTypeId = 1 AND ObjectId = " + CurrentUser.ID;
                try
                {
                    int numrecs = RF.ExecuteCommand(sSQL);
                }
                catch(Exception Err)
                {
                    throw new ApplicationException(Err.Message,Err.InnerException);
                }
                return true;
        }
示例#23
0
        /// <summary>
        /// Removes an Oyster Object from the Group
        /// Object must be one of the Oyster Types validated by the OysterObjectType enumeration
        /// </summary>
        /// <param name="AccessingUser"></param>
        /// <param name="OBJ"></param>
        /// <param name="CurrentGroup"></param>
        /// <returns></returns>
        internal bool RemoveObjectFromGroup(OCL.User AccessingUser, object Obj, OCL.Group CurrentGroup)
        {
            if(Obj is OCL.User)
            {
                throw new Exception("Must use the RemoveUser function to Remove a User from a group");
            }

            int ObjectTypeId = 0;
            int ObjectId = 0;

            m_sType = "Unknown Type";

            if(Obj is OCL.User)
            {
                if(!CurrentGroup.CanRemoveUsers(AccessingUser))
                    return false;
                return RemoveUserFromGroup(AccessingUser,(OCL.User)Obj,CurrentGroup);
            }
            else if(Obj is OCL.Recording)
            {
                if(!CurrentGroup.CanRemoveRecordings(AccessingUser))
                    return false;
                m_sType = "Recording";
                OCL.Recording R = (OCL.Recording)Obj;
                ObjectTypeId = (int)R.ObjectType;
                ObjectId = R.ID;
            }
            else if(Obj is OCL.Source)
            {
                if(!CurrentGroup.CanRemoveSources(AccessingUser))
                    return false;
                m_sType = "Source";
                OCL.Source S = (OCL.Source)Obj;
                ObjectTypeId = (int)S.ObjectType;
                ObjectId = S.ID;

            }
            else if(Obj is OCL.Control)
            {
                if(!CurrentGroup.CanRemoveControls(AccessingUser))
                    return false;
                m_sType = "Control";
                OCL.Control C = (OCL.Control)Obj;
                ObjectTypeId = (int)C.ObjectType;
                ObjectId = C.ID;
            }
            else if(Obj is OCL.Scene)
            {
                if(!CurrentGroup.CanRemoveScenes(AccessingUser))
                    return false;
                m_sType = "Scene";
                OCL.Scene S = (OCL.Scene)Obj;
                ObjectTypeId = (int)S.ObjectType;
                ObjectId = S.ID;
            }
            else if(Obj is OCL.Note)
            {
                if(!CurrentGroup.CanRemoveNotes(AccessingUser))
                    return false;
                m_sType = "Note";
                OCL.Note N = (OCL.Note)Obj;
                ObjectTypeId = (int)N.ObjectType;
                ObjectId = N.ID;
            }
            else if(Obj is OCL.RecordingSession)
            {
                if(!CurrentGroup.CanRemoveRecordingSessions(AccessingUser))
                    return false;
                m_sType = "RecordingSession";
                OCL.RecordingSession RS = (OCL.RecordingSession)Obj;
                ObjectTypeId = (int)RS.ObjectType;
                ObjectId = RS.ID;
            }
            else if(Obj is OCL.Attachment)
            {
                if(!CurrentGroup.CanRemoveAttachments(AccessingUser))
                    return false;
                m_sType = "Attachment";
                OCL.Attachment A = (OCL.Attachment)Obj;
                ObjectTypeId = (int)A.ObjectType;
                ObjectId = A.ID;
            }
            else if(Obj is OCL.Group)
            {
                if(!CurrentGroup.CanRemoveGroups(AccessingUser))
                    return false;
                m_sType = "Group";
                OCL.Group G = (OCL.Group)Obj;
                ObjectTypeId = (int)G.ObjectType;
                ObjectId = G.ID;
            }
            else if(Obj is OCL.VideoStorageServer)
            {
                if(!CurrentGroup.CanRemoveVideoStorageServers(AccessingUser))
                    return false;
                m_sType = "VideoStorageServer";
                OCL.VideoStorageServer RS = (OCL.VideoStorageServer)Obj;
                ObjectTypeId = (int)RS.ObjectType;
                ObjectId = RS.ID;
            }
            string sSQL = "DELETE FROM tblGroupTokens WHERE GroupId = " + CurrentGroup.ID +
                " AND ObjectTypeId = " + ObjectTypeId +
                " AND ObjectId = " + ObjectId;

            int numrecs = RF.ExecuteCommandNonQuery(sSQL);

            if(numrecs >0)
                return true;
            else
                return false;
        }
示例#24
0
        internal bool RemoveNote(OCL.User AccessingUser, OCL.Note CurrentNote)
        {
            try
            {

                if(CurrentNote.CanDelete(AccessingUser))
                {
                    //Remove any attached files
                    if(CurrentNote.HasAttachment)
                    {
                        foreach(OCL.Attachment NA in CurrentNote.FileAttachments)
                        {
                            this.RemoveNoteAttachment(CurrentNote.mvarID, NA.ID);
                        }
                    }

                    string sSQL = "DELETE FROM tblNotes WHERE Id = " + CurrentNote.ID;
                    int numrecs = RF.ExecuteCommandNonQuery(sSQL);
                    if(numrecs < 1)
                        throw new Exception("Failed to delete Note " + CurrentNote.ID +
                            " for unknown reason");
                    else
                        return true;
                }
                return false;
            }
            catch(Exception Err)
            {
                throw new ApplicationException(Err.Message);
            }
        }
示例#25
0
        private void RunSearch(OCL.OysterRecordingSessionSearchType RecordingSessionSearchType, string SearchCriteria)
        {
            lvSearchResults.Items.Clear();
            OCL.RecordingSessions ARS = new OCL.RecordingSessions();
            if(SearchCriteria != string.Empty)
            {
                ARS = LUser.AllVisibleRecordingSessions(LUser,RecordingSessionSearchType,SearchCriteria);
            }
            else
            {
                try
                {

                    ARS = LUser.AllVisibleRecordingSessions(LUser);
                }
                catch(Exception Err)
                {
                    MessageBox.Show(Err.Message,"Programmer Error:");
                    return;
                }
            }

            if(ARS.Count == 0)
            {
                lblInformation.Text = "No Recording Sessions found that match this search string";
                lblInformation.ForeColor = Color.Red;
                return;
            }

            foreach(OCL.RecordingSession RS in ARS)
            {
                ListViewItem LVI = lvSearchResults.Items.Add(RS.Description);
                LVI.SubItems.Add(RS.CreatedDate.ToString());
                OCL.User Owner = OSystem.GetUserById(RS.OwnerID);
                LVI.SubItems.Add(Owner.Description);
                LVI.SubItems.Add(RS.IsPresentation.ToString());
                LVI.SubItems.Add(RS.CurrentRecordings(LUser).Count.ToString());
                LVI.Tag = RS;
            }

            lblInformation.Text = "Search Results - Check recording sessions then click Add.";
            lblInformation.ForeColor = Color.Black;
        }
示例#26
0
 public void DownloadSessions(User AccessingUser,string sDestination, bool IncludeAttachments,bool ShowProgress,ref OCL.FTPTransfer FTP)
 {
     Functions F = new Functions();
     F.DownloadRecordingSession(AccessingUser,this,sDestination,IncludeAttachments, ShowProgress, ref FTP);
 }
示例#27
0
        internal bool UpdatePermission(OCL.Group CurrentGroup,OCL.User CurrentUser, OCL.OysterObjectType ObjectType,
			int ObjectId, bool IsVisible, bool CanAdd, bool CanEdit, bool CanDelete, bool IsUsable,
			bool CanEditPermissions,bool CanSeePermissions,
			bool CanAddObjectA,bool CanEditObjectA,bool CanDeleteObjectA,
			bool CanAddObjectB,bool CanEditObjectB,bool CanDeleteObjectB,
			int AddedByUserId)
        {
            string sSQL = "SELECT * FROM tblGroupTokens WHERE GroupId = " + CurrentGroup.ID +
                " AND UserId = " + CurrentUser.ID + " AND ObjectTypeId = " + Convert.ToInt32(ObjectType) +
                " AND ObjectId = " + ObjectId;
            int numrecs = RF.ExecuteQuery(sSQL);

            if(numrecs < 1)
            {
                throw new Exception("Attempted to update a record that does not exist in tblGroupTokens");
            //				return InsertPermission(CurrentGroup,CurrentUser,ObjectType,ObjectId,IsVisible,
            //					CanAdd,CanEdit,CanDelete,IsUsable,AddedByUserId);
            }
            else
            {
                //UPDATE EXISTING VALUES WITH AN UPDATE STATEMENT
                sSQL = "UPDATE tblGroupTokens SET IsVisible = " + Convert.ToInt32(IsVisible) +
                    ", CanAdd = " + Convert.ToInt32(CanAdd) +
                    ", CanEdit = " + Convert.ToInt32(CanEdit) +
                    ", CanDelete = " + Convert.ToInt32(CanDelete) +
                    ", IsUsable = " + Convert.ToInt32(IsUsable) +
                    ", CanEditPermissions = " + Convert.ToInt32(CanEditPermissions) +
                    ", CanSeePermissions = " + Convert.ToInt32(CanSeePermissions) +
                    ", CanAddObjectA = " + Convert.ToInt32(CanAddObjectA) +
                    ", CanEditObjectA = " + Convert.ToInt32(CanEditObjectA) +
                    ", CanDeleteObjectA = " + Convert.ToInt32(CanDeleteObjectA) +
                    ", CanAddObjectB = " + Convert.ToInt32(CanAddObjectB) +
                    ", CanEditObjectB = " + Convert.ToInt32(CanEditObjectB) +
                    ", CanDeleteObjectB = " + Convert.ToInt32(CanDeleteObjectB) +
                    " WHERE GroupId = " + CurrentGroup.ID +
                    " AND UserId = " +  CurrentUser.ID +
                    " AND ObjectTypeId = " + Convert.ToInt32(ObjectType) +
                    " AND ObjectId = " + ObjectId;

            }
            numrecs = 0;
            try
            {
                numrecs = RF.ExecuteCommandNonQuery(sSQL);
            }
            catch(System.Data.SqlClient.SqlException Err)
            {
                throw new Exception(Err.Message);
            }
            if(numrecs > 0)
                return true;
            else
                return false;
        }
示例#28
0
        internal string[] UploadFiles(string[] sourcefiles,bool ShowProgress,bool EncryptFileNames,ref OCL.FTPTransfer FT)
        {
            OCL.Attachments AS = new Attachments();
            try
            {
                FT.ConnectToOysterServer(ServerAddress);
                //FT.ConnectToOysterServer("ome-prototype");
            }
            catch(Exception Err)
            {
                throw new Exception(Err.Message);
            }
            System.IO.FileInfo[] FI = new System.IO.FileInfo[sourcefiles.Length];
            int i = 0;
            foreach(string CFile in sourcefiles)
            {
                FI[i] = new System.IO.FileInfo(CFile);
                i++;
            }
            string[] EncodedFileNames = new string[1];
            try
            {
                EncodedFileNames = FT.UploadFile(FI,ShowProgress,EncryptFileNames);

            }
            catch(Exception Err)
            {
                throw new Exception(Err.Message);
            }
            try
            {
                FT.DisconnectFromOysterServer();
            }
            catch(Exception Err)
            {
                string peekError = Err.Message;
            }

            return EncodedFileNames;
        }
示例#29
0
        /// <summary>
        /// Add User to Group
        /// </summary>
        /// <param name="UserId"></param>
        /// <param name="GroupId"></param>
        /// <returns></returns>
        internal bool AddUser(OCL.User AccessingUser,OCL.User NewUser, OCL.Group CurrentGroup,out string sErrMessage,bool SkipCheck)
        {
            if(!SkipCheck)
                {

                    if(!AccessingUser.mvarIsSuperUser)
                    {

                        OCL.Permission OP = GetPermission(CurrentGroup,AccessingUser,NewUser);
                        if(!OP.CanAdd)
                        {
                            sErrMessage = "AccessingUser does not have permission to add user to group";
                            return false;
                        }
                    }
                }
                sErrMessage = "Failed to add User to Group for Unknown reason.";
                string sSQL = "";
                try
                {
                    //Check to make sure User is not already member of Group
                    sSQL = "SELECT * FROM tblGroupTokens WHERE UserId = " + NewUser.mvarID +
                        " AND GroupId = " + CurrentGroup.mvarID;
                    DataSet DS = RF.GetDataSet(sSQL);
                    if(DS.Tables[0].Rows.Count > 0)
                        return false;

                    /// Acquire the Default User
                    OCL.User DefaultUser = (OCL.User)GetUnassignedObject(OCL.OysterUnassignedObjects.User);

                    //Add this User Token to Default User within this Group
                    OCL.Permission DP = GetPermission(CurrentGroup,DefaultUser,DefaultUser);
                    if(!InsertPermission(CurrentGroup,DefaultUser,OCL.OysterObjectType.User,NewUser.mvarID,DP.IsVisible,
                        DP.CanAdd,DP.CanEdit,DP.CanDelete,DP.IsUsable,
                        DP.CanEditPermission,DP.CanSeePermission,
                        DP.CanAddObjectA,DP.CanEditObjectA,DP.CanDeleteObjectA,
                        DP.CanAddObjectB,DP.CanEditObjectB,DP.CanDeleteObjectB,
                        AccessingUser.mvarID,false))
                    {
                        sErrMessage = "Failed to add NewUser Permissions to DefaultUser... aborting add user";
                        goto Error_CleanUp_And_ThrowException;
                    }

                    #region Add Default Token Access to each Existing User for this New Group User
                            /// Each Existing user's access token will reflect their own personal new user permissions

                    sSQL = "SELECT DISTINCT UserId FROM tblGroupTokens WHERE GroupId = " + CurrentGroup.mvarID +
                        " AND UserId <> " + DefaultUser.mvarID;

                    DataSet DSUsers = RF.GetDataSet(sSQL);
                    foreach(DataRow r in DSUsers.Tables[0].Rows)
                    {
                        //Get Default Permissions for this object
                        int CurrentUserId = Convert.ToInt32(r["UserId"]);
                        OCL.User LocalCurrentUser = GetUser(CurrentUserId);
                        int CurrenObjectTypeId = Convert.ToInt32(OCL.OysterObjectType.User);
                        int DefaultObjectId = DefaultUser.mvarID;
                        sSQL = "SELECT IsDefault,IsVisible, CanAdd, CanEdit, CanDelete, IsUsable,CanEditPermissions,CanSeePermissions, " +
                            "CanAddObjectA,CanEditObjectA,CanDeleteObjectA, " +
                            "CanAddObjectB, CanEditObjectB,CanDeleteObjectB FROM tblGroupTokens" +
                            " WHERE GroupId = " + CurrentGroup.mvarID + " AND UserId = " + CurrentUserId +
                            " AND ObjectTypeId = " + CurrenObjectTypeId + " AND ObjectId = " + DefaultObjectId;

                        DataRow DRPerm = RF.GetDataSet(sSQL).Tables[0].Rows[0];
                        bool IsDefault = Convert.ToBoolean(DRPerm["IsDefault"]);
                        bool IsVisible = Convert.ToBoolean(DRPerm["IsVisible"]);
                        bool CanAdd = Convert.ToBoolean(DRPerm["CanAdd"]);
                        bool CanEdit = Convert.ToBoolean(DRPerm["CanEdit"]);
                        bool CanDelete = Convert.ToBoolean(DRPerm["CanDelete"]);
                        bool IsUsable = Convert.ToBoolean(DRPerm["IsUsable"]);
                        bool CanEditPermission = Convert.ToBoolean(DRPerm["CanEditPermissions"]);
                        bool CanSeePermission = Convert.ToBoolean(DRPerm["CanSeePermissions"]);
                        bool CanAddObjectA = Convert.ToBoolean(DRPerm["CanAddObjectA"]);
                        bool CanEditObjectA = Convert.ToBoolean(DRPerm["CanEditObjectA"]);
                        bool CanDeleteObjectA = Convert.ToBoolean(DRPerm["CanDeleteObjectA"]);
                        bool CanAddObjectB = Convert.ToBoolean(DRPerm["CanAddObjectB"]);
                        bool CanEditObjectB = Convert.ToBoolean(DRPerm["CanEditObjectB"]);
                        bool CanDeleteObjectB = Convert.ToBoolean(DRPerm["CanDeleteObjectB"]);

                        try
                        {
                            if(!InsertPermission(CurrentGroup,LocalCurrentUser,OCL.OysterObjectType.User,NewUser.mvarID,IsVisible,
                                CanAdd,CanEdit,CanDelete,IsUsable,
                                CanEditPermission,CanSeePermission,
                                CanAddObjectA,CanEditObjectA,CanDeleteObjectA,
                                CanAddObjectB, CanEditObjectB,CanDeleteObjectB,AccessingUser.mvarID,false))
                            {
                                sErrMessage = "Failed to add Default User Permissions to New User... aborting add user";
                                goto Error_CleanUp_And_ThrowException;
                            }
                        }
                        catch(Exception Err)
                        {
                            sErrMessage = Err.Message;
                            goto Error_CleanUp_And_ThrowException;
                        }
                    }
                    #endregion

                    #region Give this new group user default token access to all existing objects in Group

                    sSQL = "SELECT ObjectTypeId, ObjectId, IsDefault,IsVisible, CanAdd, CanEdit, CanDelete,IsUsable,CanEditPermissions,CanSeePermissions, " +
                        "CanAddObjectA,CanEditObjectA,CanDeleteObjectA, " +
                        "CanAddObjectB, CanEditObjectB,CanDeleteObjectB FROM tblGroupTokens " +
                           "WHERE GroupId = " + CurrentGroup.ID +
                           " AND UserId = " + DefaultUser.ID;
                    DS = RF.GetDataSet(sSQL);

                    foreach(DataRow r in DS.Tables[0].Rows)
                    {
                        OCL.OysterObjectType OType = GetObjectType((int)r["ObjectTypeId"]);
                        int ObjectId = (int)r["ObjectId"];
                        bool IsDefault = Convert.ToBoolean(r["IsDefault"]);
                        bool IsVisible = Convert.ToBoolean(r["IsVisible"]);
                        bool CanAdd = Convert.ToBoolean(r["CanAdd"]);
                        bool CanEdit = Convert.ToBoolean(r["CanEdit"]);
                        bool CanDelete = Convert.ToBoolean(r["CanDelete"]);
                        bool IsUsable = Convert.ToBoolean(r["IsUsable"]);
                        bool CanEditPermission = Convert.ToBoolean(r["CanEditPermissions"]);
                        bool CanSeePermission = Convert.ToBoolean(r["CanSeePermissions"]);
                        bool CanAddObjectA = Convert.ToBoolean(r["CanAddObjectA"]);
                        bool CanEditObjectA = Convert.ToBoolean(r["CanEditObjectA"]);
                        bool CanDeleteObjectA = Convert.ToBoolean(r["CanDeleteObjectA"]);
                        bool CanAddObjectB = Convert.ToBoolean(r["CanAddObjectB"]);
                        bool CanEditObjectB = Convert.ToBoolean(r["CanEditObjectB"]);
                        bool CanDeleteObjectB = Convert.ToBoolean(r["CanDeleteObjectB"]);
                        try
                        {
                            if(!InsertPermission(CurrentGroup,NewUser,OType,ObjectId,IsVisible,
                                CanAdd,CanEdit,CanDelete,IsUsable,
                                CanEditPermission,CanSeePermission,
                                CanAddObjectA,CanEditObjectA,CanDeleteObjectA,
                                CanAddObjectB, CanEditObjectB,CanDeleteObjectB,AccessingUser.mvarID,IsDefault))
                            {
                                sErrMessage = "Failed to add Default User Permissions to New User... aborting add user";
                                goto Error_CleanUp_And_ThrowException;
                            }
                        }
                        catch(Exception Err)
                        {
                            sErrMessage = Err.Message;
                            goto Error_CleanUp_And_ThrowException;
                        }
                    }
                    #endregion

                    return true;
                }
                catch(Exception Err)
                {
                    sErrMessage = Err.Message;
                    goto Error_CleanUp_And_ThrowException;
                }

                Error_CleanUp_And_ThrowException:{}
                //Do what the label says!
                // Uh... don't do what the label says anymore simply clean up and return false
                // User can check the error message for why the Add failed.
                sSQL = "DELETE FROM tblGroupTokens WHERE GroupId = " + CurrentGroup +
                    " AND UserId = " + NewUser.ID;
                int numbrecs = RF.ExecuteCommandNonQuery(sSQL);
                return false;
                //throw new Exception(sErrMessage);
        }
示例#30
0
        internal OCL.Attachment SetNoteAttachment(int NoteId, string sfile,ref OCL.FTPTransfer FTP)
        {
            //FTPTransfer FT = new FTPTransfer();
            try
            {
                FTP.ConnectToOysterServer(ServerAddress);
                //FT.ConnectToOysterServer("ome-prototype");
            }
            catch(Exception Err)
            {
                throw new Exception(Err.Message);
            }
            System.IO.FileInfo[] AFI = new System.IO.FileInfo[1];
            System.IO.FileInfo FI = new System.IO.FileInfo(sfile);
            AFI[0] = FI;
            string[] EncodedFileName = FTP.UploadFile(AFI,false,true);

            OCL.Note N = GetNote(NoteId);

            string sSQL = "INSERT INTO tblAttachments(OriginalName,StoredName,NoteId,FileSize) VALUES(" +
                " '" + FI.Name + "','" + EncodedFileName[0] +
                "'," + N.ID.ToString() +
                "," + FI.Length +
                "); SELECT IDENT_CURRENT('tblAttachments')";

                int AttachmentID = Convert.ToInt32(RF.ExecuteCommandWithQuery(sSQL));
                return this.GetAttachment(AttachmentID);
                //int numrecs = RF.ExecuteCommand(sSQL);
        }
示例#31
0
        internal bool MarkSessionForDeletion(OCL.User AccessingUser,OCL.RecordingSession RS)
        {
            string sSQL = "";
            int numrecs = 0;
            try
            {
                sSQL = "DELETE FROM tblGroupTokens WHERE " +
                    " ObjectTypeId = " + Convert.ToInt32(OCL.OysterObjectType.RecordingSession) +
                    " AND ObjectId = " + RS.ID;
                numrecs = RF.ExecuteCommandNonQuery(sSQL);

                sSQL = "SELECT tblNotes.Id from tblNotes left outer join tblSession ON " +
                    "tblSession.Id = tblNotes.SessionId WHERE tblSession.Id = " + RS.ID;
                DataSet DS = RF.GetDataSet(sSQL);

                foreach(DataRow R1 in DS.Tables[0].Rows)
                {
                    int NoteID = Convert.ToInt32(R1[0]);
                    sSQL = "DELETE FROM tblGroupTokens Where " +
                        " AND ObjectTypeId = " + Convert.ToInt32(OCL.OysterObjectType.Note)+
                        " AND ObjectId = " + NoteID;
                    numrecs = RF.ExecuteCommandNonQuery(sSQL);

                    sSQL = "SELECT ID from tblAttachments WHERE NoteId = " + NoteID;
                    DataSet DS2 = RF.GetDataSet(sSQL);
                    foreach(DataRow R2 in DS2.Tables[0].Rows)
                    {
                        int AttachmentID = Convert.ToInt32(R2[0]);
                        sSQL = "DELETE FROM tblGroupTokens Where " +
                            " AND ObjectTypeId = " + Convert.ToInt32(OCL.OysterObjectType.Attachment) +
                            " AND ObjectId = " + AttachmentID;
                        numrecs = RF.ExecuteCommandNonQuery(sSQL);
                    }
                }

                sSQL = "UPDATE tblSession SET OwnerId = " +
                    ((OCL.User)this.GetUnassignedObject(OCL.OysterUnassignedObjects.User)).mvarID +
                    ", IsMarkedForDeletion <> 0" +
                    " WHERE ID = " + RS.ID;
                numrecs = RF.ExecuteCommandNonQuery(sSQL);

                if(numrecs > 0)
                    return true;
                else
                    return false;
            }
            catch(Exception Err)
            {
                throw new Exception(Err.Message);
            }
        }