public static IList <int> GetGroupsForObject(SECURED_OBJECT_TYPE objectType, int objectID, int?operationID, DateTime?targetDate)
        {
            var condtion = GetQueryForObject(objectType, objectID, operationID, targetDate);

            condtion.Append(new IsNotNullCondition <int>(DataObject.Schema.OwnerGroupRef));
            var prms = ServerModel.DB.Query <TblPermissions>(condtion);
            var res  = new List <int>(prms.Select(p => p.OwnerGroupRef.Value));

            res.RemoveDuplicates();
            return(res);
        }
        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));
        }
        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());
                }
            }
        }
        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);
                }
            }
        }
Exemple #5
0
 private static SecuredObjectTypeAttribute GetAttributeInternal(SECURED_OBJECT_TYPE obj)
 {
     return(typeof(SECURED_OBJECT_TYPE).GetField(obj.ToString()).GetAtr <SecuredObjectTypeAttribute>());
 }
Exemple #6
0
 public static SecuredObjectTypeAttribute GetSecurityAtr(this SECURED_OBJECT_TYPE obj)
 {
     return(GetAttribute(obj));
 }
Exemple #7
0
 public void SetOperationID(SECURED_OBJECT_TYPE ot, int value)
 {
     GetType().GetProperty(ot.GetSecurityAtr().Name + "OperationRef").SetValue(this, value, null);
 }
Exemple #8
0
 public int?GetOperationID(SECURED_OBJECT_TYPE ot)
 {
     return((int?)GetType().GetProperty(ot.GetSecurityAtr().Name + "OperationRef").GetValue(this, null));
 }
Exemple #9
0
 private static SecuredObjectTypeAttribute GetAttributeInternal(SECURED_OBJECT_TYPE obj)
 {
     return typeof (SECURED_OBJECT_TYPE).GetField(obj.ToString()).GetAtr<SecuredObjectTypeAttribute>();
 }
 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"));
 }
        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));
        }
 public static IList <int> GetPermissions(SECURED_OBJECT_TYPE type, int userID, DateTime?targetDate, int?operationID)
 {
     return(GetIDsFromPermissionsInternal(type, userID, targetDate, operationID, "ID"));
 }