Ejemplo n.º 1
0
        private static EntityTypeBuilder <PermissionCategory> SeedGlobalPermCats(EntityTypeBuilder <PermissionCategory> builder)
        {
            // Create PermissionCategory objects, and then add or update them on startup.
            var categoriesDict = new Dictionary <PermissionCategoryEnum, PermissionCategory>();

            foreach (PermissionCategoryEnum e in Enum.GetValues(typeof(PermissionCategoryEnum)))
            {
                var pc      = new PermissionCategory(e);
                var attribs = GetCustomAttributes(typeof(PermissionCategoryEnum), e.ToString());

                pc.IsObsolete = attribs.Any(a => a is ObsoleteAttribute);
                try
                {
                    pc.Name = attribs.OfType <DisplayAttribute>().First().Name;
                }
                catch
                {
                    throw new Exception($"PermissionCategoryEnum {e} did not have required DisplayAttribute.");
                }

                if (!categoriesDict.TryAdd(pc.Id, pc))
                {
                    throw new Exception("PermissionCategoryEnum seeding failed, multiple enums with same underlying value.");
                }
            }
            foreach (var cat in categoriesDict.Values)
            {
                builder.HasData(cat);
            }
            return(builder);
        }
Ejemplo n.º 2
0
 public void CheckPermission(PermissionCategory perm, PERMISSION_MASK mask, string deniedMessage)
 {
     if (!HasPermission(perm, mask))
     {
         throw new NoPermissionException(perm, mask, deniedMessage);
     }
 }
Ejemplo n.º 3
0
        public Boolean Create(PermissionCategory model)
        {
            try
            {
                DateTime now;
                Int32    id;

                now = DateTime.Now;

                id = GetPCId();

                model.PC_Id = id;

                if (null == model.PC_Level)
                {
                    model.PC_Level = String.Format("{0:D4}", model.PC_Id);
                }

                olsEni.PermissionCategories.Add(model);
                olsEni.SaveChanges();

                UpdatePermission(model);

                return(true);
            }
            catch (Exception ex)
            {
                StaticHelper.RecordSystemLog(ex);
                return(false);
            }
        }
Ejemplo n.º 4
0
        public Boolean Edit(PermissionCategory model)
        {
            try
            {
                DateTime now;

                now = DateTime.Now;

                if (null == model.PC_Level)
                {
                    model.PC_Level = String.Format("{0:D4}", model.PC_Id);
                }

                olsEni.Entry(model).State = EntityState.Modified;
                olsEni.SaveChanges();

                UpdatePermission(model);

                return(true);
            }
            catch (Exception ex)
            {
                StaticHelper.RecordSystemLog(ex);
                return(false);
            }
        }
Ejemplo n.º 5
0
        private void UpdatePermission(PermissionCategory model)
        {
            Int32                   id, recycleBinPCId;
            Configuration           config;
            AppSettingsSection      appseting;
            Permission              p;
            List <ActionPermission> aps;
            List <Permission>       ps;

            config         = WebConfigurationManager.OpenWebConfiguration("/");
            appseting      = (AppSettingsSection)config.GetSection("appSettings");
            recycleBinPCId = Convert.ToInt32(appseting.Settings["RecycleBinPermissionCategoryId"].Value);

            // 先清除已选择的权限记录
            ps = olsEni.Permissions.Where(m => m.PC_Id == model.PC_Id).ToList();
            foreach (var p1 in ps)
            {
                p1.PC_Id = recycleBinPCId;
            }
            olsEni.SaveChanges();

            aps = (List <ActionPermission>)JsonConvert.DeserializeObject <List <ActionPermission> >(model.PC_Permissions);

            id = GetPId();

            foreach (var ap in aps)
            {
                p = olsEni
                    .Permissions
                    .SingleOrDefault(m =>
                                     m.P_Controller == ap.ControllerName &&
                                     m.P_Action == ap.ActionName &&
                                     m.P_Name == ap.Description);

                // 不重复插入权限记录,如果已存在权限记录将重设其权限目录
                if (null == p)
                {
                    olsEni.Permissions.Add(new Permission
                    {
                        P_Id         = id,
                        PC_Id        = model.PC_Id,
                        P_Name       = ap.Description,
                        P_Controller = ap.ControllerName,
                        P_Action     = ap.ActionName,
                        P_AddTime    = now
                    });

                    id += 1;
                }
                else
                {
                    p.PC_Id = model.PC_Id;
                    olsEni.Entry(p).State = EntityState.Modified;
                }
            }
            olsEni.SaveChanges();
        }
Ejemplo n.º 6
0
        public ActionResult Delete(int permissionCategoryId)
        {
            PermissionCategory deletedPermissionCategory = accountRepository.DeletePermissionCategory(permissionCategoryId);

            if (deletedPermissionCategory != null)
            {
                TempData["message"] = MessageHelper.BuildMessage(EnumSevereLevel.Success, string.Format("{0} was deleted!", deletedPermissionCategory.PermissionCategoryName));
            }
            return(RedirectToAction("List"));
        }
Ejemplo n.º 7
0
        /// <summary>
        /// Obtain  the    Assigned   and  Unassigned  PermissionsB  by  permissiongroupId
        /// </summary>
        /// <param name="permissiongroupId">permissiongroup Id</param>
        private void Prepare4AssignPermissiongroupPermissions(int permissiongroupId)
        {
            PermissionCategory permissionCategory = Prepare4AssignPermissions();

            if (permissionCategory != null)
            {
                ViewBag.AssignedPermissions   = base.genericMgr.FindAll <Permission>(selectPermissionsByPermissionGroupIdAndCategory, new object[] { permissionCategory.Code, permissiongroupId });
                ViewBag.UnAssignedPermissions = base.genericMgr.FindAll <Permission>(selectPermissionsNotInPermissionGroupsByCategory, new object[] { permissionCategory.Code, permissiongroupId, permissionCategory.Code });
            }
        }
Ejemplo n.º 8
0
        public static PERMISSION_TYPE GetPermissionType(PermissionCategory mask)
        {
            var boolTypes = new PermissionCategory[] { PermissionCategory.SPARC_EXPLORER, PermissionCategory.SPIN_EXPLORER, PermissionCategory.IMPORT_MATERIAL, PermissionCategory.IMPORT_REFERENCES, PermissionCategory.IMPORT_DELTA };

            if (boolTypes.Contains(mask))
            {
                return(PERMISSION_TYPE.ALLOWDISALLOW);
            }

            return(PERMISSION_TYPE.RWDIU);
        }
Ejemplo n.º 9
0
        public static string GetDescriptionForPermission(PermissionCategory perm)
        {
            byte prefix = (byte)((((int)perm) & 0xFF00) >> 8);

            if (_groupDescriptions.ContainsKey(prefix))
            {
                return(_groupDescriptions[prefix]);
            }

            throw new Exception("Unrecognized permission prefix: " + prefix);
        }
Ejemplo n.º 10
0
 public override int GetHashCode()
 {
     if (UserId != 0 && PermissionCode != null && PermissionCategory != null)
     {
         return(UserId.GetHashCode() ^ PermissionCode.GetHashCode() ^ PermissionCategory.GetHashCode());
     }
     else
     {
         return(base.GetHashCode());
     }
 }
        public PermissionCategory DeletePermissionCategory(int permissionCategoryId)
        {
            PermissionCategory dbEntry = context.PermissionCategories.Find(permissionCategoryId);

            if (dbEntry != null)
            {
                context.PermissionCategories.Remove(dbEntry);
                context.SaveChanges();
            }
            return(dbEntry);
        }
Ejemplo n.º 12
0
        public ActionResult Create(PermissionCategory m)
        {
            if (ModelState.IsValid)
            {
                if (um.Create(m))
                {
                    return(Redirect("/Contents/html/parent_reload.htm"));
                }
            }

            ViewBag.ActionPermissions = StaticHelper.GetActionPermission();

            return(View(m));
        }
Ejemplo n.º 13
0
        public int GetPermissionMask(PermissionCategory PermissionID)
        {
            if (IsSysAdmin)
            {
                return(0xFFFFFF);
            }

            if (_permissions != null && _permissions.ContainsKey(PermissionID))
            {
                return(_permissions[PermissionID].Mask1);
            }

            return(0);
        }
Ejemplo n.º 14
0
        public bool HasPermission(PermissionCategory perm, PERMISSION_MASK mask)
        {
            if (IsSysAdmin)
            {
                return(true);
            }

            if (_permissions != null && _permissions.ContainsKey(perm))
            {
                var val = _permissions[perm];
                return((val.Mask1 & (int)mask) != 0);
            }

            return(false);
        }
Ejemplo n.º 15
0
 public ActionResult Edit(PermissionCategory permissionCategory)
 {
     if (ModelState.IsValid)
     {
         accountRepository.SavePermissionCategory(permissionCategory);
         TempData["message"] = MessageHelper.BuildMessage(EnumSevereLevel.Success, string.Format("{0} has been saved!", permissionCategory.PermissionCategoryName));
         return(RedirectToAction("List"));
     }
     else
     {
         //There is something wrong with the data values
         TempData["message"] = MessageHelper.BuildMessage(EnumSevereLevel.Error, "There is something wrong with the data values, please check!");
         return(View(permissionCategory));
     }
 }
Ejemplo n.º 16
0
        private void Prepare4AssignUserPermissions(int userId)
        {
            PermissionCategory permissionCategory = base.Prepare4AssignPermissions();

            if (permissionCategory != null)
            {
                IList <Permission> assignedPermissionList   = base.genericMgr.FindAll <Permission>(selectPermissionsByUserIdAndCategory, new object[] { permissionCategory.Code, userId });
                IList <Permission> unAssignedPermissionList = base.genericMgr.FindAll <Permission>(selectPermissionsNotInUserByCategory, new object[] { permissionCategory.Code, userId, permissionCategory.Code });

                base.TranslatePermission(assignedPermissionList);
                base.TranslatePermission(unAssignedPermissionList);

                ViewBag.AssignedPermissions   = assignedPermissionList;
                ViewBag.UnAssignedPermissions = unAssignedPermissionList.OrderBy(p => p.Code);
            }
        }
Ejemplo n.º 17
0
        public PermissionCategory GetNew()
        {
            PermissionCategory model;

            model = new PermissionCategory()
            {
                PC_Id          = 0,
                PC_Name        = "",
                PC_Permissions = "[]",
                PC_Remark      = "",
                PC_AddTime     = DateTime.Now,
                PC_Status      = (Byte)Status.Available
            };

            return(model);
        }
 public void SavePermissionCategory(PermissionCategory permissionCategory)
 {
     if (permissionCategory.PermissionCategoryId == 0)
     {
         context.PermissionCategories.Add(permissionCategory);
     }
     else
     {
         PermissionCategory dbEntry = context.PermissionCategories.Find(permissionCategory.PermissionCategoryId);
         if (dbEntry != null)
         {
             dbEntry.PermissionCategoryName = permissionCategory.PermissionCategoryName;
             dbEntry.Sequence = permissionCategory.Sequence;
         }
     }
     context.SaveChanges();
 }
 public virtual void CreatePermissionCategory(PermissionCategory entity)
 {
     entityDao.CreatePermissionCategory(entity);
 }
        internal void DeleteNode(SiteExplorerNodeViewModel node, Func <DatabaseCommand> actionFactory, PermissionCategory permCategory)
        {
            if (!node.IsDeleted)
            {
                if (!User.HasPermission(permCategory, PERMISSION_MASK.DELETE))
                {
                    ErrorMessage.Show("You do not have permission to delete this item!");
                    return;
                }

                node.Traverse((child) => {
                    child.IsDeleted = true;
                });

                if (actionFactory != null)
                {
                    RegisterPendingChange(actionFactory(), this);
                }
            }
        }
 public virtual void DeletePermissionCategory(PermissionCategory entity)
 {
     entityDao.DeletePermissionCategory(entity);
 }
 public virtual void UpdatePermissionCategory(PermissionCategory entity)
 {
     entityDao.UpdatePermissionCategory(entity);
 }
 public PermissionBuilder Add(PermissionCategory category, PERMISSION_MASK mask)
 {
     _required.Add(new BasicRequiredPermission(category, mask));
     return(this);
 }
Ejemplo n.º 24
0
        public ViewResult Edit(int permissionCategoryId)
        {
            PermissionCategory permissionCategory = accountRepository.PermissionCategories.FirstOrDefault(p => p.PermissionCategoryId == permissionCategoryId);

            return(View(permissionCategory));
        }
Ejemplo n.º 25
0
        private void EditNode(SiteExplorerNodeViewModel node, Func<bool, DatabaseCommandControl> editorFactory, PermissionCategory permCategory)
        {
            if (node.ElemID < 0) {
                ErrorMessage.Show("You must first apply the changes before editing the details of this item!");
                return;
            } else {
                var readOnly = !User.HasPermission(permCategory, PERMISSION_MASK.UPDATE);
                var editor = editorFactory(readOnly);
                string caption = "";

                var readOnlyStr = readOnly ? "(Read Only)" : "";
                if (node.IsTemplate) {
                    caption = string.Format("{0} Template [{1}] {2}", node.NodeType.ToString(), node.ElemID, readOnlyStr);
                } else {
                    caption = string.Format("{0} Detail {1} [{2}] {3}", node.NodeType.ToString(), node.Name, node.ElemID, readOnlyStr);
                }

                PluginManager.Instance.AddNonDockableContent(Owner, editor, caption, SizeToContent.Manual);
            }
        }
Ejemplo n.º 26
0
        public static DataSet GetPermissionsByCategory(int categoryID)
        {
            PermissionCategory category = new PermissionCategory(PubConstant.ConnectionString);

            return(category.GetPermissionsInCategory(categoryID));
        }
Ejemplo n.º 27
0
Archivo: User.cs Proyecto: kehh/biolink
 public NoPermissionException(PermissionCategory permissionCategory, PERMISSION_MASK mask, string deniedMessage = "")
     : base(String.Format("You do not have permission to perform this operation: {0} :: {1}", permissionCategory.ToString(), mask.ToString()))
 {
     this.PermissionCategory = permissionCategory;
     this.RequestedMask = mask;
     this.DeniedMessage = deniedMessage;
 }
Ejemplo n.º 28
0
 public NoPermissionException(PermissionCategory permissionCategory, PERMISSION_MASK mask, string deniedMessage = "") : base(String.Format("You do not have permission to perform this operation: {0} :: {1}", permissionCategory.ToString(), mask.ToString()))
 {
     this.PermissionCategory = permissionCategory;
     this.RequestedMask      = mask;
     this.DeniedMessage      = deniedMessage;
 }
Ejemplo n.º 29
0
Archivo: User.cs Proyecto: kehh/biolink
        public bool HasPermission(PermissionCategory perm, PERMISSION_MASK mask)
        {
            if (IsSysAdmin) {
                return true;
            }

            if (_permissions != null && _permissions.ContainsKey(perm)) {
                var val = _permissions[perm];
                return (val.Mask1 & (int)mask) != 0;
            }

            return false;
        }
Ejemplo n.º 30
0
Archivo: User.cs Proyecto: kehh/biolink
        public int GetPermissionMask(PermissionCategory PermissionID)
        {
            if (IsSysAdmin) {
                return 0xFFFFFF;
            }

            if (_permissions != null && _permissions.ContainsKey(PermissionID)) {
                return _permissions[PermissionID].Mask1;
            }

            return 0;
        }
 public virtual void UpdatePermissionCategory(PermissionCategory entity)
 {
     entityDao.UpdatePermissionCategory(entity);
 }
        private void EditNode(SiteExplorerNodeViewModel node, Func <bool, DatabaseCommandControl> editorFactory, PermissionCategory permCategory)
        {
            if (node.ElemID < 0)
            {
                ErrorMessage.Show("You must first apply the changes before editing the details of this item!");
                return;
            }
            else
            {
                var    readOnly = !User.HasPermission(permCategory, PERMISSION_MASK.UPDATE);
                var    editor   = editorFactory(readOnly);
                string caption  = "";

                var readOnlyStr = readOnly ? "(Read Only)" : "";
                if (node.IsTemplate)
                {
                    caption = string.Format("{0} Template [{1}] {2}", node.NodeType.ToString(), node.ElemID, readOnlyStr);
                }
                else
                {
                    caption = string.Format("{0} Detail {1} [{2}] {3}", node.NodeType.ToString(), node.Name, node.ElemID, readOnlyStr);
                }

                PluginManager.Instance.AddNonDockableContent(Owner, editor, caption, SizeToContent.Manual);
            }
        }
Ejemplo n.º 33
0
        internal void DeleteNode(SiteExplorerNodeViewModel node, Func<DatabaseCommand> actionFactory, PermissionCategory permCategory)
        {
            if (!node.IsDeleted) {

                if (!User.HasPermission(permCategory, PERMISSION_MASK.DELETE)) {
                    ErrorMessage.Show("You do not have permission to delete this item!");
                    return;
                }

                node.Traverse((child) => {
                    child.IsDeleted = true;
                });

                if (actionFactory != null) {
                    RegisterPendingChange(actionFactory(), this);
                }
            }
        }
 public virtual void CreatePermissionCategory(PermissionCategory entity)
 {
     entityDao.CreatePermissionCategory(entity);
 }
Ejemplo n.º 35
0
        public static DataSet GetPermissionsByCategory(int categoryID)
        {
            PermissionCategory category = new PermissionCategory();

            return(category.GetPermissionsInCategory(categoryID));
        }
 public virtual void DeletePermissionCategory(PermissionCategory entity)
 {
     entityDao.DeletePermissionCategory(entity);
 }
Ejemplo n.º 37
0
Archivo: User.cs Proyecto: kehh/biolink
        public static string GetDescriptionForPermission(PermissionCategory perm)
        {
            byte prefix = (byte) ((((int) perm) & 0xFF00) >> 8);
            if (_groupDescriptions.ContainsKey(prefix)) {
                return _groupDescriptions[prefix];
            }

            throw new Exception("Unrecognized permission prefix: " + prefix);
        }
Ejemplo n.º 38
0
        public static DataSet GetAllCategories()
        {
            PermissionCategory category = new PermissionCategory();

            return(category.GetCategoryList());
        }
Ejemplo n.º 39
0
Archivo: User.cs Proyecto: kehh/biolink
        public static PERMISSION_TYPE GetPermissionType(PermissionCategory mask)
        {
            var boolTypes = new PermissionCategory[] { PermissionCategory.SPARC_EXPLORER,PermissionCategory.SPIN_EXPLORER, PermissionCategory.IMPORT_MATERIAL, PermissionCategory.IMPORT_REFERENCES, PermissionCategory.IMPORT_DELTA  };

            if (boolTypes.Contains(mask)) {
                return PERMISSION_TYPE.ALLOWDISALLOW;
            }

            return PERMISSION_TYPE.RWDIU;
        }
Ejemplo n.º 40
0
        public static DataSet GetAllCategories()
        {
            PermissionCategory category = new PermissionCategory(PubConstant.ConnectionString);

            return(category.GetCategoryList());
        }
Ejemplo n.º 41
0
Archivo: User.cs Proyecto: kehh/biolink
 public void CheckPermission(PermissionCategory perm, PERMISSION_MASK mask, string deniedMessage)
 {
     if (!HasPermission(perm, mask)) {
         throw new NoPermissionException(perm, mask, deniedMessage);
     }
 }