예제 #1
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var full = new[] { Operations.Read, Operations.Write, Operations.Execute };

            config.GrantAdministrator(this.ObjectType, full);
            config.GrantCustomer(this.ObjectType, Operations.Read);
            config.GrantSales(this.ObjectType, full);

            var sent = new SalesInvoiceObjectStates(Session).Sent;
            var paid = new SalesInvoiceObjectStates(Session).Paid;
            var partiallyPaid = new SalesInvoiceObjectStates(Session).PartiallyPaid;
            var writtenOff = new SalesInvoiceObjectStates(Session).WrittenOff;
            var cancelled = new SalesInvoiceObjectStates(Session).Cancelled;

            var sendId = Meta.Send;
            var cancelInvoiceId = Meta.CancelInvoice;

            config.Deny(this.ObjectType, sent, sendId, cancelInvoiceId);
            config.Deny(this.ObjectType, partiallyPaid, sendId, cancelInvoiceId);

            config.Deny(this.ObjectType, paid, Operations.Write, Operation.Execute);
            config.Deny(this.ObjectType, writtenOff, Operations.Write, Operation.Execute);
            config.Deny(this.ObjectType, cancelled, Operations.Write, Operation.Execute);
        }
예제 #2
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var partiallyShipped = new SalesOrderItemShipmentStates(this.Session).PartiallyShipped;
            var shipped          = new SalesOrderItemShipmentStates(this.Session).Shipped;
            var inProcess        = new SalesOrderItemStates(this.Session).InProcess;
            var cancelled        = new SalesOrderItemStates(this.Session).Cancelled;
            var rejected         = new SalesOrderItemStates(this.Session).Rejected;
            var completed        = new SalesOrderItemStates(this.Session).Completed;
            var finished         = new SalesOrderItemStates(this.Session).Finished;

            var product = this.Meta.Product;

            config.Deny(this.ObjectType, shipped, product);
            config.Deny(this.ObjectType, partiallyShipped, product);

            var cancel = this.Meta.Cancel;
            var reject = this.Meta.Reject;
            var delete = this.Meta.Delete;

            config.Deny(this.ObjectType, partiallyShipped, delete, cancel, reject);
            config.Deny(this.ObjectType, shipped, delete, cancel, reject);
            config.Deny(this.ObjectType, completed, delete, cancel, reject);
            config.Deny(this.ObjectType, inProcess, delete);

            config.Deny(this.ObjectType, cancelled, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, rejected, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, completed, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, finished, Operations.Execute, Operations.Write);
        }
예제 #3
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var full = new[] { Operations.Read, Operations.Write, Operations.Execute };

            config.GrantAdministrator(this.ObjectType, full);

            var created = new SalesOrderItemObjectStates(Session).Created;
            var partiallyShipped = new SalesOrderItemObjectStates(Session).PartiallyShipped;
            var shipped = new SalesOrderItemObjectStates(Session).Shipped;
            var inProcess = new SalesOrderItemObjectStates(Session).InProcess;
            var cancelled = new SalesOrderItemObjectStates(Session).Cancelled;
            var rejected = new SalesOrderItemObjectStates(Session).Rejected;
            var completed = new SalesOrderItemObjectStates(Session).Completed;
            var finished = new SalesOrderItemObjectStates(Session).Finished;

            var product = Meta.Product;
            config.Deny(this.ObjectType, shipped, product);
            config.Deny(this.ObjectType, partiallyShipped, product);

            var cancel = Meta.Cancel;
            var reject = Meta.Reject;
            var delete = Meta.Delete;

            config.Deny(this.ObjectType, created, cancel, reject);
            config.Deny(this.ObjectType, partiallyShipped, delete, cancel, reject);
            config.Deny(this.ObjectType, shipped, delete, cancel, reject);
            config.Deny(this.ObjectType, inProcess, delete);

            config.Deny(this.ObjectType, cancelled, Operation.Execute, Operations.Write);
            config.Deny(this.ObjectType, rejected, Operation.Execute, Operations.Write);
            config.Deny(this.ObjectType, completed, Operation.Execute, Operations.Write);
            config.Deny(this.ObjectType, finished, Operation.Execute, Operations.Write);
        }
예제 #4
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var sent            = new SalesInvoiceStates(this.Session).Sent;
            var paid            = new SalesInvoiceStates(this.Session).Paid;
            var partiallyPaid   = new SalesInvoiceStates(this.Session).PartiallyPaid;
            var writtenOff      = new SalesInvoiceStates(this.Session).WrittenOff;
            var cancelled       = new SalesInvoiceStates(this.Session).Cancelled;
            var readyForPosting = new SalesInvoiceStates(this.Session).ReadyForPosting;

            var send          = this.Meta.Send;
            var cancelInvoice = this.Meta.CancelInvoice;
            var writeOff      = this.Meta.WriteOff;
            var reopen        = this.Meta.Reopen;
            var credit        = this.Meta.Credit;

            config.Deny(this.ObjectType, partiallyPaid, send, cancelInvoice, reopen);

            config.Deny(this.ObjectType, readyForPosting, reopen, credit);
            config.Deny(this.ObjectType, sent, Operations.Write);
            config.Deny(this.ObjectType, sent, send, cancelInvoice);
            config.Deny(this.ObjectType, paid, Operations.Write);
            config.Deny(this.ObjectType, paid, send, writeOff, cancelInvoice, reopen);
            config.Deny(this.ObjectType, writtenOff, Operations.Write);
            config.Deny(this.ObjectType, writtenOff, send, cancelInvoice, writeOff, credit);
            config.Deny(this.ObjectType, cancelled, Operations.Write);
            config.Deny(this.ObjectType, cancelled, send, cancelInvoice, writeOff, credit);
        }
예제 #5
0
        protected override void BaseSecure(Security config)
        {
            var closed = new BudgetStates(this.Session).Closed;
            var opened = new BudgetStates(this.Session).Opened;

            config.Deny(this.ObjectType, closed, Operations.Write);

            config.Deny(this.ObjectType, closed, this.Meta.Close);
            config.Deny(this.ObjectType, opened, this.Meta.Reopen);
        }
예제 #6
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var paid      = new PurchaseInvoiceItemStates(this.Session).Paid;
            var cancelled = new PurchaseInvoiceItemStates(this.Session).Cancelled;

            config.Deny(this.ObjectType, paid, Operations.Write, Operations.Execute);
            config.Deny(this.ObjectType, cancelled, Operations.Write, Operations.Execute);
        }
예제 #7
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var anonymous       = new RequestStates(this.Session).Anonymous;
            var cancelled       = new RequestStates(this.Session).Cancelled;
            var quoted          = new RequestStates(this.Session).Quoted;
            var pendingCustomer = new RequestStates(this.Session).PendingCustomer;
            var rejected        = new RequestStates(this.Session).Rejected;
            var submitted       = new RequestStates(this.Session).Submitted;

            var cancel      = this.Meta.Cancel;
            var hold        = this.Meta.Hold;
            var submit      = this.Meta.Submit;
            var reject      = this.Meta.Reject;
            var createQuote = this.Meta.CreateQuote;

            config.Deny(this.ObjectType, quoted, cancel, hold, submit, reject, createQuote);
            config.Deny(this.ObjectType, submitted, submit);
            config.Deny(this.ObjectType, anonymous, hold, createQuote);
            config.Deny(this.ObjectType, pendingCustomer, hold, createQuote);
            config.Deny(this.ObjectType, rejected, reject, cancel, submit, hold, createQuote);
            config.Deny(this.ObjectType, cancelled, reject, cancel, submit, hold, createQuote);

            config.Deny(this.ObjectType, cancelled, Operations.Write);
            config.Deny(this.ObjectType, rejected, Operations.Write);
            config.Deny(this.ObjectType, quoted, Operations.Write);
        }
예제 #8
0
        protected override void BaseSecure(Security config)
        {
            var createdState   = new WorkEffortStates(this.Session).Created;
            var cancelledState = new WorkEffortStates(this.Session).Cancelled;
            var finishedState  = new WorkEffortStates(this.Session).Completed;

            config.Deny(this.ObjectType, createdState, M.WorkEffort.Reopen);

            config.Deny(this.ObjectType, cancelledState, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, finishedState, Operations.Execute, Operations.Read);
        }
예제 #9
0
        protected override void BaseSecure(Security config)
        {
            var created   = new PickListStates(this.Session).Created;
            var onHold    = new PickListStates(this.Session).OnHold;
            var picked    = new PickListStates(this.Session).Picked;
            var cancelled = new PickListStates(this.Session).Cancelled;

            config.Deny(this.ObjectType, created, this.Meta.Continue);
            config.Deny(this.ObjectType, onHold, this.Meta.Hold);

            config.Deny(this.ObjectType, picked, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, cancelled, Operations.Execute, Operations.Write);
        }
예제 #10
0
        protected override void BaseSecure(Security config)
        {
            var readyForPosting    = new SalesInvoiceItemStates(this.Session).ReadyForPosting;
            var notPaid            = new SalesInvoiceItemStates(this.Session).NotPaid;
            var paid               = new SalesInvoiceItemStates(this.Session).Paid;
            var writtenOff         = new SalesInvoiceItemStates(this.Session).WrittenOff;
            var cancelledByInvoice = new SalesInvoiceItemStates(this.Session).CancelledByInvoice;

            config.Deny(this.ObjectType, notPaid, Operations.Write, Operations.Execute);
            config.Deny(this.ObjectType, paid, Operations.Write, Operations.Execute);
            config.Deny(this.ObjectType, writtenOff, Operations.Write, Operations.Execute);
            config.Deny(this.ObjectType, cancelledByInvoice, Operations.Write);
        }
예제 #11
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var created   = new CustomerShipmentStates(this.Session).Created;
            var picked    = new CustomerShipmentStates(this.Session).Picked;
            var packed    = new CustomerShipmentStates(this.Session).Packed;
            var shipped   = new CustomerShipmentStates(this.Session).Shipped;
            var delivered = new CustomerShipmentStates(this.Session).Delivered;
            var cancelled = new CustomerShipmentStates(this.Session).Cancelled;
            var onHold    = new CustomerShipmentStates(this.Session).OnHold;

            var hold      = this.Meta.Hold;
            var @continue = this.Meta.Continue;
            var ship      = this.Meta.Ship;

            config.Deny(this.ObjectType, shipped, hold, @continue);
            config.Deny(this.ObjectType, onHold, ship, hold, @continue);
            config.Deny(this.ObjectType, created, hold, @continue);
            config.Deny(this.ObjectType, picked, @continue);
            config.Deny(this.ObjectType, packed, @continue);

            config.Deny(this.ObjectType, cancelled, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, shipped, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, delivered, Operations.Execute, Operations.Write);
        }
예제 #12
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var created          = new PurchaseOrderStates(this.Session).Provisional;
            var onHold           = new PurchaseOrderStates(this.Session).OnHold;
            var requestsApproval = new PurchaseOrderStates(this.Session).RequestsApproval;
            var inProcess        = new PurchaseOrderStates(this.Session).InProcess;
            var cancelled        = new PurchaseOrderStates(this.Session).Cancelled;
            var rejected         = new PurchaseOrderStates(this.Session).Rejected;
            var completed        = new PurchaseOrderStates(this.Session).Completed;
            var finished         = new PurchaseOrderStates(this.Session).Finished;

            var approve   = this.Meta.Approve;
            var reject    = this.Meta.Reject;
            var hold      = this.Meta.Hold;
            var @continue = this.Meta.Continue;
            var confirm   = this.Meta.Confirm;

            config.Deny(this.ObjectType, created, reject, approve, hold, @continue);
            config.Deny(this.ObjectType, requestsApproval, confirm, reject, approve, @continue);
            config.Deny(this.ObjectType, inProcess, confirm, reject, approve, @continue);
            config.Deny(this.ObjectType, onHold, confirm, reject, approve, hold);

            config.Deny(this.ObjectType, cancelled, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, rejected, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, completed, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, finished, Operations.Execute, Operations.Write);
        }
예제 #13
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            ObjectState sent       = new SalesInvoiceItemStates(this.Session).Sent;
            ObjectState paid       = new SalesInvoiceItemStates(this.Session).Paid;
            ObjectState writtenOff = new SalesInvoiceItemStates(this.Session).WrittenOff;
            ObjectState cancelled  = new SalesInvoiceItemStates(this.Session).Cancelled;

            config.Deny(this.ObjectType, sent, Operations.Write, Operations.Execute);
            config.Deny(this.ObjectType, paid, Operations.Write, Operations.Execute);
            config.Deny(this.ObjectType, writtenOff, Operations.Write, Operations.Execute);
            config.Deny(this.ObjectType, cancelled, Operations.Write, Operations.Execute);
        }
예제 #14
0
        protected override void BaseSecure(Security config)
        {
            var states    = new PurchaseOrderStates(this.Session);
            var created   = states.Created;
            var onHold    = states.OnHold;
            var cancelled = states.Cancelled;
            var rejected  = states.Rejected;
            var awaitingApprovalLevel1 = states.AwaitingApprovalLevel1;
            var awaitingApprovalLevel2 = states.AwaitingApprovalLevel2;
            var inProcess = states.InProcess;
            var sent      = states.Sent;
            var completed = states.Completed;
            var finished  = states.Finished;

            var approve               = this.Meta.Approve;
            var reject                = this.Meta.Reject;
            var hold                  = this.Meta.Hold;
            var @continue             = this.Meta.Continue;
            var setReadyForProcessing = this.Meta.SetReadyForProcessing;
            var cancel                = this.Meta.Cancel;
            var reopen                = this.Meta.Reopen;
            var send                  = this.Meta.Send;
            var revise                = this.Meta.Revise;
            var quickReceive          = this.Meta.QuickReceive;
            var invoice               = this.Meta.Invoice;

            config.Deny(this.ObjectType, created, approve, cancel, reject, @continue, reopen, send, quickReceive, invoice, revise);
            config.Deny(this.ObjectType, onHold, approve, hold, setReadyForProcessing, reopen, send, quickReceive, invoice, revise);
            config.Deny(this.ObjectType, cancelled, approve, reject, hold, @continue, setReadyForProcessing, cancel, send, quickReceive, invoice, revise);
            config.Deny(this.ObjectType, rejected, approve, reject, hold, @continue, setReadyForProcessing, cancel, send, quickReceive, invoice, revise);
            config.Deny(this.ObjectType, awaitingApprovalLevel1, hold, @continue, setReadyForProcessing, cancel, reopen, send, quickReceive, @continue, revise);
            config.Deny(this.ObjectType, awaitingApprovalLevel2, hold, @continue, setReadyForProcessing, cancel, reopen, send, quickReceive, @continue, revise);
            config.Deny(this.ObjectType, inProcess, approve, reject, @continue, setReadyForProcessing, quickReceive);
            config.Deny(this.ObjectType, inProcess, approve, reject, hold, @continue, setReadyForProcessing, reopen);
            config.Deny(this.ObjectType, sent, approve, reject, hold, @continue, setReadyForProcessing, reopen, send);
            config.Deny(this.ObjectType, completed, approve, reject, hold, @continue, setReadyForProcessing, cancel, reopen, send, quickReceive);

            var except = new HashSet <IOperandType>
            {
                this.Meta.ElectronicDocuments.RoleType,
                this.Meta.Print,
            };

            config.DenyExcept(this.ObjectType, inProcess, except, Operations.Write);
            config.DenyExcept(this.ObjectType, cancelled, except, Operations.Write);
            config.DenyExcept(this.ObjectType, rejected, except, Operations.Write, Operations.Execute);
            config.DenyExcept(this.ObjectType, completed, except, Operations.Write);
            config.DenyExcept(this.ObjectType, finished, except, Operations.Execute, Operations.Write);
        }
예제 #15
0
        protected override void BaseSecure(Security config)
        {
            var created  = new ShipmentItemStates(this.Session).Created;
            var picking  = new ShipmentItemStates(this.Session).Picking;
            var picked   = new ShipmentItemStates(this.Session).Picked;
            var packed   = new ShipmentItemStates(this.Session).Packed;
            var shipped  = new ShipmentItemStates(this.Session).Shipped;
            var received = new ShipmentItemStates(this.Session).Received;

            config.Deny(this.ObjectType, picking, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, picked, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, packed, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, shipped, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, received, Operations.Execute, Operations.Write);
        }
예제 #16
0
        protected override void BaseSecure(Security config)
        {
            var provisional        = new SalesOrderStates(this.Session).Provisional;
            var onHold             = new SalesOrderStates(this.Session).OnHold;
            var requestsApproval   = new SalesOrderStates(this.Session).RequestsApproval;
            var readyForPosting    = new SalesOrderStates(this.Session).ReadyForPosting;
            var awaitingAcceptance = new SalesOrderStates(this.Session).AwaitingAcceptance;
            var inProcess          = new SalesOrderStates(this.Session).InProcess;
            var cancelled          = new SalesOrderStates(this.Session).Cancelled;
            var rejected           = new SalesOrderStates(this.Session).Rejected;
            var completed          = new SalesOrderStates(this.Session).Completed;
            var finished           = new SalesOrderStates(this.Session).Finished;
            var tranferred         = new SalesOrderStates(this.Session).Transferred;

            var setReadyForPosting = this.Meta.SetReadyForPosting;
            var post      = this.Meta.Post;
            var reopen    = this.Meta.Reopen;
            var approve   = this.Meta.Approve;
            var hold      = this.Meta.Hold;
            var @continue = this.Meta.Continue;
            var accept    = this.Meta.Accept;
            var revise    = this.Meta.Revise;
            var complete  = this.Meta.Complete;
            var ship      = this.Meta.Ship;
            var invoice   = this.Meta.Invoice;
            var reject    = this.Meta.Reject;
            var cancel    = this.Meta.Cancel;
            var transfer  = this.Meta.DoTransfer;

            config.Deny(this.ObjectType, provisional, reject, approve, @continue, ship, invoice, post, accept, reopen, revise);
            config.Deny(this.ObjectType, requestsApproval, setReadyForPosting, hold, @continue, ship, invoice, post, accept, reopen, revise, transfer);
            config.Deny(this.ObjectType, readyForPosting, setReadyForPosting, approve, complete, @continue, ship, invoice, accept, reopen, transfer);
            config.Deny(this.ObjectType, awaitingAcceptance, setReadyForPosting, post, approve, hold, @continue, complete, ship, invoice, reopen, transfer);
            config.Deny(this.ObjectType, inProcess, setReadyForPosting, post, accept, reject, approve, @continue, reopen, transfer);
            config.Deny(this.ObjectType, onHold, setReadyForPosting, reject, approve, hold, ship, invoice, post, accept, revise, transfer);
            config.Deny(this.ObjectType, rejected, reject, ship, invoice, post, accept, hold, @continue, revise, approve, setReadyForPosting, cancel, transfer);
            config.Deny(this.ObjectType, cancelled, cancel, ship, invoice, post, accept, hold, @continue, revise, approve, setReadyForPosting, reject, transfer);
            //config.Deny(this.ObjectType, tranferred, cancel, ship, invoice, post, accept, hold, @continue, revise, approve, setReadyForPosting, reject, transfer);
            config.Deny(this.ObjectType, completed, complete, reject, cancel, approve, hold, @continue, setReadyForPosting, invoice, post, accept, reopen, revise, transfer);

            var except = new HashSet <IOperandType>
            {
                this.Meta.ElectronicDocuments.RoleType,
                this.Meta.Print,
            };

            config.DenyExcept(this.ObjectType, awaitingAcceptance, except, Operations.Write);
            config.DenyExcept(this.ObjectType, inProcess, except, Operations.Write);
            config.DenyExcept(this.ObjectType, cancelled, except, Operations.Write);
            config.DenyExcept(this.ObjectType, rejected, except, Operations.Write);
            config.DenyExcept(this.ObjectType, completed, except, Operations.Write);
            config.DenyExcept(this.ObjectType, finished, except, Operations.Execute, Operations.Write);
        }
예제 #17
0
파일: Budgets.cs 프로젝트: Allors/apps
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var full = new[] { Operations.Read, Operations.Write, Operations.Execute };

            config.GrantAdministrator(this.ObjectType, full);

            var closed = new BudgetObjectStates(this.Session).Closed;
            var opened = new BudgetObjectStates(this.Session).Opened;

            config.Deny(this.ObjectType, closed, Operations.Write);

            config.Deny(this.ObjectType, closed, this.Meta.Close);
            config.Deny(this.ObjectType, opened, this.Meta.Reopen);
        }
예제 #18
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var full = new[] { Operations.Read, Operations.Write, Operations.Execute };

            config.GrantAdministrator(this.ObjectType, full);

            ObjectState paid = new SalesInvoiceItemObjectStates(Session).Paid;
            ObjectState writtenOff = new SalesInvoiceItemObjectStates(Session).WrittenOff;
            ObjectState cancelled = new SalesInvoiceItemObjectStates(Session).Cancelled;

            config.Deny(this.ObjectType, paid, Operations.Write, Operation.Execute);
            config.Deny(this.ObjectType, writtenOff, Operations.Write, Operation.Execute);
            config.Deny(this.ObjectType, cancelled, Operations.Write, Operation.Execute);
        }
        protected override void BaseSecure(Security config)
        {
            ObjectState scheduled = new CommunicationEventStates(this.Session).Scheduled;
            ObjectState cancelled = new CommunicationEventStates(this.Session).Cancelled;
            ObjectState closed    = new CommunicationEventStates(this.Session).Completed;

            var reopenId = M.CommunicationEvent.Reopen;
            var closeId  = M.CommunicationEvent.Close;
            var cancelId = M.CommunicationEvent.Cancel;

            config.Deny(this.ObjectType, scheduled, reopenId);
            config.Deny(this.ObjectType, closed, closeId, cancelId);
            config.Deny(this.ObjectType, cancelled, cancelId);

            config.Deny(this.ObjectType, closed, Operations.Write);
            config.Deny(this.ObjectType, cancelled, Operations.Write);
        }
예제 #20
0
        protected override void BaseSecure(Security config)
        {
            var created            = new PurchaseInvoiceItemStates(this.Session).Created;
            var awaitingApproval   = new PurchaseInvoiceItemStates(this.Session).AwaitingApproval;
            var received           = new PurchaseInvoiceItemStates(this.Session).Received;
            var paid               = new PurchaseInvoiceItemStates(this.Session).Paid;
            var cancelledByinvoice = new PurchaseInvoiceItemStates(this.Session).CancelledByinvoice;
            var rejected           = new PurchaseInvoiceItemStates(this.Session).Rejected;

            var reject = this.Meta.Reject;
            var delete = this.Meta.Delete;

            config.Deny(this.ObjectType, created, reject);
            config.Deny(this.ObjectType, awaitingApproval, delete);

            config.Deny(this.ObjectType, cancelledByinvoice, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, rejected, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, paid, Operations.Execute, Operations.Write);
        }
예제 #21
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var inProcess = new PurchaseInvoiceStates(this.Session).InProcess;
            var received  = new PurchaseInvoiceStates(this.Session).Received;
            var paid      = new PurchaseInvoiceStates(this.Session).Paid;
            var cancelled = new PurchaseInvoiceStates(this.Session).Cancelled;
            var finished  = new PurchaseInvoiceStates(this.Session).Finished;

            var approve            = this.Meta.Approve;
            var createSalesInvoice = this.Meta.CreateSalesInvoice;

            config.Deny(this.ObjectType, inProcess, approve);
            config.Deny(this.ObjectType, received, createSalesInvoice);

            config.Deny(this.ObjectType, paid, Operations.Write, Operations.Execute);
            config.Deny(this.ObjectType, cancelled, Operations.Write, Operations.Execute);
            config.Deny(this.ObjectType, finished, Operations.Write, Operations.Execute);
        }
예제 #22
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var draft     = new RequestItemStates(this.Session).Draft;
            var cancelled = new RequestItemStates(this.Session).Cancelled;
            var submitted = new RequestItemStates(this.Session).Submitted;
            var quoted    = new RequestItemStates(this.Session).Quoted;

            var cancel = this.Meta.Cancel;
            var hold   = this.Meta.Hold;
            var submit = this.Meta.Submit;
            var delete = this.Meta.Delete;

            config.Deny(this.ObjectType, submitted, submit);
            config.Deny(this.ObjectType, cancelled, cancel, submit, hold);
            config.Deny(this.ObjectType, quoted, cancel, submit, hold, delete);

            config.Deny(this.ObjectType, cancelled, Operations.Write);
            config.Deny(this.ObjectType, quoted, Operations.Write);
        }
예제 #23
0
        protected override void BaseSecure(Security config)
        {
            var created   = new ShipmentStates(this.Session).Created;
            var picking   = new ShipmentStates(this.Session).Picking;
            var picked    = new ShipmentStates(this.Session).Picked;
            var packed    = new ShipmentStates(this.Session).Packed;
            var shipped   = new ShipmentStates(this.Session).Shipped;
            var cancelled = new ShipmentStates(this.Session).Cancelled;
            var onHold    = new ShipmentStates(this.Session).OnHold;

            var pick      = this.Meta.Pick;
            var setPacked = this.Meta.SetPacked;
            var hold      = this.Meta.Hold;
            var @continue = this.Meta.Continue;
            var ship      = this.Meta.Ship;
            var delete    = this.Meta.Delete;

            var except = new HashSet <IOperandType>
            {
                this.Meta.ElectronicDocuments.RoleType,
            };

            config.Deny(this.ObjectType, onHold, pick, setPacked, ship, hold, delete);
            config.Deny(this.ObjectType, created, setPacked, ship, @continue);
            config.Deny(this.ObjectType, picked, ship, pick, @continue, delete);
            config.Deny(this.ObjectType, packed, pick, @continue, delete);
            config.Deny(this.ObjectType, picking, pick, setPacked, ship, @continue, delete);

            config.Deny(this.ObjectType, cancelled, Operations.Execute, Operations.Write);
            config.DenyExcept(this.ObjectType, picking, except, Operations.Write);
            config.DenyExcept(this.ObjectType, picked, except, Operations.Write);
            config.DenyExcept(this.ObjectType, packed, except, Operations.Write);
            config.DenyExcept(this.ObjectType, onHold, except, Operations.Write);
            config.DenyExcept(this.ObjectType, shipped, except, Operations.Execute, Operations.Write);
        }
예제 #24
0
        protected override void BaseSecure(Security config)
        {
            var received  = new ShipmentStates(this.Session).Received;
            var cancelled = new ShipmentStates(this.Session).Cancelled;

            var except = new HashSet <IOperandType>
            {
                this.Meta.ElectronicDocuments.RoleType,
            };

            config.Deny(this.ObjectType, cancelled, Operations.Execute, Operations.Write);
            config.DenyExcept(this.ObjectType, received, except, Operations.Execute, Operations.Write);
        }
예제 #25
0
        protected override void BaseSecure(Security config)
        {
            var created          = new PurchaseInvoiceStates(this.Session).Created;
            var awaitingApproval = new PurchaseInvoiceStates(this.Session).AwaitingApproval;
            var notPaid          = new PurchaseInvoiceStates(this.Session).NotPaid;
            var partiallyPaid    = new PurchaseInvoiceStates(this.Session).PartiallyPaid;
            var paid             = new PurchaseInvoiceStates(this.Session).Paid;
            var cancelled        = new PurchaseInvoiceStates(this.Session).Cancelled;
            var rejected         = new PurchaseInvoiceStates(this.Session).Rejected;
            var revising         = new PurchaseInvoiceStates(this.Session).Revising;

            var approve            = this.Meta.Approve;
            var reject             = this.Meta.Reject;
            var confirm            = this.Meta.Confirm;
            var cancel             = this.Meta.Cancel;
            var reopen             = this.Meta.Reopen;
            var createSalesInvoice = this.Meta.CreateSalesInvoice;
            var delete             = this.Meta.Delete;
            var setPaid            = this.Meta.SetPaid;
            var revise             = this.Meta.Revise;
            var finishRevising     = this.Meta.FinishRevising;

            config.Deny(this.ObjectType, created, approve, reject, reopen, createSalesInvoice, setPaid, revise, finishRevising);
            config.Deny(this.ObjectType, cancelled, approve, reject, confirm, cancel, setPaid, createSalesInvoice, delete, revise, finishRevising);
            config.Deny(this.ObjectType, rejected, approve, reject, confirm, cancel, setPaid, createSalesInvoice, delete, revise, finishRevising);
            config.Deny(this.ObjectType, awaitingApproval, confirm, cancel, reopen, setPaid, delete, revise, finishRevising);
            config.Deny(this.ObjectType, notPaid, cancel, reject, approve, confirm, reopen, createSalesInvoice, delete, finishRevising);
            config.Deny(this.ObjectType, partiallyPaid, cancel, reject, approve, confirm, reopen, createSalesInvoice, delete, finishRevising);
            config.Deny(this.ObjectType, paid, cancel, reject, approve, confirm, reopen, createSalesInvoice, delete, finishRevising);

            if (revising != null)
            {
                config.Deny(this.ObjectType, revising, cancel, reject, approve, confirm, reopen, createSalesInvoice, delete, setPaid, revise);
            }

            var except = new HashSet <IOperandType>
            {
                this.Meta.ElectronicDocuments.RoleType,
                this.Meta.Print,
            };

            config.DenyExcept(this.ObjectType, notPaid, except, Operations.Write);
            config.DenyExcept(this.ObjectType, partiallyPaid, except, Operations.Write);
            config.DenyExcept(this.ObjectType, paid, except, Operations.Write);
            config.DenyExcept(this.ObjectType, cancelled, except, Operations.Write);
            config.DenyExcept(this.ObjectType, rejected, except, Operations.Write);
        }
예제 #26
0
        protected override void BaseSecure(Security config)
        {
            var created            = new QuoteStates(this.Session).Created;
            var awaitingApproval   = new QuoteStates(this.Session).AwaitingApproval;
            var inProcess          = new QuoteStates(this.Session).InProcess;
            var awaitingAcceptance = new QuoteStates(this.Session).AwaitingAcceptance;
            var accepted           = new QuoteStates(this.Session).Accepted;
            var ordered            = new QuoteStates(this.Session).Ordered;
            var rejected           = new QuoteStates(this.Session).Rejected;
            var cancelled          = new QuoteStates(this.Session).Cancelled;

            var setReadyForProcessing = this.Meta.SetReadyForProcessing;
            var approve = this.Meta.Approve;
            var send    = this.Meta.Send;
            var accept  = this.Meta.Accept;
            var revise  = this.Meta.Revise;
            var reopen  = this.Meta.Reopen;
            var reject  = this.Meta.Reject;
            var order   = this.Meta.Order;
            var cancel  = this.Meta.Cancel;
            var delete  = this.Meta.Delete;

            config.Deny(this.ObjectType, created, approve, order, reopen, send, accept, revise);
            config.Deny(this.ObjectType, awaitingApproval, setReadyForProcessing, send, accept, reopen, order, cancel, revise);
            config.Deny(this.ObjectType, inProcess, setReadyForProcessing, approve, accept, order, reopen, delete);
            config.Deny(this.ObjectType, awaitingAcceptance, setReadyForProcessing, approve, order, send, reopen, reject, delete);
            config.Deny(this.ObjectType, accepted, setReadyForProcessing, approve, send, accept, reject, reopen, delete);
            config.Deny(this.ObjectType, ordered, setReadyForProcessing, approve, reject, order, cancel, reopen, send, accept, revise, delete);
            config.Deny(this.ObjectType, rejected, setReadyForProcessing, approve, reject, order, send, accept, cancel, revise);
            config.Deny(this.ObjectType, cancelled, setReadyForProcessing, cancel, reject, order, send, accept, approve, revise);

            var except = new HashSet <IOperandType>
            {
                this.Meta.ElectronicDocuments.RoleType,
                this.Meta.Print,
            };

            config.DenyExcept(this.ObjectType, inProcess, except, Operations.Write);
            config.DenyExcept(this.ObjectType, rejected, except, Operations.Write);
            config.DenyExcept(this.ObjectType, awaitingAcceptance, except, Operations.Write);
            config.DenyExcept(this.ObjectType, accepted, except, Operations.Write);
            config.DenyExcept(this.ObjectType, ordered, except, Operations.Write);
            config.DenyExcept(this.ObjectType, cancelled, except, Operations.Write);
        }
예제 #27
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var created   = new WorkEffortStates(this.Session).Created;
            var cancelled = new WorkEffortStates(this.Session).Cancelled;
            var completed = new WorkEffortStates(this.Session).Completed;
            var finished  = new WorkEffortStates(this.Session).Finished;

            var cancel  = this.Meta.Cancel;
            var reopen  = this.Meta.Reopen;
            var invoice = this.Meta.Invoice;

            config.Deny(this.ObjectType, created, M.WorkEffort.Reopen);
            config.Deny(this.ObjectType, cancelled, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, finished, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, completed, Operations.Execute, Operations.Write);

            config.Deny(this.ObjectType, cancelled, cancel, invoice);
            config.Deny(this.ObjectType, completed, cancel);
            config.Deny(this.ObjectType, finished, cancel, invoice, reopen);
        }
예제 #28
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var created   = new QuoteStates(this.Session).Created;
            var approved  = new QuoteStates(this.Session).Approved;
            var ordered   = new QuoteStates(this.Session).Ordered;
            var rejected  = new QuoteStates(this.Session).Rejected;
            var cancelled = new QuoteStates(this.Session).Cancelled;

            var approve = this.Meta.Approve;
            var reject  = this.Meta.Reject;
            var order   = this.Meta.Order;
            var cancel  = this.Meta.Cancel;

            config.Deny(this.ObjectType, created, order);
            config.Deny(this.ObjectType, ordered, approve, reject, order, cancel);
            config.Deny(this.ObjectType, rejected, approve, reject, order);
            config.Deny(this.ObjectType, cancelled, cancel, reject, order);

            config.Deny(this.ObjectType, rejected, Operations.Write);
            config.Deny(this.ObjectType, ordered, Operations.Write);
            config.Deny(this.ObjectType, cancelled, Operations.Write);
        }
예제 #29
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var draft     = new QuoteItemStates(this.Session).Draft;
            var cancelled = new QuoteItemStates(this.Session).Cancelled;
            var submitted = new QuoteItemStates(this.Session).Submitted;
            var ordered   = new QuoteItemStates(this.Session).Ordered;
            var rejected  = new QuoteItemStates(this.Session).Rejected;

            var cancel = this.Meta.Cancel;
            var submit = this.Meta.Submit;
            var delete = this.Meta.Delete;

            config.Deny(this.ObjectType, submitted, submit);
            config.Deny(this.ObjectType, cancelled, cancel, submit);
            config.Deny(this.ObjectType, rejected, cancel, submit);
            config.Deny(this.ObjectType, ordered, cancel, submit, delete);

            config.Deny(this.ObjectType, cancelled, Operations.Write);
            config.Deny(this.ObjectType, ordered, Operations.Write);
        }
예제 #30
0
        protected override void BaseSecure(Security config)
        {
            var notPaid         = new SalesInvoiceStates(this.Session).NotPaid;
            var paid            = new SalesInvoiceStates(this.Session).Paid;
            var partiallyPaid   = new SalesInvoiceStates(this.Session).PartiallyPaid;
            var writtenOff      = new SalesInvoiceStates(this.Session).WrittenOff;
            var cancelled       = new SalesInvoiceStates(this.Session).Cancelled;
            var readyForPosting = new SalesInvoiceStates(this.Session).ReadyForPosting;

            var send          = this.Meta.Send;
            var cancelInvoice = this.Meta.CancelInvoice;
            var writeOff      = this.Meta.WriteOff;
            var reopen        = this.Meta.Reopen;
            var credit        = this.Meta.Credit;
            var setPaid       = this.Meta.SetPaid;
            var delete        = this.Meta.Delete;

            config.Deny(this.ObjectType, readyForPosting, reopen, credit, setPaid, writeOff);
            config.Deny(this.ObjectType, notPaid, send, cancelInvoice, reopen, delete);
            config.Deny(this.ObjectType, partiallyPaid, send, cancelInvoice, reopen, delete);
            config.Deny(this.ObjectType, paid, send, writeOff, cancelInvoice, reopen, setPaid, delete);
            config.Deny(this.ObjectType, writtenOff, send, cancelInvoice, writeOff, credit, setPaid, delete, reopen);
            config.Deny(this.ObjectType, cancelled, send, cancelInvoice, writeOff, credit, setPaid, delete);

            var except = new HashSet <IOperandType>
            {
                this.Meta.ElectronicDocuments.RoleType,
                this.Meta.Print,
                this.Meta.Credit,
            };

            config.DenyExcept(this.ObjectType, notPaid, except, Operations.Write);
            config.DenyExcept(this.ObjectType, partiallyPaid, except, Operations.Write);
            config.DenyExcept(this.ObjectType, paid, except, Operations.Write, Operations.Execute);
            config.DenyExcept(this.ObjectType, writtenOff, except, Operations.Write);
            config.DenyExcept(this.ObjectType, cancelled, except, Operations.Write);
        }
예제 #31
0
파일: WorkTasks.cs 프로젝트: Allors/allors2
        protected override void BaseSecure(Security config)
        {
            var created    = new WorkEffortStates(this.Session).Created;
            var inProgress = new WorkEffortStates(this.Session).InProgress;
            var cancelled  = new WorkEffortStates(this.Session).Cancelled;
            var completed  = new WorkEffortStates(this.Session).Completed;
            var finished   = new WorkEffortStates(this.Session).Finished;

            var cancel   = this.Meta.Cancel;
            var reopen   = this.Meta.Reopen;
            var complete = this.Meta.Complete;
            var invoice  = this.Meta.Invoice;
            var revise   = this.Meta.Revise;

            config.Deny(this.ObjectType, created, reopen, complete, invoice, revise);
            config.Deny(this.ObjectType, inProgress, cancel, reopen, revise);
            config.Deny(this.ObjectType, cancelled, cancel, invoice, complete, revise);
            config.Deny(this.ObjectType, completed, cancel, reopen, complete);
            config.Deny(this.ObjectType, finished, cancel, reopen, complete, invoice, revise);

            var except = new HashSet <IOperandType>
            {
                this.Meta.ElectronicDocuments.RoleType,
                this.Meta.Print,
            };

            config.DenyExcept(this.ObjectType, cancelled, except, Operations.Write);
            config.DenyExcept(this.ObjectType, completed, except, Operations.Write);
            config.DenyExcept(this.ObjectType, finished, except, Operations.Write);

            config.Deny(M.TimeEntry, cancelled, Operations.Write);
            config.Deny(M.TimeEntry, finished, Operations.Write);
            config.Deny(M.TimeEntry, completed, Operations.Write);
            config.Deny(M.WorkEffortAssignmentRate, cancelled, Operations.Write);
            config.Deny(M.WorkEffortAssignmentRate, finished, Operations.Write);
            config.Deny(M.WorkEffortAssignmentRate, completed, Operations.Write);
            config.Deny(M.WorkEffortInventoryAssignment, cancelled, Operations.Write);
            config.Deny(M.WorkEffortInventoryAssignment, finished, Operations.Write);
            config.Deny(M.WorkEffortInventoryAssignment, completed, Operations.Write);
            config.Deny(M.WorkEffortPartyAssignment, cancelled, Operations.Write);
            config.Deny(M.WorkEffortPartyAssignment, finished, Operations.Write);
            config.Deny(M.WorkEffortPartyAssignment, completed, Operations.Write);
            config.Deny(M.WorkEffortPurchaseOrderItemAssignment, cancelled, Operations.Write);
            config.Deny(M.WorkEffortPurchaseOrderItemAssignment, finished, Operations.Write);
            config.Deny(M.WorkEffortPurchaseOrderItemAssignment, completed, Operations.Write);
            config.Deny(M.WorkEffortFixedAssetAssignment, cancelled, Operations.Write);
            config.Deny(M.WorkEffortFixedAssetAssignment, finished, Operations.Write);
            config.Deny(M.WorkEffortFixedAssetAssignment, completed, Operations.Write);
        }
예제 #32
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var full = new[] { Operations.Read, Operations.Write, Operations.Execute };

            config.GrantAdministrator(this.ObjectType, full);

            config.GrantProcurement(this.ObjectType, full);
            config.GrantOperations(this.ObjectType, full);

            config.GrantSupplier(this.ObjectType, Meta.OrderNumber, Operations.Read);
            config.GrantSupplier(this.ObjectType, Meta.OrderDate, Operations.Read);
            config.GrantSupplier(this.ObjectType, Meta.CurrentOrderStatus, Operations.Read);
            config.GrantSupplier(this.ObjectType, Meta.CurrentPaymentStatus, Operations.Read);
            config.GrantSupplier(this.ObjectType, Meta.CurrentShipmentStatus, Operations.Read);
            config.GrantSupplier(this.ObjectType, Meta.OrderStatuses, Operations.Read);
            config.GrantSupplier(this.ObjectType, Meta.PaymentStatuses, Operations.Read);
            config.GrantSupplier(this.ObjectType, Meta.ShipmentStatuses, Operations.Read);
            config.GrantSupplier(this.ObjectType, Meta.TotalBasePrice, Operations.Read);
            config.GrantSupplier(this.ObjectType, Meta.TotalDiscount, Operations.Read);
            config.GrantSupplier(this.ObjectType, Meta.TotalSurcharge, Operations.Read);
            config.GrantSupplier(this.ObjectType, Meta.TotalExVat, Operations.Read);
            config.GrantSupplier(this.ObjectType, Meta.TotalVat, Operations.Read);
            config.GrantSupplier(this.ObjectType, Meta.TotalIncVat, Operations.Read);

            config.GrantProcurement(this.ObjectType, Meta.OrderNumber, Operations.Read);
            config.GrantProcurement(this.ObjectType, Meta.OrderDate, Operations.Read);
            config.GrantProcurement(this.ObjectType, Meta.CurrentOrderStatus, Operations.Read);
            config.GrantProcurement(this.ObjectType, Meta.CurrentPaymentStatus, Operations.Read);
            config.GrantProcurement(this.ObjectType, Meta.CurrentShipmentStatus, Operations.Read);
            config.GrantProcurement(this.ObjectType, Meta.OrderStatuses, Operations.Read);
            config.GrantProcurement(this.ObjectType, Meta.PaymentStatuses, Operations.Read);
            config.GrantProcurement(this.ObjectType, Meta.ShipmentStatuses, Operations.Read);
            config.GrantProcurement(this.ObjectType, Meta.TotalBasePrice, Operations.Read);
            config.GrantProcurement(this.ObjectType, Meta.TotalDiscount, Operations.Read);
            config.GrantProcurement(this.ObjectType, Meta.TotalSurcharge, Operations.Read);
            config.GrantProcurement(this.ObjectType, Meta.TotalExVat, Operations.Read);
            config.GrantProcurement(this.ObjectType, Meta.TotalVat, Operations.Read);
            config.GrantProcurement(this.ObjectType, Meta.TotalIncVat, Operations.Read);

            var created = new PurchaseOrderObjectStates(Session).Provisional;
            var onHold = new PurchaseOrderObjectStates(Session).OnHold;
            var requestsApproval = new PurchaseOrderObjectStates(Session).RequestsApproval;
            var inProcess = new PurchaseOrderObjectStates(Session).InProcess;
            var cancelled = new PurchaseOrderObjectStates(Session).Cancelled;
            var rejected = new PurchaseOrderObjectStates(Session).Rejected;
            var completed = new PurchaseOrderObjectStates(Session).Completed;
            var finished = new PurchaseOrderObjectStates(Session).Finished;

            var approve = Meta.Approve;
            var reject = Meta.Reject;
            var hold = Meta.Hold;
            var @continue = Meta.Continue;
            var confirm = Meta.Confirm;

            config.Deny(this.ObjectType, created, reject, approve, hold, @continue);
            config.Deny(this.ObjectType, requestsApproval, confirm, reject, approve, @continue);
            config.Deny(this.ObjectType, inProcess, confirm, reject, approve, @continue);
            config.Deny(this.ObjectType, onHold, confirm, reject, approve, hold);

            config.Deny(this.ObjectType, cancelled, Operation.Execute, Operations.Write);
            config.Deny(this.ObjectType, rejected, Operation.Execute, Operations.Write);
            config.Deny(this.ObjectType, completed, Operation.Execute, Operations.Write);
            config.Deny(this.ObjectType, finished, Operation.Execute, Operations.Write);
        }
예제 #33
0
        protected override void AppsSecure(Security config)
        {
            base.AppsSecure(config);

            var created           = new PurchaseOrderItemStates(this.Session).Created;
            var inProcess         = new PurchaseOrderItemStates(this.Session).InProcess;
            var partiallyReceived = new PurchaseOrderItemStates(this.Session).PartiallyReceived;
            var received          = new PurchaseOrderItemStates(this.Session).Received;
            var cancelled         = new PurchaseOrderItemStates(this.Session).Cancelled;
            var rejected          = new PurchaseOrderItemStates(this.Session).Rejected;
            var completed         = new PurchaseOrderItemStates(this.Session).Completed;
            var finished          = new PurchaseOrderItemStates(this.Session).Finished;

            var part = this.Meta.Part;

            config.Deny(this.ObjectType, partiallyReceived, part);
            config.Deny(this.ObjectType, received, part);

            var cancel = this.Meta.Cancel;
            var reject = this.Meta.Reject;

            // TODO: Delete
            var delete = this.Meta.Delete;

            config.Deny(this.ObjectType, created, cancel, reject);
            config.Deny(this.ObjectType, completed, delete);
            config.Deny(this.ObjectType, inProcess, delete);
            config.Deny(this.ObjectType, partiallyReceived, delete, cancel, reject);
            config.Deny(this.ObjectType, received, delete, cancel, reject);

            config.Deny(this.ObjectType, inProcess, Operations.Write);
            config.Deny(this.ObjectType, cancelled, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, rejected, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, completed, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, finished, Operations.Execute);
        }
예제 #34
0
        protected override void BaseSecure(Security config)
        {
            var itemStates       = new PurchaseOrderItemStates(this.Session);
            var created          = itemStates.Created;
            var onHold           = itemStates.OnHold;
            var cancelled        = itemStates.Cancelled;
            var rejected         = itemStates.Rejected;
            var awaitingApproval = itemStates.AwaitingApproval;
            var inProcess        = itemStates.InProcess;
            var completed        = itemStates.Completed;
            var finished         = itemStates.Finished;
            var sent             = itemStates.Sent;

            var cancel       = this.Meta.Cancel;
            var reject       = this.Meta.Reject;
            var quickReceive = this.Meta.QuickReceive;
            var reopen       = this.Meta.Reopen;
            var delete       = this.Meta.Delete;

            config.Deny(this.ObjectType, created, reopen);
            config.Deny(this.ObjectType, onHold, quickReceive, delete, reopen);
            config.Deny(this.ObjectType, awaitingApproval, cancel, reject, quickReceive, delete, reopen);
            config.Deny(this.ObjectType, inProcess, cancel, reject, delete, quickReceive, delete, reopen);
            config.Deny(this.ObjectType, completed, cancel, reject, delete);
            config.Deny(this.ObjectType, cancelled, cancel, reject);
            config.Deny(this.ObjectType, rejected, cancel, reject);

            config.Deny(this.ObjectType, inProcess, Operations.Write);
            config.Deny(this.ObjectType, cancelled, Operations.Write);
            config.Deny(this.ObjectType, rejected, Operations.Write);
            config.Deny(this.ObjectType, completed, Operations.Execute, Operations.Write);
            config.Deny(this.ObjectType, finished, Operations.Execute, Operations.Write);
        }
예제 #35
0
        protected override void BaseSecure(Security config)
        {
            var notPaid         = new SalesInvoiceStates(this.Session).NotPaid;
            var paid            = new SalesInvoiceStates(this.Session).Paid;
            var partiallyPaid   = new SalesInvoiceStates(this.Session).PartiallyPaid;
            var writtenOff      = new SalesInvoiceStates(this.Session).WrittenOff;
            var cancelled       = new SalesInvoiceStates(this.Session).Cancelled;
            var readyForPosting = new SalesInvoiceStates(this.Session).ReadyForPosting;

            var send          = this.Meta.Send;
            var cancelInvoice = this.Meta.CancelInvoice;
            var writeOff      = this.Meta.WriteOff;
            var reopen        = this.Meta.Reopen;
            var credit        = this.Meta.Credit;
            var setPaid       = this.Meta.SetPaid;
            var delete        = this.Meta.Delete;

            config.Deny(this.ObjectType, readyForPosting, reopen, credit, setPaid, writeOff);
            config.Deny(this.ObjectType, notPaid, send, cancelInvoice, reopen, delete);
            config.Deny(this.ObjectType, partiallyPaid, send, cancelInvoice, reopen, delete);
            config.Deny(this.ObjectType, paid, send, writeOff, cancelInvoice, reopen, setPaid, delete);
            config.Deny(this.ObjectType, writtenOff, send, cancelInvoice, writeOff, credit, setPaid, delete, reopen);
            config.Deny(this.ObjectType, cancelled, send, cancelInvoice, writeOff, credit, setPaid, delete);

            config.Deny(this.ObjectType, notPaid, Operations.Write);
            config.Deny(this.ObjectType, partiallyPaid, Operations.Write);
            config.Deny(this.ObjectType, paid, Operations.Write, Operations.Execute);
            config.Deny(this.ObjectType, writtenOff, Operations.Write);
            config.Deny(this.ObjectType, cancelled, Operations.Write);
        }