Exemplo n.º 1
0
        /// <summary>
        /// Returns all TargetUser's recordings that are watchable by the AccessingUser
        /// </summary>
        /// <param name="AccessingUser"></param>
        /// <param name="TargetUser"></param>
        /// <returns>OCL.Recordings</returns>
        internal Recordings GetAllWatchableRecordings(OCL.User AccessingUser, OCL.User TargetUser)
        {
            string sSQL = "";
            bool GetOwned = false;

            if(AccessingUser.mvarIsSuperUser)
            {
                sSQL = "SELECT ID FROM tblRecording WHERE ID <> " +
                    ((OCL.Recording)(GetUnassignedObject(OCL.OysterUnassignedObjects.Recording))).ID +
                    " AND OwnerId = " + TargetUser.ID;
            }
            else
            {
                GetOwned = true;
                sSQL = "SELECT DISTINCT tblGroupTokens.ObjectId FROM tblGroupTokens LEFT OUTER JOIN tblRecording " +
                    "ON tblRecording.OwnerId = tblGroupTokens.UserId WHERE tblGroupTokens.UserId = " + AccessingUser.ID +
                    " AND tblGroupTokens.ObjectTypeId = 2" +
                    " AND tblGroupTokens.IsVisible <> 0" +
                    " AND tblGroupTokens.IsUsable <> 0" +
                    " AND tblGroupTokens.ObjectId <> " + ((OCL.Recording)(GetUnassignedObject(OCL.OysterUnassignedObjects.Recording))).ID +
                    " AND tblRecording.OwnerId = " + TargetUser.ID;
            }
            System.Data.DataSet DS = RF.GetDataSet(sSQL);

            OCL.Recordings AR = new OCL.Recordings();

            foreach(DataRow r in DS.Tables[0].Rows)
            {
                AR.Add(GetRecording(Convert.ToInt32(r[0])));
            }

            if(GetOwned == true)
            {
                sSQL = "SELECT * FROM tblRecording WHERE OwnerId = " + AccessingUser.ID;
                DS = RF.GetDataSet(sSQL);

                foreach(DataRow r in DS.Tables[0].Rows)
                {
                    foreach(OCL.Recording OR in AR)
                    {
                        if(OR.ID == Convert.ToInt32(r[0]))
                            goto skipAdd;
                    }
                    AR.Add(FillRecording(r));
                skipAdd:{}
                }
            }
            return AR;
        }
Exemplo n.º 2
0
        /// <summary>
        /// Returns all TargetGroup's recordings that are watchable to the AccessingUser
        /// </summary>
        /// <param name="AccessingUser"></param>
        /// <param name="TargetUser"></param>
        /// <returns>OCL.Recordings</returns>
        internal Recordings GetAllWatchableRecordings(OCL.User AccessingUser, OCL.Group TargetGroup)
        {
            string sSQL = "";

            if(AccessingUser.mvarIsSuperUser)
            {
                sSQL = "SELECT ObjectId FROM tblGroupTokens WHERE GroupId = " + TargetGroup.ID +
                    " AND ObjectTypeId = 2" +
                    " AND IsVisible <> 0 " +
                    " AND IsUsable <> 0" +
                    " AND ObjectId <> " + ((OCL.Recording)(GetUnassignedObject(OCL.OysterUnassignedObjects.Recording))).ID;
            }
            else
            {

                sSQL = "SELECT ObjectId FROM tblGroupTokens WHERE GroupId = " + TargetGroup.ID +
                    " AND UserId = " + AccessingUser.ID +
                    " AND ObjectTypeId = 2" +
                    " AND IsVisible <> 0" +
                    " AND IsUsable <> 0" +
                    " AND ObjectId <> " + ((OCL.Recording)(GetUnassignedObject(OCL.OysterUnassignedObjects.Recording))).ID;

            }
            System.Data.DataSet DS = RF.GetDataSet(sSQL);
            OCL.Recordings S = new OCL.Recordings();

            if(DS.Tables[0].Rows.Count == 0)
            {
                foreach(DataRow r in DS.Tables[0].Rows)
                {
                    S.Add(GetRecording(Convert.ToInt32(r[0])));
                }
            }
            return S;
        }
Exemplo n.º 3
0
        internal object GetAllGroupObjectsWithPermission(OCL.User AccessingUser,
			OCL.OysterObjectType OBT, OCL.OysterPermissions OP)
        {
            string sSQL = "SELECT DISTINCT ObjectId FROM tblGroupTokens WHERE UserId = " + AccessingUser.ID +
                " AND ObjectTypeId = " + Convert.ToInt32(OBT) +
                " AND " + GetPermissionColumnName(OP) + " = " + Convert.ToInt32(OP);

            DataSet DS = RF.GetDataSet(sSQL);

            if(DS.Tables[0].Rows.Count == 0)
                return null;

            switch(OBT)
            {
                case OCL.OysterObjectType.User:
                    OCL.Users US = new OCL.Users();
                    foreach(DataRow R in DS.Tables[0].Rows)
                    {
                        US.Add(GetUser(Convert.ToInt32(R[0])));
                    }
                    return US;
                case OCL.OysterObjectType.Recording:
                    OCL.Recordings RS = new OCL.Recordings();
                    foreach(DataRow R in DS.Tables[0].Rows)
                    {

                        RS.Add(GetRecording(Convert.ToInt32(R[0])));
                    }
                    return RS;
                case OCL.OysterObjectType.Control:
                    OCL.Controls XS = new OCL.Controls();
                    foreach(DataRow R in DS.Tables[0].Rows)
                    {

                        XS.Add(GetControl(Convert.ToInt32(R[0])));
                    }
                    return XS;
                case OCL.OysterObjectType.Source:
                    OCL.Sources S = new OCL.Sources();
                    foreach(DataRow R in DS.Tables[0].Rows)
                    {
                        S.Add(GetSource(Convert.ToInt32(R[0])));
                    }
                    return S;
                case OCL.OysterObjectType.Scene:
                    OCL.Scenes SS = new OCL.Scenes();
                    foreach(DataRow R in DS.Tables[0].Rows)
                    {
                        SS.Add(GetScene(Convert.ToInt32(R[0])));
                    }
                    return SS;
                case OCL.OysterObjectType.Note:
                    OCL.Notes N = new OCL.Notes();
                    foreach(DataRow R in DS.Tables[0].Rows)
                    {
                        N.Add(GetNote(Convert.ToInt32(R[0])));
                    }
                    return N;
                default:
                    return null;
            }
        }