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); } } }
private static SecuredObjectTypeAttribute GetAttributeInternal(SECURED_OBJECT_TYPE obj) { return(typeof(SECURED_OBJECT_TYPE).GetField(obj.ToString()).GetAtr <SecuredObjectTypeAttribute>()); }
public static SecuredObjectTypeAttribute GetSecurityAtr(this SECURED_OBJECT_TYPE obj) { return(GetAttribute(obj)); }
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)); }
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")); }