diff --git a/zero.Web.UI/App/components/pickers/mediaPicker/mediapicker.vue b/zero.Web.UI/App/components/pickers/mediaPicker/mediapicker.vue
index c534e682..43932e12 100644
--- a/zero.Web.UI/App/components/pickers/mediaPicker/mediapicker.vue
+++ b/zero.Web.UI/App/components/pickers/mediaPicker/mediapicker.vue
@@ -61,7 +61,9 @@
// allowed file extensions
fileExtensions: [],
// maximum file size in MiB
- maxFileSize: 10
+ maxFileSize: 10,
+ // whether to operate on the core database
+ shared: false
};
export default {
diff --git a/zero.Web.UI/App/editor/fields/media.vue b/zero.Web.UI/App/editor/fields/media.vue
index db19b3a6..18e05821 100644
--- a/zero.Web.UI/App/editor/fields/media.vue
+++ b/zero.Web.UI/App/editor/fields/media.vue
@@ -1,10 +1,12 @@
-
+
\ No newline at end of file
diff --git a/zero.Web.UI/App/pages/settings/users.vue b/zero.Web.UI/App/pages/settings/users.vue
index aea2f3c8..6af7b37c 100644
--- a/zero.Web.UI/App/pages/settings/users.vue
+++ b/zero.Web.UI/App/pages/settings/users.vue
@@ -3,7 +3,7 @@
-
+
@@ -49,7 +49,7 @@
return {
name: 'roles-edit',
params: { id: item.id },
- query: { scope: 'shared '}
+ query: { scope: 'shared' }
};
}
}
diff --git a/zero.Web.UI/App/renderers/editors/user.js b/zero.Web.UI/App/renderers/editors/user.js
index a44c53c0..0fda75ab 100644
--- a/zero.Web.UI/App/renderers/editors/user.js
+++ b/zero.Web.UI/App/renderers/editors/user.js
@@ -12,13 +12,13 @@ const permissionsCount = x => (x.claims || []).filter(claim =>
}).length;
const general = editor.tab('general', '@ui.tab_general');
-const permissions = editor.tab('permissions', '@user.tab_permissions', permissionsCount);
+const permissions = editor.tab('permissions', '@user.tab_permissions', permissionsCount, x => !x.id);
general.field('name', { label: '@ui.name' }).text(80).required();
general.fieldset(set =>
{
set.field('email').text(120).required();
- set.field('passwordHash').passwordHash().required();
+ set.field('passwordHash').when(x => x.id).passwordHash().required();
});
general.field('languageId').culturePicker().required();
general.field('avatarId').image();
diff --git a/zero.Web.UI/App/renderers/lists/users.js b/zero.Web.UI/App/renderers/lists/users.js
index 1d2b85cf..6d5d12ff 100644
--- a/zero.Web.UI/App/renderers/lists/users.js
+++ b/zero.Web.UI/App/renderers/lists/users.js
@@ -6,7 +6,14 @@ const list = new List('users');
const prefix = '@user.fields.';
list.templateLabel = x => prefix + x;
-list.link = zero.alias.settings.users + '-edit';
+list.link = x =>
+{
+ return {
+ name: zero.alias.settings.users + '-edit',
+ params: { id: x.id },
+ query: { scope: 'shared' }
+ };
+};
list.onFetch(filter => UsersApi.getAll(filter));
diff --git a/zero.Web.UI/app/core/editor.ts b/zero.Web.UI/app/core/editor.ts
index 71b50f19..277fb71f 100644
--- a/zero.Web.UI/app/core/editor.ts
+++ b/zero.Web.UI/app/core/editor.ts
@@ -28,7 +28,7 @@ class Editor
options = {
disabled: false,
display: 'tabs',
- coreDatabase: true
+ coreDatabase: false
};
diff --git a/zero.Web/Controllers/ApplicationsController.cs b/zero.Web/Controllers/ApplicationsController.cs
index 4f41f704..79faa72d 100644
--- a/zero.Web/Controllers/ApplicationsController.cs
+++ b/zero.Web/Controllers/ApplicationsController.cs
@@ -16,6 +16,7 @@ namespace zero.Web.Controllers
public ApplicationsController(IApplicationsApi api)
{
Api = api;
+ IsCoreDatabase = true;
}
diff --git a/zero.Web/Controllers/BackofficeController.cs b/zero.Web/Controllers/BackofficeController.cs
index f090c8ba..3b9afb13 100644
--- a/zero.Web/Controllers/BackofficeController.cs
+++ b/zero.Web/Controllers/BackofficeController.cs
@@ -24,6 +24,8 @@ namespace zero.Web.Controllers
IZeroOptions _options;
IToken _token;
+ public bool IsCoreDatabase { get; protected set; }
+
protected IZeroOptions Options => _options ?? (_options = HttpContext?.RequestServices?.GetService());
protected IToken Token => _token ?? (_token = HttpContext?.RequestServices?.GetService());
@@ -58,6 +60,7 @@ namespace zero.Web.Controllers
//model.Meta.CanCreateShared = canBeShared;
model.Meta.CanEdit = true;
model.Meta.CanDelete = true;
+ model.Meta.IsShared = IsCoreDatabase;
transform?.Invoke(model);
@@ -83,6 +86,7 @@ namespace zero.Web.Controllers
//data.Meta.CanCreateShared = canBeShared;
data.Meta.CanEdit = true;
data.Meta.CanDelete = true;
+ data.Meta.IsShared = IsCoreDatabase;
transform?.Invoke(data);
diff --git a/zero.Web/Controllers/UsersController.cs b/zero.Web/Controllers/UsersController.cs
index 622e9922..a603ee83 100644
--- a/zero.Web/Controllers/UsersController.cs
+++ b/zero.Web/Controllers/UsersController.cs
@@ -22,6 +22,7 @@ namespace zero.Web.Controllers
Api = api;
AuthenticationApi = authenticationApi;
PermissionsApi = permissionsApi;
+ IsCoreDatabase = true;
}
diff --git a/zero.Web/Models/ObsoleteEditModel.cs b/zero.Web/Models/ObsoleteEditModel.cs
index 9743823b..eeac4280 100644
--- a/zero.Web/Models/ObsoleteEditModel.cs
+++ b/zero.Web/Models/ObsoleteEditModel.cs
@@ -50,6 +50,8 @@ namespace zero.Web.Models
///
public bool CanBeShared { get; set; }
+ public bool IsShared { get; set; }
+
///
/// The change token maps to a database entity which holds ID and collection of the model to edit
/// If these values do not match the entity on save it is rejected