Index: data/evince.schemas.in
===================================================================
RCS file: /cvs/gnome/evince/data/evince.schemas.in,v
retrieving revision 1.6
diff -u -p -r1.6 evince.schemas.in
--- data/evince.schemas.in	22 Apr 2005 17:15:21 -0000	1.6
+++ data/evince.schemas.in	15 Jul 2005 11:41:39 -0000
@@ -44,5 +44,16 @@
         <long>Sidebar is the side item that contains the Index and Thumbnail lists.  The default size sets the sidebar's width in pixels based from the side of the window.  Any integer will be accepted.  The sidebar will never shrink smaller than the size of the text required to display Thumbnails or Index.  Large values will cause the sidebar to take up as much of the page display area as possible relative to the window's size.</long>
       </locale>
     </schema>
+    <schema>
+      <key>/schemas/apps/evince/override_restrictions</key>
+      <applyto>/apps/evince/override_restrictions</applyto>
+      <owner>evince</owner>
+      <type>bool</type>
+      <default>false</default>
+      <locale name="C">
+        <short>Override document restrictions</short>
+        <long>Allow user override document restrictions, like restriction to print or copy</long>
+      </locale>
+    </schema>
   </schemalist>
 </gconfschemafile>
Index: shell/ev-window.c
===================================================================
RCS file: /cvs/gnome/evince/shell/ev-window.c,v
retrieving revision 1.197
diff -u -p -r1.197 ev-window.c
--- shell/ev-window.c	12 Jul 2005 08:45:59 -0000	1.197
+++ shell/ev-window.c	15 Jul 2005 11:43:04 -0000
@@ -154,6 +154,7 @@ static const GtkTargetEntry ev_drop_type
 #define GCONF_CHROME_STATUSBAR	"/apps/evince/show_statusbar"
 
 #define GCONF_SIDEBAR_SIZE      "/apps/evince/sidebar_size"
+#define GCONF_OVERRIDE_RESTRICTIONS "/apps/evince/override_restrictions"
 
 #define SIDEBAR_DEFAULT_SIZE    132
 
@@ -203,14 +204,16 @@ update_action_sensitivity (EvWindow *ev_
 {
 	EvView *view;
 	EvDocument *document;
+	GConfClient *client;
 	const EvDocumentInfo *info = NULL;
 	EvWindowPageMode page_mode;
 	gboolean sensitive, has_pages = FALSE, has_document;
 	int n_pages = 0, page = -1;
 	gboolean ok_to_print = TRUE;
 	gboolean ok_to_copy = TRUE;
+	gboolean override_restrictions = FALSE;
 	gboolean has_properties = TRUE;
-
+        
 	view = EV_VIEW (ev_window->priv->view);
 
 	document = ev_window->priv->document;
@@ -227,7 +230,13 @@ update_action_sensitivity (EvWindow *ev_
 		has_pages = has_document && n_pages > 0;
 	}
 
-	if (info && info->fields_mask & EV_DOCUMENT_INFO_PERMISSIONS) {
+	client = gconf_client_get_default ();
+	override_restrictions = gconf_client_get_bool (client, 
+						       GCONF_OVERRIDE_RESTRICTIONS, 
+						       NULL);
+	g_object_unref (client);
+
+	if (!override_restrictions && info && info->fields_mask & EV_DOCUMENT_INFO_PERMISSIONS) {
 		ok_to_print = (info->permissions & EV_DOCUMENT_PERMISSIONS_OK_TO_PRINT);
 		ok_to_copy = (info->permissions & EV_DOCUMENT_PERMISSIONS_OK_TO_COPY);
 	}
