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)); }
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); } } }
public void SetOperationID(SECURED_OBJECT_TYPE ot, int value) { GetType().GetProperty(ot.GetSecurityAtr().Name + "OperationRef").SetValue(this, value, null); }
public int?GetOperationID(SECURED_OBJECT_TYPE ot) { return((int?)GetType().GetProperty(ot.GetSecurityAtr().Name + "OperationRef").GetValue(this, null)); }
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")); }