Esempio n. 1
0
        private static ReadOnlyCollection <DataObjectOperationInfo> GetPossibleOperationsInternal(SECURED_OBJECT_TYPE doType)
        {
            var ops = (IList)DatabaseModel.FIXED_METHOD.MakeGenericMethod(new[] { doType.GetSecurityAtr().OperationsClass }).Invoke(ServerModel.DB, Type.EmptyTypes);
            var res = new List <DataObjectOperationInfo>(ops.Count);

            foreach (IFxDataObject o in ops)
            {
                res.Add(new DataObjectOperationInfo(o.ID, o.Name));
            }
            return(new ReadOnlyCollection <DataObjectOperationInfo>(res));
        }
Esempio n. 2
0
        private static AndCondition GetQueryForObject(SECURED_OBJECT_TYPE objectType, int objectID, int?operationID, DateTime?targetDate)
        {
            var name = objectType.GetSecurityAtr().Name;

            var conds = new IDBPredicate[operationID != null ? 3 : 2];

            conds[0] = new CompareCondition <int>(new PropertyCondition <int>(name + "Ref"), new ValueCondition <int>(objectID), COMPARE_KIND.EQUAL);
            conds[1] = new DateTimeBetweenCondition(new ValueCondition <DateTime>(targetDate ?? DateTime.Now), DataObject.Schema.DateSince, DataObject.Schema.DateTill);
            if (operationID != null)
            {
                conds[2] = new CompareCondition <int>(new PropertyCondition <int>(name + "OperationRef"), new ValueCondition <int>(operationID.Value), COMPARE_KIND.EQUAL);
            }
            return(new AndCondition(conds));
        }
Esempio n. 3
0
        public static IList <int> GetOperationsForObject(SECURED_OBJECT_TYPE objectType, int userID, int?objectID, DateTime?targetDate)
        {
            using (var c = ServerModel.AcruireOpenedConnection())
            {
                using (var cmd = c.CreateCommand())
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    var at = objectType.GetSecurityAtr();
                    cmd.CommandText = at.GetRetrieveOperationsForObjectProcName();
                    cmd.Parameters.Assign(new { UserID = userID, TargetDate = targetDate });
                    cmd.Parameters.AddWithValue(at.Name + "ID", objectID);

                    return(cmd.FullReadInts());
                }
            }
        }
Esempio n. 4
0
        private static IList <int> GetIDsFromPermissionsForGroupInternal(SECURED_OBJECT_TYPE objectType, int groupID, int?operationID, DateTime?targetDate, string columnName)
        {
            using (var c = ServerModel.AcruireOpenedConnection())
            {
                using (var cmd = c.CreateCommand())
                {
                    cmd.CommandType = CommandType.StoredProcedure;
                    var at = objectType.GetSecurityAtr();
                    cmd.CommandText = at.GetRetrievePermissionsForGroupProcName();
                    cmd.Parameters.Assign(new { GroupID = groupID, TargetDate = targetDate });
                    cmd.Parameters.AddWithValue(at.Name + "OperationID", operationID);

                    var r = cmd.FullReadInts(columnName);
                    r.RemoveDuplicates();
                    return(r);
                }
            }
        }
Esempio n. 5
0
 public void SetOperationID(SECURED_OBJECT_TYPE ot, int value)
 {
     GetType().GetProperty(ot.GetSecurityAtr().Name + "OperationRef").SetValue(this, value, null);
 }
Esempio n. 6
0
 public int?GetOperationID(SECURED_OBJECT_TYPE ot)
 {
     return((int?)GetType().GetProperty(ot.GetSecurityAtr().Name + "OperationRef").GetValue(this, null));
 }
Esempio n. 7
0
 public static IList <int> GetObjectsForUser(SECURED_OBJECT_TYPE objectType, int userID, int?operationID, DateTime?targetDate)
 {
     return(GetIDsFromPermissionsInternal(objectType, userID, targetDate, operationID, objectType.GetSecurityAtr().Name + "Ref"));
 }