public static void DeletePermission(string deletedCollectionName) { TweezersObject rolesObj = TweezersSchemaFactory.Find(RolesSchemaName, true, true); rolesObj.Fields["permissions"].FieldProperties.ObjectReference.Fields.Remove(deletedCollectionName); SafeAddSchema(rolesObj); TweezersMultipleResults <JObject> roles = rolesObj.FindInDb(TweezersSchemaFactory.DatabaseProxy, FindOptions <JObject> .Default(0, int.MaxValue), true); foreach (JObject role in roles.Items) { JObject permissions = JObject.FromObject(role["permissions"]); permissions.Remove(deletedCollectionName); role["permissions"] = permissions; rolesObj.Update(TweezersSchemaFactory.DatabaseProxy, role["_id"].ToString(), role); } }
public static void AppendNewPermission(TweezersObject newObject) { TweezersObject rolesObj = TweezersSchemaFactory.Find(RolesSchemaName, true, true); TweezersFieldProperties fieldProperties = Schemas.PermissionTemplateFieldProperties.Deserialize <TweezersFieldProperties>(); fieldProperties.Name = newObject.CollectionName; fieldProperties.DisplayName = newObject.PluralName; rolesObj.Fields["permissions"].FieldProperties.ObjectReference.Fields.Add(newObject.CollectionName, new TweezersField() { FieldProperties = fieldProperties }); SafeAddSchema(rolesObj); DefaultPermission permission = newObject.DefaultPermission; TweezersMultipleResults <JObject> roles = rolesObj.FindInDb(TweezersSchemaFactory.DatabaseProxy, FindOptions <JObject> .Default(0, int.MaxValue), true); foreach (JObject role in roles.Items) { role["permissions"][newObject.CollectionName] = permission.ToString(); rolesObj.Update(TweezersSchemaFactory.DatabaseProxy, role["_id"].ToString(), role); } }
public static IEnumerable <TweezersObject> GetAll(bool includeInternal = false) { return(DatabaseProxy.List(ObjectMetadataCollectionName, FindOptions <JObject> .Default(0, 500)).Items .Select(jObj => jObj.ToStrongType <TweezersObject>()) .Where(tweezersObj => includeInternal || !tweezersObj.Internal)); }