public static List <Guid> GetHomepages(Guid iUserID) { List <Guid> lstViewIDs = new List <Guid>(); ADUsersInfo user = new ADUsersController().GetObjectByID(iUserID) as ADUsersInfo; if (user != null && user.FK_ADUserGroupID.HasValue) { ADUserGroupsInfo group = new ADUserGroupsController().GetObjectByID(user.FK_ADUserGroupID.Value) as ADUserGroupsInfo; if (group != null) { String strQuery = String.Format(@"SELECT A.FK_STViewID FROM GEPermissionViews A JOIN ADUserPermissions B ON A.IsHomePage ='TRUE' AND B.FK_GEPermissionID = A.FK_GEPermissionID AND (B.FK_ADUserGroupID ='{0}' OR B.FK_ADUserID ='{1}') ORDER BY B.FK_ADUserID DESC", user.FK_ADUserGroupID.Value, user.ADUserID); DataSet ds = new GEPermissionViewsController().GetDataSet(strQuery); if (ds != null && ds.Tables.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { if (dr[0] != DBNull.Value && !lstViewIDs.Contains(ABCHelper.DataConverter.ConvertToGuid(dr[0].ToString()))) { lstViewIDs.Add(ABCHelper.DataConverter.ConvertToGuid(dr[0].ToString())); } } } } } return(lstViewIDs); }
public static void SynchronizeViewPermission( ) { GEPermissionViewsController permissionCtrl = new GEPermissionViewsController(); String strQuery = String.Format(@"DELETE FROM GEPermissionViews WHERE FK_GEPermissionID NOT IN (SELECT GEPermissionID FROM GEPermissions)"); BusinessObjectController.RunQuery(strQuery); #region Init Views STViewsController viewCtrl = new STViewsController(); Dictionary <Guid, STViewsInfo> lstSTViews = new Dictionary <Guid, STViewsInfo>(); DataSet ds = viewCtrl.GetDataSetAllObjects(); if (ds != null && ds.Tables.Count > 0) { foreach (DataRow dr in ds.Tables[0].Rows) { STViewsInfo viewInfo = viewCtrl.GetObjectFromDataRow(dr) as STViewsInfo; if (lstSTViews.ContainsKey(viewInfo.STViewID) == false) { lstSTViews.Add(viewInfo.STViewID, viewInfo); } } } #endregion foreach (GEPermissionsInfo permission in new GEPermissionsController().GetListAllObjects()) { #region View Dictionary <Guid, GEPermissionViewsInfo> lstGroupViews = new Dictionary <Guid, GEPermissionViewsInfo>(); foreach (GEPermissionViewsInfo viewInfo in permissionCtrl.GetListByForeignKey("FK_GEPermissionID", permission.GEPermissionID).Cast <GEPermissionViewsInfo>().ToList()) { if (viewInfo.FK_STViewID.HasValue && lstGroupViews.ContainsKey(viewInfo.FK_STViewID.Value) == false) { if (lstSTViews.ContainsKey(viewInfo.FK_STViewID.Value)) { lstGroupViews.Add(viewInfo.FK_STViewID.Value, viewInfo); } else { permissionCtrl.DeleteObject(viewInfo); } } } foreach (Guid strViewID in lstSTViews.Keys) { if (lstGroupViews.ContainsKey(strViewID) == false) { GEPermissionViewsInfo viewInfo = new GEPermissionViewsInfo(); viewInfo.FK_STViewID = lstSTViews[strViewID].STViewID; if (lstSTViews[strViewID].FK_STViewGroupID.HasValue) { viewInfo.ViewGroup = GetViewGroupCaption(lstSTViews[strViewID].FK_STViewGroupID.Value); } viewInfo.FK_GEPermissionID = permission.GEPermissionID; viewInfo.AllowView = true; viewInfo.IsHomePage = false; permissionCtrl.CreateObject(viewInfo); lstGroupViews.Add(viewInfo.FK_STViewID.Value, viewInfo); } } #endregion } }