Exemple #1
0
        public int Insert(SqlTransaction trans)
        {
            if (!CanInsert(this.UserName))
            {
                throw new AccessException(this.UserName, "Insert");
            }

            AccessObject aObject = new AccessObject(ConstantCode.CONNECTION_STRING);

            aObject.Id            = Guid.NewGuid();
            aObject.Name          = this._name;
            aObject.ObjectTypeId  = ObjectTypeID;
            aObject.ObjectStateId = StateIDAll;
            this._objectID        = aObject.Insert(trans);

            string spName = "usp_CityObjects_Insert";
            CityObjectsParamsHelper helper = new CityObjectsParamsHelper(this);

            helper.InitParamsForSP(spName);
            SqlParameter[] parameters = helper.ParamList.Params;
            SPHelper.ExecuteNonQuery(trans, spName, parameters);
            helper.SetPropValues();

            return(this._id);
        }
Exemple #2
0
        private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            LoadObjectsAsyncParams loadParams = (LoadObjectsAsyncParams)e.Argument;

            AccessIO.BackupHelper backup = new AccessIO.BackupHelper(loadParams.App.FileName);
            backup.DoBackUp();
            string currentObjectName = null;

            try {
                List <IObjecOptions> selectedObjects = loadParams.SelectedObjects;
                int i = 0;
                foreach (IObjecOptions currentObject in selectedObjects)
                {
                    currentObjectName = currentObject.Name;
                    ((BackgroundWorker)sender).ReportProgress(i++ *100 / selectedObjects.Count, currentObject);
                    AccessObject accessObject = AccessObject.CreateInstance(loadParams.App, currentObject.ObjectType, currentObject.ToString());
                    accessObject.Options = currentObject.Options;
                    accessObject.Load(currentObjectName);
                }
                backup.Commit();
                e.Result = selectedObjects.Count;
            } catch (Exception ex) {
                backup.RollBack();
                string msg = String.Format(Properties.Resources.ErrorLoadingObject, currentObjectName, ex.Message);
                throw new Exception(msg, ex);
            }
        }
Exemple #3
0
        //function for the REST API Calls (Access Token)
        public static object MakeRequest(string RequestURL, string ContentType, string Method, string AuthHeader, bool ReturnAccessToken = false)
        {
            //builds request
            HttpWebRequest request = (HttpWebRequest)HttpWebRequest.Create(RequestURL);

            request.ContentType = ContentType;
            request.Method      = Method;
            //passes in clientid+secret
            request.Headers.Add(HttpRequestHeader.Authorization, AuthHeader);

            using (HttpWebResponse response = request.GetResponse() as HttpWebResponse)
            {
                if (response.StatusCode != HttpStatusCode.OK)
                {
                    Console.Out.WriteLine("Error fetching data. Server returned status code: {0}", response.StatusCode);
                }
                //reads response
                using (StreamReader reader = new StreamReader(response.GetResponseStream()))
                {
                    var content = reader.ReadToEnd();

                    if (ReturnAccessToken)
                    {
                        AccessObject Token = JsonConvert.DeserializeObject <AccessObject>(content);
                        return(Token);
                    }
                    return(response);
                }
            }
        }
        private bool ExportContentAccess(int channelId, List <int> contentIdArrayList, List <string> displayAttributes, bool isPeriods, string dateFrom, string dateTo, ETriState checkedState, out string fileName)
        {
            var nodeInfo = ChannelManager.GetChannelInfo(SiteId, channelId);

            fileName = $"{nodeInfo.ChannelName}.mdb";
            var filePath = PathUtils.GetTemporaryFilesPath(fileName);

            return(AccessObject.CreateAccessFileForContents(filePath, SiteInfo, nodeInfo, contentIdArrayList, displayAttributes, isPeriods, dateFrom, dateTo, checkedState));
        }
Exemple #5
0
        /// <summary>
        /// 登录
        /// </summary>
        /// <param name="asynchronousClient"></param>
        private static void login(AsynchronousClient asynchronousClient)
        {
            AccessObject accessObject = new AccessObject();

            accessObject.AccessKeyId     = "user1";
            accessObject.CurrentTimeSpan = Parse.DT2TS(DateTime.Now);
            accessObject.Sign            = MD5Helper.Sign(accessObject.AccessKeyId + accessObject.CurrentTimeSpan + "password1");
            Console.WriteLine($"我准备登录");
            asynchronousClient.Send(accessObject, MsgOperation.登录校验);
        }
Exemple #6
0
        /// <summary>
        /// Save the selected objects to the <see cref="AccessApp.WorkingCopyPath"/> path
        /// </summary>
        /// <returns>Number of saved objects</returns>
        /// <remarks>It's recomended to use the async version</remarks>
        public int SaveSelectedObjects()
        {
            List <IObjecOptions> selectedObjects = this.SelectedNodes;

            foreach (IObjecOptions name in selectedObjects)
            {
                AccessObject accessObject = AccessObject.CreateInstance(this.App, name.ObjectType, name.Name);
                accessObject.Save();
            }
            return(selectedObjects.Count);
        }
Exemple #7
0
        public AccessObjectModel(AccessObject @object)
        {
            Object = @object ?? throw new ArgumentNullException(nameof(@object));

            Name         = @object.Name;
            FullName     = @object.FullName;
            IsLoaded     = @object.IsLoaded;
            TypeName     = @object.Type.ToString();
            Type         = @object.Type;
            Attributes   = @object.Attributes;
            DateCreated  = @object.DateCreated;
            DateModified = @object.DateModified;
            IsWeb        = @object.IsWeb;
        }
 internal override CommandLine Run()
 {
     if (App == null && Objects.Count > 0)
     {
         InitializeAccessApplication();
     }
     foreach (IObjecOptions currentObject in Objects)
     {
         Console.Write(Properties.Resources.Loading, currentObject);
         AccessObject accessObject = AccessObject.CreateInstance(App, currentObject.ObjectType, currentObject.ToString());
         accessObject.Options = currentObject.Options;
         accessObject.Load(currentObject.Name);
         Console.WriteLine(Properties.Resources.ColonOk);
     }
     return(this);
 }
        public CommonPermission(AccessObject accessObject, IEnumerable<CommonPermissionConfig> permissionConfigs)
        {
            Guidance.ArgumentNotNull(accessObject, "accessObject");
            Guidance.ArgumentNotNull(permissionConfigs, "permissionConfigs");
            if (accessObject.RangeAccess)
            {
                throw new ArgumentException(
                    Resource.Messages.exception_AccessObjectRangeAccessNeedFalse,
                    "accessObject");
            }

            AccessObject = accessObject;
            _permissionConfigs = new List<CommonPermissionConfig>(permissionConfigs);

            OperationPermissionsInitialize();
            PermissionCalculate();
        }
Exemple #10
0
        private void backgroundWorker_DoWork(object sender, DoWorkEventArgs e)
        {
            //see http://msdn.microsoft.com/en-us/library/9hk12d4y.aspx for Event-based async pattern
            //see http://stackoverflow.com/questions/6184/how-do-i-make-event-callbacks-into-my-win-forms-thread-safe

            List <IObjecOptions> selectedObjects = (List <IObjecOptions>)e.Argument;
            int i = 0;

            foreach (IObjecOptions name in selectedObjects)
            {
                i++;
                ((BackgroundWorker)sender).ReportProgress(i * 100 / selectedObjects.Count, name);
                AccessObject accessObject = AccessObject.CreateInstance(this.App, name.ObjectType, name.Name);
                accessObject.Save();
            }
            e.Result = selectedObjects.Count;
        }
Exemple #11
0
        public void Update(SqlTransaction trans)
        {
            if (!CanUpdate(this.UserName))
            {
                throw new AccessException(this.UserName, "Update");
            }

            AccessObject aObject = new AccessObject(trans, this._objectID);

            aObject.Name = this._name;
            aObject.Update(trans);

            string spName = "usp_CityObjects_Update";
            CityObjectsParamsHelper helper = new CityObjectsParamsHelper(this);

            helper.InitParamsForSP(spName);
            SqlParameter[] parameters = helper.ParamList.Params;
            SPHelper.ExecuteNonQuery(trans, spName, parameters);
            helper.SetPropValues();
        }
Exemple #12
0
        public int Insert(SqlTransaction trans)
        {
            if (!CanInsert(UserName, ObjectID))
            {
                throw new AccessException(UserName, "Insert");
            }

            AccessObject accessObject = new AccessObject(trans.Connection.ConnectionString);

            accessObject.Id            = Guid.NewGuid();
            accessObject.Name          = Name;
            accessObject.ObjectTypeId  = ObjectTypeID;
            accessObject.ObjectStateId = StateIDAll;
            ObjectID = accessObject.Insert(trans);

            SqlParameter[] prms = new SqlParameter[4];
            prms[0]           = new SqlParameter("@MenuTemplateID", SqlDbType.Int);
            prms[0].Direction = ParameterDirection.Output;

            prms[1]       = new SqlParameter("@Name", SqlDbType.NVarChar, 50);
            prms[1].Value = Name;

            prms[2]       = new SqlParameter("@SystemName", SqlDbType.NVarChar, 50);
            prms[2].Value = SystemName;

            prms[3]       = new SqlParameter("@ObjectID", SqlDbType.UniqueIdentifier);
            prms[3].Value = ObjectID;

            if (trans == null)
            {
                SPHelper.ExecuteNonQuery(SpNames.Insert, prms);
            }
            else
            {
                SPHelper.ExecuteNonQuery(trans, SpNames.Insert, prms);
            }

            ID = (int)prms[0].Value;

            return(ID);
        }
        internal override CommandLine Run()
        {
            if (App == null && Objects.Count > 0)
            {
                InitializeAccessApplication();
            }
            foreach (IObjecOptions currentObject in Objects)
            {
                ObjectTypeExtension ote = App.AllowedContainers.Find(currentObject.ObjectType);

                Console.Write(Properties.Resources.Exporting, ote.FileExtension, currentObject);
                AccessObject accessObject = AccessObject.CreateInstance(App, currentObject.ObjectType, currentObject.ToString());
                accessObject.Options = currentObject.Options;
                string outputFile = Path.Combine(RootPath, ote.Container.InvariantName, currentObject.ToString()) +
                                    String.Concat(".", ote.FileExtension, ".txt");
                accessObject.Save(outputFile);
                Console.WriteLine(Properties.Resources.ColonOk);
            }
            App.Dispose();
            return(this);
        }
Exemple #14
0
        public int Insert(SqlTransaction trans)
        {
            AccessObject accessObject = new AccessObject(trans.Connection.ConnectionString);

            accessObject.Id            = Guid.NewGuid();
            accessObject.Name          = Name;
            accessObject.ObjectTypeId  = ObjectTypeID;
            accessObject.ObjectStateId = StateIDAll;
            ObjectID = accessObject.Insert(trans);


            SqlParameter[] prms = new SqlParameter[5];
            prms[0]           = new SqlParameter("@DepartmentID", SqlDbType.Int);
            prms[0].Direction = ParameterDirection.Output;

            prms[1]       = new SqlParameter("@Name", SqlDbType.NVarChar, 100);
            prms[1].Value = Name;

            prms[2]       = new SqlParameter("@ShortName", SqlDbType.NVarChar, 50);
            prms[2].Value = ShortName;

            prms[3]       = new SqlParameter("@ObjectID", SqlDbType.UniqueIdentifier);
            prms[3].Value = ObjectID;

            prms[4]       = new SqlParameter("@ParrentDepartmentID", SqlDbType.Int);
            prms[4].Value = ParrentDepartmentID;

            if (trans == null)
            {
                SPHelper.ExecuteNonQuery(SpNames.Insert, prms);
            }
            else
            {
                SPHelper.ExecuteNonQuery(trans, SpNames.Insert, prms);
            }

            ID = (int)prms[0].Value;

            return(ID);
        }
Exemple #15
0
        private void Init(SqlTransaction trans, int id)
        {
            if (!CanView(this.UserName))
            {
                throw new AccessException(this.UserName, "Init");
            }
            this.ID = id;
            string spName = "usp_CityObjects_Get";
            CityObjectsParamsHelper helper = new CityObjectsParamsHelper(this);

            helper.InitParamsForSP(spName);
            SqlParameter[] parameters = helper.ParamList.Params;
            if (trans == null)
            {
                SPHelper.ExecuteNonQuery(spName, parameters);
            }
            else
            {
                SPHelper.ExecuteNonQuery(trans, spName, parameters);
            }
            helper.SetPropValues();
            this._accessObject = new AccessObject(ConstantCode.CONNECTION_STRING, this._objectID);
        }
Exemple #16
0
        public int Insert(SqlTransaction trans)
        {
            /*if (!CanInsert(UserName, DepartmentID))
             * {
             *  throw new AccessException(UserName, "Insert");
             * }
             */
            AccessObject accessObject = new AccessObject(trans.Connection.ConnectionString);

            accessObject.Id            = Guid.NewGuid();
            accessObject.Name          = Number;
            accessObject.ObjectTypeId  = ObjectTypeID;
            accessObject.ObjectStateId = StateIDAll;
            ObjectID = accessObject.Insert(trans);

            SqlParameter[] prms = new SqlParameter[15];
            prms[0]           = new SqlParameter("@DocumentID", SqlDbType.Int);
            prms[0].Direction = ParameterDirection.Output;

            prms[1]       = new SqlParameter("@DocumentCodeID", SqlDbType.Int);
            prms[1].Value = CodeID;

            prms[2]       = new SqlParameter("@CreationDate", SqlDbType.DateTime);
            prms[2].Value = CreationDate;

            prms[3]       = new SqlParameter("@OriginatorID", SqlDbType.UniqueIdentifier);
            prms[3].Value = OriginatorID;

            prms[4]       = new SqlParameter("@RequestDate", SqlDbType.DateTime);
            prms[4].Value = RequestDate;

            prms[5]       = new SqlParameter("@RequestorID", SqlDbType.UniqueIdentifier);
            prms[5].Value = RequestorID;

            prms[6]       = new SqlParameter("@OwnerID", SqlDbType.UniqueIdentifier);
            prms[6].Value = OwnerID;

            prms[7]       = new SqlParameter("@ObjectID", SqlDbType.UniqueIdentifier);
            prms[7].Value = ObjectID;

            prms[8]       = new SqlParameter("@Number", SqlDbType.NVarChar, 50);
            prms[8].Value = Number;

            prms[9]       = new SqlParameter("@Notes", SqlDbType.NVarChar, -1);
            prms[9].Value = Notes;

            prms[10]       = new SqlParameter("@DocStatusID", SqlDbType.Int);
            prms[10].Value = DocStatusID;

            prms[11]       = new SqlParameter("@DepartmentID", SqlDbType.Int);
            prms[11].Value = DepartmentID;

            prms[12]       = new SqlParameter("@TemplateId", SqlDbType.Int);
            prms[12].Value = TemplateId;

            prms[13]            = new SqlParameter("@ParentDocumentID", SqlDbType.Int);
            prms[13].IsNullable = true;
            if (ParentDocumentID > 0)
            {
                prms[13].Value = ParentDocumentID;
            }
            else
            {
                prms[13].Value = DBNull.Value;
            }

            prms[14]       = new SqlParameter("@DocStateID", SqlDbType.Int);
            prms[14].Value = DocStateID;

            if (trans == null)
            {
                SPHelper.ExecuteNonQuery(SpNames.Insert, prms);
            }
            else
            {
                SPHelper.ExecuteNonQuery(trans, SpNames.Insert, prms);
            }

            ID = (int)prms[0].Value;

            return(ID);
        }
Exemple #17
0
        protected override void OnCreate(Bundle savedInstanceState)
        {
            base.OnCreate(savedInstanceState);
            //removes title
            Window.RequestFeature(WindowFeatures.NoTitle);
            //brings us to login page
            SetContentView(Resource.Layout.Login);
            //changes login page color
            FindViewById <LinearLayout>(Resource.Id.Login).SetBackgroundColor(Color.Argb(255, 0, 9, 26));



            //collects info from the login text boxes
            EditText Username = FindViewById <EditText>(Resource.Id.Username_Textbox);
            EditText Password = FindViewById <EditText>(Resource.Id.Password_Textbox);

            //assigns the login button
            Button button = FindViewById <Button>(Resource.Id.button1);

            //set button color
            button.SetTextColor(Color.White);

            //sets text box colors
            Username.SetBackgroundColor(Color.White);
            Username.SetTextColor(Color.Black);
            Password.SetBackgroundColor(Color.White);
            Password.SetTextColor(Color.Black);

            Username.Text = SaveUser;
            Password.Text = SavePass;

            //login button
            button.Click += (sender1, e) =>
            {
                try
                {
                    HttpWebRequest request = (HttpWebRequest)WebRequest.Create("http://goingpro.azurewebsites.net/api/Logins?loginid=" + Username.Text);
                    request.Method = "Get";
                    //request.ContentType = @"application/json";
                    request.Accept = @"application/json";

                    HttpWebResponse response = request.GetResponse() as HttpWebResponse;
                    Stream          stream   = response.GetResponseStream();
                    StreamReader    getjson  = new StreamReader(stream);

                    String getcontent = getjson.ReadToEnd();

                    using (response)
                    {
                        if (response.StatusCode != HttpStatusCode.OK)
                        {
                            Console.WriteLine("Error fetching data.  Server returned status code " + response.StatusCode);
                        }
                        else
                        {
                            //unhash password and check against TBPassword.Text
                            LoginInfo thisinfo = JsonConvert.DeserializeObject <LoginInfo>(getcontent);
                            if (!checkpassword(thisinfo.Login_Password, Password.Text))
                            {
                                Toast.MakeText(this, "Wrong Password", ToastLength.Long).Show();
                            }
                            else
                            {
                                //Requests an access token from powerschool that we use for getting data;
                                SavePass = Password.Text;
                                SaveUser = Username.Text;
                                Token    = (AccessObject)MainActivity.MakeRequest(string.Format(@"http://powerschool.kentisd.org/oauth/access_token?grant_type=client_credentials"), "application/x-www-form-urlencoded;charset=UTF-8", "POST", "Basic ZWRlMjY4ZmMtOTM5Mi00Y2NkLTgxNjktNjk2ZjI0YmNjZTU2OmU5MDRlNzYwLTEzZjQtNDY5My1iYWM5LWIwZTMyYTJhM2Y3Ng==", true);
                                Toast.MakeText(this, "Login Successful", ToastLength.Long).Show();

                                StaffFirst    = thisinfo.First_Name;
                                StaffLast     = thisinfo.Last_Name;
                                StaffEmail    = thisinfo.Email;
                                StaffUserName = Username.Text;
                                // Create an intent allowing the program to change to a different page;
                                var MainPage = new Intent(this, typeof(MainActivity));
                                //Go to different page;
                                StartActivity(MainPage);
                            }
                        }
                    }
                }
                catch
                {
                    Toast.MakeText(this.ApplicationContext, "Could not Connect to Service (Perhaps Wifi or Powerschool is down.)", ToastLength.Long).Show();
                    return;
                }
            };
        }
Exemple #18
0
        public void ImportContentsByAccessFile(int channelId, string excelFilePath, bool isOverride, int importStart, int importCount, bool isChecked, int checkedLevel)
        {
            var nodeInfo        = ChannelManager.GetChannelInfo(_siteInfo.Id, channelId);
            var contentInfoList = AccessObject.GetContentsByAccessFile(excelFilePath, _siteInfo, nodeInfo);

            if (importStart > 1 || importCount > 0)
            {
                var theList = new List <ContentInfo>();

                if (importStart == 0)
                {
                    importStart = 1;
                }
                if (importCount == 0)
                {
                    importCount = contentInfoList.Count;
                }

                var firstIndex = contentInfoList.Count - importStart - importCount + 1;
                if (firstIndex <= 0)
                {
                    firstIndex = 0;
                }

                var addCount = 0;
                for (var i = 0; i < contentInfoList.Count; i++)
                {
                    if (addCount >= importCount)
                    {
                        break;
                    }
                    if (i >= firstIndex)
                    {
                        theList.Add(contentInfoList[i]);
                        addCount++;
                    }
                }

                contentInfoList = theList;
            }

            var tableName = ChannelManager.GetTableName(_siteInfo, nodeInfo);

            foreach (var contentInfo in contentInfoList)
            {
                contentInfo.IsChecked    = isChecked;
                contentInfo.CheckedLevel = checkedLevel;

                //contentInfo.ID = DataProvider.ContentDAO.Insert(tableName, this.FSO.SiteInfo, contentInfo);
                if (isOverride)
                {
                    var existsIDs = DataProvider.ContentDao.GetIdListBySameTitle(tableName, contentInfo.ChannelId, contentInfo.Title);
                    if (existsIDs.Count > 0)
                    {
                        foreach (int id in existsIDs)
                        {
                            contentInfo.Id = id;
                            DataProvider.ContentDao.Update(tableName, _siteInfo, contentInfo);
                        }
                    }
                    else
                    {
                        contentInfo.Id = DataProvider.ContentDao.Insert(tableName, _siteInfo, contentInfo);
                    }
                }
                else
                {
                    contentInfo.Id = DataProvider.ContentDao.Insert(tableName, _siteInfo, contentInfo);
                }
            }
        }
 public CommonPermission(AccessObject accessObject)
     : this(accessObject, new CommonPermissionConfig[] { })
 {
 }
 /// <summary>
 /// 访问对象验证
 /// </summary>
 /// <param name="accessObject">访问对象</param>
 private void AccessObjectArgumentValid(AccessObject accessObject, string argName)
 {
     if (accessObject.RangeAccess)
     {
         throw new ArgumentException(
             Resource.Messages.exception_AccessObjectRangeAccessNeedFalse,
             argName);
     }
 }
        ///// <summary>
        ///// <see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HavePermission"/>
        ///// </summary>
        ///// <param name="user"><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HavePermission"/></param>
        ///// <param name="accessObject"><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HavePermission"/></param>
        ///// <param name="operation"><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HavePermission"/></param>
        ///// <returns><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HavePermission"/></returns>
        //public bool HavePermission(User user, AccessObject accessObject, Operation operation)
        //{
        //    Guidance.ArgumentNotNull(user, "user");
        //    Guidance.ArgumentNotNull(accessObject, "accessObject");
        //    Guidance.ArgumentNotNull(operation, "operation");
        //    AccessObjectArgumentValid(accessObject, "accessObject");

        //    //获取权限
        //    var commonPermission = GetCommonPermission(user, accessObject);
        //    return commonPermission.HavePermission(operation);
        //}

        ///// <summary>
        ///// <see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HaveAllPermission"/>
        ///// </summary>
        ///// <param name="user"><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HaveAllPermission"/></param>
        ///// <param name="accessObject"><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HaveAllPermission"/></param>
        ///// <param name="operations"><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HaveAllPermission"/></param>
        ///// <returns><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HaveAllPermission"/></returns>
        //public bool HaveAllPermission(User user, AccessObject accessObject, IEnumerable<Operation> operations)
        //{
        //    Guidance.ArgumentNotNull(user, "user");
        //    Guidance.ArgumentNotNull(accessObject, "accessObject");
        //    Guidance.IEnumerableNotNull(
        //        operations,
        //        "operations",
        //        Resource.Messages.exception_CommonPermissionServiceOperationsNull);
        //    AccessObjectArgumentValid(accessObject, "accessObject");

        //    var commonPermission = GetCommonPermission(user, accessObject);
        //    bool? result = null;
        //    foreach (var operation in operations)
        //    {
        //        result = result.HasValue
        //            ?
        //            commonPermission.HavePermission(operation) && result.Value
        //            :
        //            commonPermission.HavePermission(operation);
        //    }
        //    return result.HasValue
        //        ?
        //        result.Value
        //        :
        //        false;
        //}

        ///// <summary>
        ///// <see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HaveAnyPermission"/>
        ///// </summary>
        ///// <param name="user"><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HaveAnyPermission"/></param>
        ///// <param name="accessObject"><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HaveAnyPermission"/></param>
        ///// <param name="operations"><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HaveAnyPermission"/></param>
        ///// <returns><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.HaveAnyPermission"/></returns>
        //public bool HaveAnyPermission(User user, AccessObject accessObject, IEnumerable<Operation> operations)
        //{
        //    Guidance.ArgumentNotNull(user, "user");
        //    Guidance.ArgumentNotNull(accessObject, "accessObject");
        //    Guidance.IEnumerableNotNull(
        //        operations,
        //        "operations",
        //        Resource.Messages.exception_CommonPermissionServiceOperationsNull);
        //    AccessObjectArgumentValid(accessObject, "accessObject");

        //    var commonPermission = GetCommonPermission(user, accessObject);
        //    bool result = false;
        //    foreach (var operation in operations)
        //    {
        //        result = result || commonPermission.HavePermission(operation);
        //    }
        //    return result;
        //}

        #endregion

        /// <summary>
        /// <see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.GetCommonPermission"/>
        /// </summary>
        /// <param name="user"><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.GetCommonPermission"/></param>
        /// <param name="accessObject"><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.GetCommonPermission"/></param>
        /// <returns><see cref="Kevin.Permission.Domain.Core.ICommonPermissionService.GetCommonPermission"/></returns>
        public CommonPermission GetCommonPermission(User user, AccessObject accessObject)
        {
            Guidance.ArgumentNotNull(user, "user");
            Guidance.ArgumentNotNull(accessObject, "accessObject");
            AccessObjectArgumentValid(accessObject, "accessObject");

            CommonPermission result = new CommonPermission(accessObject);
            //查询用户关联的角色列表
            var roles = GetRolesOfUserWithInheritRoles(user);
            if (roles.Any())
            {
                //查询权限配置对象列表
                var configs = GetPermissionConfigs(roles, accessObject);
                if (configs.Any())
                {
                    result = new CommonPermission(accessObject, configs);
                }
            }
            return result;
        }
        /// <summary>
        /// 根据角色列表以及访问对象查询相关的权限配置对象
        /// </summary>
        /// <param name="roles">角色列表</param>
        /// <param name="accessObject">访问对象</param>
        /// <returns>权限配置对象列表</returns>
        protected IEnumerable<CommonPermissionConfig> GetPermissionConfigs(IEnumerable<Role> roles, AccessObject accessObject)
        {
            //根据角色列表以及访问对象查询相关的权限配置对象
            var pcbRolesSpec = new PermissionConfigBaseRolesSpecification(roles.Select(r => r.Id));
            var pcbAccessObjectSpec = new PermissionConfigBaseAccessObjectSpecification(accessObject.Id);
            var spec = (pcbRolesSpec & pcbRolesSpec).OfType<CommonPermissionConfig>();

            var configs = CommonPermissionConfigRepository.FindBy(spec);
            return configs;
        }
Exemple #23
0
 public CityObjects(string userName)
 {
     this.UserName      = userName;
     this._accessObject = new AccessObject(ConstantCode.CONNECTION_STRING);
 }