Exemplo n.º 1
0
        public IRoleCommand CreateRole(string roleName)
        {
            var role = new Role(RoleIdentifier.of(roleName));

            repository.Save(role);
            return(new RoleCommand(role, repository));
        }
        public void ImportAuthorities(string data, params Role[] roles)
        {
            var import = new Import <RoleAuthority>()
                         .New(row => new RoleAuthority(new Role(RoleIdentifier.of(row["RoleName"].ToString())), new Function()))
                         .Map((obj, row) => obj.Function.Area            = row["Area"].ToString())
                         .Map((obj, row) => obj.Function.Controller      = row["Controller"].ToString())
                         .Map((obj, row) => obj.Function.Action          = row["Action"].ToString())
                         .Map((obj, row) => obj.Function.Description     = row["Description"].ToString())
                         .Map((obj, row) => obj.Function.MenuAction      = row["MenuAction"].ToString())
                         .Map((obj, row) => obj.Function.MenuDescription = row["MenuDescription"].ToString())
                         .Map((obj, row) => obj.Function.Group           = row["Group"].ToString())
                         .Map((obj, row) => obj.Function.GroupIco        = row["GroupIco"].ToString());
            var authoritiesForRoles = import.MapTo(data);

            //保存功能到数据库
            repository.Save(authoritiesForRoles.Select(x => x.Function));

            //保存授权
            foreach (var role in roles)
            {
                foreach (var item in authoritiesForRoles)
                {
                    var roleNames = item.Id.RoleId.RoleName.Split(new[] { '|' }, StringSplitOptions.RemoveEmptyEntries);
                    role.AddAuthority(new RoleAuthority(role, item.Function)
                    {
                        IsAuthorized = roleNames.Contains(role.Id.RoleName)
                    });
                }
            }
        }
Exemplo n.º 3
0
 protected static RoleIdentifier 角色(string roleName)
 {
     return(RoleIdentifier.of(roleName));
 }