コード例 #1
0
 public RestrictedActionAttribute(
     PermissionResourceTypeEnum resourceType,
     PermissionActionEnum action,
     bool childAction = false)
 {
     _permissionSettingIdentity = PermissionSettingIdentity.Of(action, resourceType);
     _childAction = childAction;
 }
コード例 #2
0
ファイル: GroupService.cs プロジェクト: nielshenriksen/Uintra
 public bool ValidatePermission(IPublishedContent content)
 {
     if (content.DocumentTypeAlias == GroupsCreatePage)
     {
         var hasPermission = _permissionsService.Check(PermissionSettingIdentity.Of(PermissionActionEnum.Create, PermissionResourceType));
         return(hasPermission);
     }
     return(true);
 }
コード例 #3
0
ファイル: GroupService.cs プロジェクト: nielshenriksen/Uintra
        public bool CanPerform(GroupModel group, Enum action, Enum administrationAction)
        {
            var currentMember = _intranetMemberService.GetCurrentMember();
            var ownerId       = group.CreatorId;
            var isOwner       = ownerId == currentMember.Id;

            var act    = isOwner ? action : administrationAction;
            var result = _permissionsService.Check(currentMember, PermissionSettingIdentity.Of(act, PermissionResourceType));

            return(result);
        }
コード例 #4
0
        private static PermissionUpdateModel CreatePermission(
            IntranetMemberGroup group,
            Resource resource,
            PermissionActionEnum action,
            bool allowed = true, bool enabled = true)
        {
            var identity = PermissionSettingIdentity.Of(action, resource);
            var settings = PermissionSettingValues.Of(allowed, enabled);

            return(PermissionUpdateModel.Of(group, settings, identity));
        }
コード例 #5
0
        public RestrictedActionAttribute(int resourceType, int action, bool childAction = false)
        {
            var permissionActionTypeProvider   = DependencyResolver.Current.GetService <IPermissionActionTypeProvider>();
            var permissionResourceTypeProvider = DependencyResolver.Current.GetService <IPermissionResourceTypeProvider>();

            _permissionSettingIdentity = PermissionSettingIdentity.Of(
                permissionActionTypeProvider[action],
                permissionResourceTypeProvider[resourceType]);

            _childAction = childAction;
        }
コード例 #6
0
        protected virtual bool CanPerform(IIntranetActivity activity, PermissionActionEnum action, PermissionActionEnum administrationAction)
        {
            var currentMember = _intranetMemberService.GetCurrentMember();
            var ownerId       = ((IHaveOwner)activity).OwnerId;
            var isOwner       = ownerId == currentMember.Id;

            var act    = isOwner ? action : administrationAction;
            var result = _permissionsService.Check(currentMember, PermissionSettingIdentity.Of(act, PermissionActivityType));

            return(result);
        }
        public static IEnumerable <PermissionSettingSchema> BuildTree(Enum resource, ITree <Enum> actionTree)
        {
            var treeWithParents = actionTree
                                  .WithAttachedParents()
                                  .Flatten();

            var settings = treeWithParents.Select(hierarchicalItem =>
                                                  PermissionSettingSchema.Of(
                                                      PermissionSettingIdentity.Of(hierarchicalItem.current, resource),
                                                      hierarchicalItem.parent));

            return(settings);
        }
コード例 #8
0
        public virtual GroupPermissionsViewModel Save(PermissionUpdateViewModel update)
        {
            var settingIdentity = PermissionSettingIdentity.Of(
                _actionTypeProvider[update.ActionId],
                _resourceTypeProvider[update.ResourceTypeId]);
            var settingValue = PermissionSettingValues.Of(update.Allowed, update.Enabled);
            var targetGroup  = _intranetMemberGroupProvider[update.IntranetMemberGroupId];

            var mappedUpdate = PermissionUpdateModel.Of(targetGroup, settingValue, settingIdentity);

            _permissionsService.Save(mappedUpdate);

            return(Get(update.IntranetMemberGroupId));
        }
コード例 #9
0
        public override void OnActionExecuting(ActionExecutingContext filterContext)
        {
            if (Skip(filterContext))
            {
                return;
            }

            var permissionsService = HttpContext.Current.GetService <IPermissionsService>();
            var isUserHasAccess    = permissionsService.Check(PermissionSettingIdentity.Of(_action, _permissionResourceType));

            if (!isUserHasAccess)
            {
                var context = filterContext.Controller.ControllerContext.HttpContext;
                Deny(context);
            }
        }
コード例 #10
0
        public virtual ActionResult OwnerEdit(Guid ownerId, string ownerIdPropertyName, PermissionResourceTypeEnum activityType, IActivityCreateLinks links)
        {
            var model = new IntranetActivityOwnerEditModel
            {
                Owner = _intranetMemberService.Get(ownerId).Map <MemberViewModel>(),
                OwnerIdPropertyName = ownerIdPropertyName,
                Links = links
            };

            model.CanEditOwner = _permissionsService.Check(activityType, PermissionActionEnum.EditOwner);

            if (model.CanEditOwner)
            {
                model.Members = GetUsersWithAccess(PermissionSettingIdentity.Of(PermissionActionEnum.Create, activityType));
            }

            return(PartialView(OwnerEditViewPath, model));
        }
コード例 #11
0
 public ContentRestrictedActionApiAttribute(PermissionResourceTypeEnum resourceType, PermissionActionEnum action)
 {
     _permissionSettingIdentity = PermissionSettingIdentity.Of(action, resourceType);
 }