Ejemplo n.º 1
0
        internal static void SaveDossierTypeTrees()
        {
            var dc        = Model.Common.ArchiveCommonDataClassesDataContext.GetNewInstance();
            var archiveDc = Model.Archive.ArchiveDataClassesDataContext.GetNewInstance();

            foreach (var item in archiveDc.DossierTypes)
            {
                var query = dc.AccessPermissionTrees.Where(t => t.Item == Setting.User.ThisProgram.GetAccessPermissionUnitGroupName(Setting.User.AccessPermissionUnits.DossierType));
                if (query.Count() == 0)
                {
                    Model.Common.AccessPermissionTree tree = Model.Common.AccessPermissionTree.GetNewInstance(Setting.User.ThisProgram.GetAccessPermissionUnitGroupName(Setting.User.AccessPermissionUnits.DossierType), null, "سطح دسترسی پرونده ها", true, false);
                    dc.AccessPermissionTrees.InsertOnSubmit(tree);
                    dc.SubmitChanges();
                }
                var accessPermissionTreeQuery = dc.AccessPermissionTrees.Where(t => t.Group == Setting.User.ThisProgram.GetAccessPermissionUnitGroupName(Setting.User.AccessPermissionUnits.DossierType) && t.Item == item.ID.ToString());
                if (accessPermissionTreeQuery.Count() > 0)
                {
                    Model.Common.AccessPermissionTree originalTree = accessPermissionTreeQuery.Single();
                    Model.Common.AccessPermissionTree tree         = Model.Common.AccessPermissionTree.GetNewInstance(item.ID.ToString(), Setting.User.ThisProgram.GetAccessPermissionUnitGroupName(Setting.User.AccessPermissionUnits.DossierType), item.Title, true, false);
                    Model.Common.AccessPermissionTree.Copy(originalTree, tree);
                    dc.SubmitChanges();
                }
                else
                {
                    Model.Common.AccessPermissionTree tree = Model.Common.AccessPermissionTree.GetNewInstance(item.ID.ToString(), Setting.User.ThisProgram.GetAccessPermissionUnitGroupName(Setting.User.AccessPermissionUnits.DossierType), item.Title, true, false);
                    dc.AccessPermissionTrees.InsertOnSubmit(tree);
                    dc.SubmitChanges();
                }
            }
        }
Ejemplo n.º 2
0
        public bool CheckUserAccessPermission(Model.Common.User membership, string item, string group)
        {
            Model.Common.ArchiveCommonDataClassesDataContext dc = new Model.Common.ArchiveCommonDataClassesDataContext(Setting.Sql.ThisProgram.DatabaseConnection.ConnectionString);

            int roleCode = GetMembershipRoleCode(membership);

            IQueryable <Model.Common.AccessPermissionTree> trees;

            if (group != null)
            {
                trees = dc.AccessPermissionTrees.Where(t => t.Item == item && t.Group == group);
            }
            else
            {
                trees = dc.AccessPermissionTrees.Where(t => t.Item == item);
            }
            if (trees.Count() != 1)
            {
                return(false);
            }
            var accessPermissionTree = trees.Single();

            Model.Common.AccessPermissionTree tempTree = accessPermissionTree;
            while (tempTree.Group != null)
            {
                var    groupTrees = dc.AccessPermissionTrees.Where(t => t.Item == tempTree.Group);
                var    accessPermissionTreeGroup = groupTrees.Single();
                string groupItemCode             = HashData("mahba3905" + accessPermissionTreeGroup.Item);
                if (GetRoleAccessPermission(roleCode, groupItemCode) == false)
                {
                    return(false);
                }
                //if (GetMembershipAccessPermission(membership.Code, groupItemCode) == false)
                //    return false;
                tempTree = accessPermissionTreeGroup;
            }

            string itemCode = HashData("mahba3905" + item);

            if (GetRoleAccessPermission(roleCode, itemCode) == false)
            {
                return(false);
            }
            return(true);
            //return GetMembershipAccessPermission(membership.Code, itemCode);
        }