コード例 #1
0
        private AuthUserInformationModel BuildAuthUserInformationModel(DataTable userInfoTable)
        {
            // Get basic user information from the databases
            AuthUserInformationModel userInfo = new AuthUserInformationModel();

            userInfo.UserKey    = userInfoTable.Rows[0]["User_Key"].ToString();
            userInfo.OldUserKey = userInfoTable.Rows[0]["SecurityUser_Key"].ToString();
            userInfo.Username   = userInfoTable.Rows[0]["UserName"].ToString();
            userInfo.FullName   = userInfo.Username.Split('@')[0]; // TODO: This should be changed to use the real Full Name of the users
            userInfo.RoleLookup = new Dictionary <string, int>();

            // Lookup roles for this current user
            SqlGenerator sqlGenLevels = new SqlGenerator(SqlGenerator.SqlTypes.Select, "UserRight", true);

            sqlGenLevels.AddTable("SecurityObject", SqlGenerator.SqlJoins.Inner, "SecurityObject_Key");
            sqlGenLevels.AddField("ObjectTitle", "SecurityObject");
            sqlGenLevels.AddField("SecurityLevel", "UserRight");
            sqlGenLevels.AddWhereParameter("UserRight", "SecurityUser_Key", userInfo.OldUserKey, SqlWhereComparison.SqlComparer.Equal);

            // Loop through all of our role levels and assign them to our AuthUserInformationModel.RoleLookup dictionarys
            using (SqlDataReader r = Adocls.FetchDataReader(sqlGenLevels, "UserDatabase"))
            {
                while (r.Read())
                {
                    userInfo.RoleLookup.Add((string)r["ObjectTitle"], (byte)r["SecurityLevel"]);
                }
            }

            return(userInfo);
        }