本文整理汇总了C#中SobekCM.Library.Users.User_Object.Can_Edit_This_Item方法的典型用法代码示例。如果您正苦于以下问题:C# User_Object.Can_Edit_This_Item方法的具体用法?C# User_Object.Can_Edit_This_Item怎么用?C# User_Object.Can_Edit_This_Item使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类SobekCM.Library.Users.User_Object
的用法示例。
在下文中一共展示了User_Object.Can_Edit_This_Item方法的3个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: ManageMenu_ItemViewer
/// <summary> Constructor for a new instance of the ManageMenu_ItemViewer class </summary>
/// <param name="Current_Object"> Digital resource to display </param>
/// <param name="Current_User"> Current user for this session </param>
/// <param name="Current_Mode"> Navigation object which encapsulates the user's current request </param>
public ManageMenu_ItemViewer(SobekCM_Item Current_Object, User_Object Current_User, SobekCM_Navigation_Object Current_Mode)
{
// Save the current user and current mode information (this is usually populated AFTER the constructor completes,
// but in this case (QC viewer) we need the information for early processing
CurrentMode = Current_Mode;
CurrentUser = Current_User;
CurrentItem = Current_Object;
// Determine if this user can edit this item
if (CurrentUser == null)
{
Current_Mode.ViewerCode = String.Empty;
Current_Mode.Redirect();
return;
}
else
{
bool userCanEditItem = CurrentUser.Can_Edit_This_Item(CurrentItem);
if (!userCanEditItem)
{
Current_Mode.ViewerCode = String.Empty;
Current_Mode.Redirect();
return;
}
}
}
示例2: Item_HtmlSubwriter
/// <summary> Constructor for a new instance of the Item_HtmlSubwriter class </summary>
/// <param name="Current_Item">Current item to display </param>
/// <param name="Current_Page"> Current page within the item</param>
/// <param name="Current_User"> Currently logged on user for determining rights over this item </param>
/// <param name="Code_Manager"> List of valid collection codes, including mapping from the Sobek collections to Greenstone collections</param>
/// <param name="Translator"> Language support object which handles simple translational duties </param>
/// <param name="ShowToc"> Flag indicates whether to show the table of contents open for this item </param>
/// <param name="Show_Zoomable"> Flag indicates if the zoomable server is available </param>
/// <param name="Current_Mode"> Mode / navigation information for the current request</param>
/// <param name="Current_Collection"> Current item aggregation this item is being displayed from (if there is one) </param>
/// <param name="Item_Restricted_Message"> Message to be shown because this item is restriced from the current user by IP address </param>
/// <param name="Items_In_Title"> List of items within a title (for item group display in particular) </param>
/// <param name="Tracer"> Trace object keeps a list of each method executed and important milestones in rendering </param>
public Item_HtmlSubwriter(SobekCM_Item Current_Item, Page_TreeNode Current_Page, User_Object Current_User,
Aggregation_Code_Manager Code_Manager,
Language_Support_Info Translator, bool ShowToc, bool Show_Zoomable,
SobekCM_Navigation_Object Current_Mode,
Item_Aggregation Current_Collection,
string Item_Restricted_Message,
SobekCM_Items_In_Title Items_In_Title,
Custom_Tracer Tracer )
{
Mode = Current_Mode;
currentUser = Current_User;
currentItem = Current_Item;
currentPage = Current_Page;
itemsInTitle = Items_In_Title;
translations = Translator;
showToc = ShowToc;
showZoomable = Show_Zoomable;
Current_Aggregation = Current_Collection;
itemCheckedOutByOtherUser = false;
userCanEditItem = false;
searchResultsCount = 0;
// Determine if this item is an EAD
isEadTypeItem = (currentItem.Get_Metadata_Module(GlobalVar.EAD_METADATA_MODULE_KEY) != null);
// Determine if this item is actually restricted
itemRestrictedFromUserByIp = Item_Restricted_Message.Length > 0;
// Determine if this user can edit this item
if (currentUser != null)
{
userCanEditItem = currentUser.Can_Edit_This_Item(currentItem);
}
// If this item is restricted by IP than alot of the upcoming code is unnecessary
if (( currentUser != null ) && ((!itemRestrictedFromUserByIp) || ( userCanEditItem ) || ( currentUser.Is_Internal_User )))
{
#region Region suppressed currently - was for adding feature to a map image?
//// Searching for EAD/EAC type items is different from others
//if (!isEadTypeItem)
//{
// // If there is a coordinate search, and polygons, do that
// // GEt the geospatial metadata module
// GeoSpatial_Information geoInfo = currentItem.Get_Metadata_Module(GlobalVar.GEOSPATIAL_METADATA_MODULE_KEY) as GeoSpatial_Information;
// if ((geoInfo != null) && (geoInfo.hasData))
// {
// if ((currentMode.Coordinates.Length > 0) && (geoInfo.Polygon_Count > 1))
// {
// // Determine the coordinates in this search
// string[] splitter = currentMode.Coordinates.Split(",".ToCharArray());
// if (((splitter.Length > 1) && (splitter.Length < 4)) || ((splitter.Length == 4) && (splitter[2].Length == 0) && (splitter[3].Length == 0)))
// {
// Double.TryParse(splitter[0], out providedMaxLat);
// Double.TryParse(splitter[1], out providedMaxLong);
// providedMinLat = providedMaxLat;
// providedMinLong = providedMaxLong;
// }
// else if (splitter.Length >= 4)
// {
// Double.TryParse(splitter[0], out providedMaxLat);
// Double.TryParse(splitter[1], out providedMaxLong);
// Double.TryParse(splitter[2], out providedMinLat);
// Double.TryParse(splitter[3], out providedMinLong);
// }
// // Now, if there is length, determine the count of results
// searchResultsString = new List<string>();
// if (searchResultsString.Count > 0)
// {
// searchResultsCount = searchResultsString.Count;
// // Also, look to see where the current point lies in the matching, current polygon
// if ((providedMaxLong == providedMinLong) && (providedMaxLat == providedMinLat))
// {
// foreach (Coordinate_Polygon itemPolygon in geoInfo.Polygons)
// {
// // Is this the current page?
// if (itemPolygon.Page_Sequence == currentMode.Page)
// {
// if (itemPolygon.is_In_Bounding_Box(providedMaxLat, providedMaxLong))
// {
// searchMatchOnThisPage = true;
// ReadOnlyCollection<Coordinate_Point> boundingBox = itemPolygon.Bounding_Box;
// featureYRatioLocation = Math.Abs(((providedMaxLat - boundingBox[0].Latitude)/(boundingBox[0].Latitude - boundingBox[1].Latitude)));
// featureXRatioLocation = Math.Abs(((providedMaxLong - boundingBox[0].Longitude)/(boundingBox[0].Longitude - boundingBox[1].Longitude)));
//.........这里部分代码省略.........
示例3: QC_ItemViewer
/// <summary> Constructor for a new instance of the QC_ItemViewer class </summary>
/// <param name="Current_Object"> Digital resource to display </param>
/// <param name="Current_User"> Current user for this session </param>
/// <param name="Current_Mode"> Navigation object which encapsulates the user's current request </param>
public QC_ItemViewer(SobekCM_Item Current_Object, User_Object Current_User, SobekCM_Navigation_Object Current_Mode)
{
// Save the current user and current mode information (this is usually populated AFTER the constructor completes,
// but in this case (QC viewer) we need the information for early processing
CurrentMode = Current_Mode;
CurrentUser = Current_User;
//Assign the current resource object to qc_item
qc_item = Current_Object;
//Save to the User's session
HttpContext.Current.Session[Current_Object.BibID + "_" + Current_Object.VID + " QC Work"] = qc_item;
// If there is no user, send to the login
if (CurrentUser == null)
{
CurrentMode.Mode = Display_Mode_Enum.My_Sobek;
CurrentMode.My_Sobek_Type = My_Sobek_Type_Enum.Logon;
CurrentMode.Redirect();
return;
}
// If the user cannot edit this item, go back
if (!CurrentUser.Can_Edit_This_Item(Current_Object))
{
CurrentMode.ViewerCode = String.Empty;
CurrentMode.Redirect();
return;
}
//If there are no pages for this item, redirect to the image upload screen
if (qc_item.Web.Static_PageCount == 0)
{
CurrentMode.Mode = Display_Mode_Enum.My_Sobek;
CurrentMode.My_Sobek_Type = My_Sobek_Type_Enum.Page_Images_Management;
CurrentMode.Redirect();
return;
}
// Get the links for the METS
string greenstoneLocation = Current_Object.Web.Source_URL + "/";
complete_mets = greenstoneLocation + Current_Object.BibID + "_" + Current_Object.VID + ".mets.xml";
// MAKE THIS USE THE FILES.ASPX WEB PAGE if this is restricted (or dark)
if ((Current_Object.Behaviors.Dark_Flag) || (Current_Object.Behaviors.IP_Restriction_Membership > 0))
{
complete_mets = CurrentMode.Base_URL + "files/" + qc_item.BibID + "/" + qc_item.VID + "/" + qc_item.BibID + "_" + qc_item.VID + ".mets.xml";
}
// Get the special qc_item, which matches the passed in Current_Object, at least the first time.
// If the QC work is already in process, we may find a temporary METS file to read.
// Determine the in process directory for this
userInProcessDirectory = SobekCM_Library_Settings.In_Process_Submission_Location + "\\" + Current_User.UserName.Replace(".", "").Replace("@", "") + "\\qcwork\\" + qc_item.METS_Header.ObjectID;
if (Current_User.ShibbID.Trim().Length > 0)
userInProcessDirectory = SobekCM_Library_Settings.In_Process_Submission_Location + "\\" + Current_User.ShibbID + "\\qcwork\\" + qc_item.METS_Header.ObjectID;
// Make the folder for the user in process directory
if (!Directory.Exists(userInProcessDirectory))
Directory.CreateDirectory(userInProcessDirectory);
// Create the name for the tempoary METS file?
metsInProcessFile = userInProcessDirectory + "\\" + Current_Object.BibID + "_" + Current_Object.VID + ".mets.xml";
// Is this work in the user's SESSION state?
qc_item = HttpContext.Current.Session[Current_Object.BibID + "_" + Current_Object.VID + " QC Work"] as SobekCM_Item;
if (qc_item == null)
{
// Is there a temporary METS for this item, which is not expired?
if ((File.Exists(metsInProcessFile)) &&
(File.GetLastWriteTime(metsInProcessFile).Subtract(DateTime.Now).Hours < 8))
{
// Read the temporary METS file, and use that to build the qc_item
qc_item = SobekCM_Item_Factory.Get_Item(metsInProcessFile, Current_Object.BibID, Current_Object.VID, null, null, null);
qc_item.Source_Directory = Current_Object.Source_Directory;
}
else
{
// Just read the normal otherwise ( if we had the ability to deep copy a SobekCM_Item, we could skip this )
qc_item = SobekCM_Item_Factory.Get_Item(Current_Object.BibID, Current_Object.VID, null, null, null);
}
// Save to the session, so it is easily available for next time
HttpContext.Current.Session[Current_Object.BibID + "_" + Current_Object.VID + " QC Work"] = qc_item;
}
// If no QC item, this is an error
if (qc_item == null)
{
throw new ApplicationException("Unable to retrieve the item for Quality Control in QC_ItemViewer.Constructor");
}
// Get the default QC profile
qc_profile = QualityControl_Configuration.Default_Profile;
title = "Quality Control";
//.........这里部分代码省略.........