예제 #1
0
        private static PermissionContract GetPermissionContract(UM_Resource resource, Guid groupID, Guid projectID)
        {
            var session = Hb8Factory.InitSession();

            var permission = (from n in session.Query <UM_Permission>()
                              where n.DateDeleted == null &&
                              n.GroupID == groupID &&
                              n.ResourceID == resource.ID
                              orderby n.RuleValue descending
                              select n).FirstOrDefault();

            if (permission != null)
            {
                return(permission.ToContract(projectID));
            }

            if (resource.Parent == null)
            {
                var newPemission = new UM_Permission
                {
                    ID          = Guid.NewGuid(),
                    GroupID     = groupID,
                    ResourceID  = resource.ID,
                    RuleValue   = (int)RulePermissionsEnum.View,
                    DateCreated = DateTime.Now
                };

                session.SubmitInsert(newPemission);

                return(newPemission.ToContract(projectID));
            }

            return(GetPermissionContract(resource.Parent, groupID, projectID));
        }
예제 #2
0
        private static PermissionContract GetPermissionContract(UM_Resource resource, Guid groupID, Guid projectID)
        {
            using (var db = DcFactory.Create <UserManagementDataContext>())
            {
                var permission = (from n in db.UM_Permissions
                                  where n.DateDeleted == null &&
                                  n.GroupID == groupID &&
                                  n.ResourceID == resource.ID
                                  orderby n.RuleValue descending
                                  select n).FirstOrDefault();

                if (permission != null)
                {
                    return(permission.ToContract(projectID));
                }

                if (resource.Parent == null)
                {
                    var newPemission = new UM_Permission();

                    newPemission.ID          = Guid.NewGuid();
                    newPemission.GroupID     = groupID;
                    newPemission.ResourceID  = resource.ID;
                    newPemission.RuleValue   = (int)RulePermissionsEnum.View;
                    newPemission.DateCreated = DateTime.Now;

                    db.UM_Permissions.InsertOnSubmit(newPemission);
                    db.SubmitChanges();

                    return(newPemission.ToContract(projectID));
                }

                return(GetPermissionContract(resource.Parent, groupID, projectID));
            }
        }